Домой Регистрация
Приветствуем вас, Гость



Форма входа

Население


Вступайте в нашу группу Вконтакте! :)




ПОИСК


Опросник
Используете ли вы афоризмы и цитаты в своей речи?
Проголосовало 514 человек


Шейдеры что это такое


Что такое шейдеры? Просто о сложном для начинающих – CoreMission

«Что такое шейдеры?» — очень частый вопрос любопытных игроков и начинающих игровых разработчиков. В этой статье доходчиво и понятно об этих страшных шейдерах расскажу.

Двигателем прогресса в сторону фотореалистичности картинки в компьютерной графике я считаю именно компьютерные игры, поэтому давайте именно в разрезе видео-игр и поговорим о том, что такое «шейдеры».

До того, как появились первые графические ускорители, всю работу по отрисовке кадров видеоигры выполнял бедняга центральный процессор.

Отрисовка кадра, довольно рутинная работа на самом деле: нужно взять «геометрию» — полигональные модели (мир, персонаж, оружие и т.д.) и растеризовать. Что такое растеризовать? Вся 3d модель состоит из мельчайших треугольников, которые растеризатор превращает в пиксели (то есть «растеризовать» значит превратить в пиксели). После растеризации взять текстурные данные, параметры освещенности, тумана и тп и рассчитать каждый результирующий пиксель игрового кадра, который будет выведен на экран игроку.

Так вот, центральный процессор (CPU — Central Processing Unit) слишком умный парень, чтобы заставлять его заниматься такой рутиной. Вместо этого логично выделить какой-то аппаратный модуль, который разгрузит CPU, чтобы тот смог заниматься более важным интеллектуальным трудом.

Таким аппаратным модулем стал — графический ускоритель или видеокарта (GPU — Graphics Processing Unit). Теперь CPU подготавливает данные и загружает рутинной работой коллегу. Учитывая, что GPU сейчас это не просто один коллега, это толпа миньонов-ядер, то он с такой работой справляется на раз.

Но мы пока не получили ответа на главный вопрос: Что такое шейдеры? Подождите, я подвожу к этому.

Хорошая, интересная и близкая к фото-реализму графика, требовала от разработчиков видеокарт реализовывать многие алгоритмы на аппаратном уровне. Тени, свет, блики и так далее. Такой подход — с реализацией алгоритмов аппаратно называется «Фиксированный пайплайн или конвейер» и там где требуется качественная графика он теперь не встречается. Его место занял «Программируемый пайплайн».

Запросы игроков «давайте, завозите хороший графоний! удивляйте!», толкали разработчиков игр (и производителей видеокарт соответственно) все к более и более сложным алгоритмам. Пока в какой-то момент зашитых аппаратных алгоритмов им стало слишком мало.

Наступило время видеокартам стать более интеллектуальными. Было принято решение позволить разработчикам программировать блоки графического процессора в произвольные конвейеры, реализующие разные алгоритмы. То есть разработчики игр, графические программисты отныне смогли писать программы для видеокарточек.

И вот, наконец, мы дошли до ответа на наш главный вопрос.

«Что такое шейдеры?»

Ше́йдер (англ. shader — затеняющая программа) — это программа для видеокарточки, которая используется в трёхмерной графике для определения окончательных параметров объекта или изображения, может включать в себя описание поглощения и рассеяния света, наложения текстуры, отражения и преломление, затенение, смещение поверхности и множество других параметров.

Что такое шейдеры? Например, вот такой эффект можно получить, это шейдер воды примененный к сфере.

Графический пайплайн

Преимущество программируемого конвейера перед его предшественником в том, что теперь программистам можно создавать свои алгоритмы самостоятельно, а не пользоваться зашитым аппаратно набором опций.

Читай также:  Профессия QA Инженер. Интервью с Сергеем Праздничновым

Сначала видеокарты оснастили несколькими специализированными процессорами, поддерживающими разные наборы инструкций. Шейдеры делили на три типа в зависимости от того, какой процессор будет их исполнять. Но затем видеокарты стали оснащать универсальными процессорами, поддерживающими наборы инструкций всех трёх типов шейдеров. Деление шейдеров на типы сохранилось для описания назначения шейдера.

Помимо графических задач с такими интеллектуальными видеокартами появилась возможность выполнения на GPU вычислений общего назначения (не связанных с компьютерной графикой).

Впервые полноценная поддержка шейдеров появилась в видеокартах серии GeForce 3, но зачатки были реализованы ещё в GeForce256 (в виде Register Combiners).

Виды шейдеров

В зависимости от стадии конвейера шейдеры делятся на несколько типов: вершинный, фрагментный (пиксельный) и геометрический. А в новейших типах конвейеров есть еще шейдеры тесселяции. Подробно обсуждать графический конвейер мы не будем, я все думаю не написать ли об этом отдельную статью, для тех кто решит заняться изучением шейдеров и программирования графики. Напишите в комментариях если Вам интересно, я буду знать, стоит ли тратить время.

Вершинный шейдер

Вершинными шейдерами делают анимации персонажей, травы, деревьев, создают волны на воде и многие другие штуки. В вершинном шейдере программисту доступны данные, связанные с вершинами например: координаты вершины в пространстве, её текстурные координатами, её цвет и вектор нормали.

Геометрический шейдер

Геометрические шейдеры способны создавать новую геометрию, и могут использоваться для создания частиц, изменения детализации модели «на лету», создание силуэтов и т.п. В отличие от предыдущего вершинного, способны обработать не только одну вершину, но и целый примитив. Примитивом может быть отрезок (две вершины) и треугольник (три вершины), а при наличии информации о смежных вершинах (англ. adjacency) для треугольного примитива может быть обработано до шести вершин.

Пиксельный шейдер

Пиксельными шейдерами выполняют наложение текстур, освещение, и разные текстурные эффекты, такие как отражение, преломление, туман, Bump Mapping и пр. Пиксельные шейдеры также используются для пост-эффектов.

Пиксельный шейдер работает с фрагментами растрового изображения и с текстурами — обрабатывает данные, связанные с пикселями (например, цвет, глубина, текстурные координаты). Пиксельный шейдер используется на последней стадии графического конвейера для формирования фрагмента изображения.

На чем пишут шейдеры?

Изначально шейдеры можно было писать на assembler-like языке, но позже появились шейдерные языки высокого уровня, похожие на язык С, такие как: Cg, GLSL и HLSL.

Такие языки намного проще чем C, ведь задачи решаемые с их помощью, гораздо проще. Система типов в таких языках отражает нужды программистов графики. Поэтому они предоставляют программисту специальные типы данных: матрицы, семплеры, векторы и тп.

RenderMan

Все что мы обсудили выше относится к realtime графике. Но существуют non-realtime графика. В чем разница — realtime — реальное время, тоесть здесь и сейчас — давать 60 кадров в секунду в игре, это процесс реального времени. А вот рендерить комплексный кадр для ультрасовременной анимации по несколько минут это non-realtime. Суть во времени.

Например, графику такого качества как в последних мультипликационных фильмах студии Pixar получить в реальном времени мы сейчас получить не можем. Очень большие рендер-фермы обсчитывают симуляции света по совсем другим алгоритмам, очень затратным, но дающим почти фотореалистичные картинки.

Супер-реалистичная графика в Sand piper

Например, посмотрите, на вот этот милый мультфильм, песчинки, перышки птички, волны, все выглядит невероятно реальным.

*Видео могут забанить на Youtube, если оно не открывается, погуглите pixar sandpiper — короткометражный мультфильм про храброго песочника очень милый и пушистый. Умилит и продемонстрирует насколько крутой может быть компьютерная графика.

Так вот это RenderMan от фирмы Pixar. Он стал первым языком программирования шейдеров. API RenderMan является фактическим стандартом для профессионального рендеринга, используется во всех работах студии Pixar и не только их.

Полезная информация

Теперь Вы знаете что такое шейдеры, но помимо шейдеров, есть другие очень интересные темы в разработке игр и компьютерной графике, которые наверняка Вас заинтересуют:

Если остались вопросы

Как обычно, если у Вас остались какие-то вопросы, задавайте их в комментариях, я всегда отвечу. За любое доброе слово или правку ошибок я буду очень признателен.

coremission.net

Шейдер - что такое? Типы, достоинства и недостатки

С глобальной компьютеризацией в наш мир пришло огромное количество непонятных терминов. Разбираться с ними всеми не так-то просто, как кажется на первый взгляд. Многие из них похожи названиями, многие имеют широкий функционал. Пришло время узнать, что такое шейдер, откуда он взялся, для чего нужен и какой бывает.

Оптимизатор

Скорее всего, вы заядлый игрок в «Майнкрафт» и именно поэтому пришли узнать, что же это такое. Стоит сразу отметить, что понятие «шейдер» спокойно отделяется от этой игры и может «жить» от неё отдельно. Точно так же, как и моды. Поэтому крепко связывать эти два понятия не стоит.

Вообще, шейдер родом из программирования, появился как помощник специалистам. Наверное, будет громким называть этот инструмент оптимизатором, но он реально улучшает картинку в играх. Итак, когда вы уже начали приблизительно понимать, что же это, перейдем к точному толкованию.

Толкование

Что такое шейдер? Это компьютерная программа, которую исполняют процессоры видеокарты. Эти инструменты разрабатывают на специальном языке. В зависимости от назначений он может быть разным. После чего шейдеры условно транслируются в инструкции к процессорам графических ускорителей.

Сразу нужно сказать, что применение в целом предопределено назначением. Программы внедряют в процессоры видеокарт, а значит, они работают над параметрами объектов и изображений трехмерной графики. Они могут выполнять массу задач, среди которых и работа с отражением, преломлением, затемнением, эффектами сдвига и пр.

Предпосылка

Люди уже давненько пытаются узнать, что такое шейдер. Еще до этих программ разработчики делали все вручную. Процесс формирования изображения из неких объектов был не автоматизирован. Прежде чем игра появлялась на свет, разработчики самостоятельно занимались рендерингом. Они работали с алгоритмом, составляли его под разные задачи. Так появлялись инструкции для наложения текстур, видеоэффектов и т.д.

Конечно, некоторые процессы все же были встроены в работу видеокарт. Такие алгоритмы могли использовать разработчики. Но у них никак не получалось навязать свои алгоритмы видеокарте. Нестандартные инструкции могли исполняться центральным процессором, который был медленнее графического.

Пример

Чтобы осознать разницу, стоит рассмотреть пару примеров. Очевидно, что в игре рендеринг мог быть аппаратным и программным. К примеру, все мы помним знаменитую Quake 2. Так вот, вода в игре могла быть просто синим фильтром, если речь идет об аппаратном рендеринге. А вот при программном вмешательстве появился плеск воды. Та же история и со светошумовыми гранатами в CS 1.6. Аппаратный рендеринг давал только белую вспышку, а программный добавлял пикселизированный экран.

Так стало понятно, что необходимо решать подобные проблемы. Графические ускорители стали расширять количество алгоритмов, которые были популярными среди разработчиков. Стало понятно, что все «запихнуть» невозможно. Нужно было открыть доступ специалистам к видеокарте.

Прежде чем появились игры типа «Майнкрафт» с модами и шейдерами, разработчикам дали возможность работать с блоками GPU в конвейеры, которые могли бы отвечать за разные инструкции. Так стали известны программы с названием «шейдер». Для их создания специально разработали языки программирования. Так, видеокарты стали нагружать не только стандартной «геометрией», но и инструкцией для процессора.

Когда такой доступ стал возможным, стали открываться новые возможности программирования. Специалисты могли решать математические задачки на GPU. Такие расчеты стали называться GPGPU. Для этого процесса нужны были специальные инструменты. От компании nVidia CUDA, от Microsoft DirectCompute, а также фреймворк OpenCL.

Типы

Чем больше люди узнавали, что такое шейдеры, тем больше открывалось информации о них и их возможностях. Изначально ускорители имели три процессора. Каждый отвечал за свой тип шейдера. Со временем их заменили на универсальный. Каждый имел определенный комплекс инструкций, которые сразу имели три типа шейдеров. Несмотря на объединение работы, описание каждого типа сохранилось до сих пор.

Вершинный тип работал с вершинами фигур, которые имеют много граней. Тут может подразумеваться много инструментов. К примеру, речь идет о текстурных координатах, векторах касательной, бинормали или нормали.

Геометрический тип работал не просто с одной вершиной, но и с целым примитивом. Пиксельный был рассчитан на обработку фрагментов растровых иллюстраций и в целом с текстурами.

В играх

Если вы ищете шейдеры для «Майнкрафт 1.5.2», то вы, скорее всего, просто хотите улучшить картинку в игре. Чтобы такое стало возможным, программы прошли «огонь, воду и медные трубы». Шейдеры тестировали и дорабатывали. В итоге стало понятным, что у этого инструмента есть достоинства и недостатки.

Конечно, простота в составлении различных алгоритмов – это огромный плюс. Это и гибкость, и заметное упрощение в процессе разработки игры, а следовательно, и уменьшение стоимости. Получаемые виртуальные сцены становятся сложнее и реалистичнее. Также сам процесс разработки становится в разы быстрее.

Из недостатков стоит отметить лишь то, что придется изучать один из языков программирования, а также учитывать, что на разных моделях видеокарт размещается разный комплекс алгоритмов.

Установка

Если вы нашли шейдер пак для «Майнкрафта», нужно понимать, что существует много подводных камней в его установке. Несмотря на уже угасающую популярность этой игры, все же остаются её преданные поклонники. Не всем нравится графика, тем более в 2017 год. Некоторые считают, что благодаря шейдерам они смогут её улучшить. Теоретически это утверждение правильное. Но на практике вы измените немногое.

Но если вы все равно ищете способы, как установить шейдеры на «Майнкрафт 1.7», то, прежде всего, будьте внимательны. Сам процесс ничего сложного не представляет. К тому же вместе с любым скачиваемым файлом есть инструкция по его установке. Главное, это проверить версии игры и шейдера. Иначе оптимизатор не сработает.

В интернете много мест, где можно установить и скачать такой инструмент. Дальше нужно распаковать архив в любую папку. Там вы найдете файлик «GLSL-Shaders-Mod-1.7-Installer.jar». После запуска вам будет указан путь к игре, если он верный, то соглашайтесь со всеми последующими указаниями.

После нужно переместить папку «shaderpacks» в «.minecraft». Теперь при запуске лаунчера нужно будет зайти в настройки. Тут, если установка прошла корректно, появится строка «Shaders». Из всего списка можете выбрать нужный пакет.

Если вам нужны шейдеры для Minecraft 1.7.10, то просто находите шейдерпак нужной версии и проделываете то же самое. В интернете могут встречаться нестабильные версии. Иногда приходится их менять, переустанавливать и искать подходящий. Лучше смотреть на отзывы и выбирать наиболее популярные.

fb.ru

Ion Industries Corporation

Главная » Статьи » Мои статьи

Шейдеры в современных играх №1

Статья «Шейдеры в современных играх»

Тотальное 3D

  

Шейдерные технологии

  Автор: }{отт@бь)ч и [email protected] и Watson.

  В статьях «Игростроя» о шейдерах писалось немало, но довольно поверхностно. Сегодня мы поговорим о них максимально обстоятельно, узнаем, какие они бывают, чем отличаются друг от друга, какие эффекты ими могут быть достигнуты, как они применяются в играх, каково будущее шейдеров и, наконец, как сделать шейдер самому в 3DS Max. 

Краткий экскурс в историю

  
Рис. 1. 3dfx кардинально по тем временам изменил облик игры Carmageddon. Скрин внизу отличают гладкие текстуры и повышенное разрешение.
Давным-давно, когда об аппаратном ускорении графики писали разве что в научно-фантастических журналах, игры строились исключительно на программных алгоритмах прорисовки. И, надо сказать, удавалось это в те времена далеко не плохо: Quake и DOOM потрясли мир основательно. Но вот в середине 90-х заговорили об адской железке под названием 3DFX, и дни программной идиллии оказались сочтены. Индустрия сделала качественный рывок вперед, выделив под нужды графического движка дискретный процессор. Пусть умел он поначалу не так много - сглаживать текстуры (путем их «замыливания»), аппаратно прорисовывать полигоны и работать с альфа-каналом - визуальное качество резко возросло (Рис. 1). Но парадокс: теперь разработчики оказались «связаны по рукам и ногам». Если раньше, например, всплеск воды с брызгами можно было сымитировать средствами софт-движка, то теперь спектр эффектов жестко ограничился возможностями ускорителя - никаких всплесков, от силы символические круги на воде. Хотите новые эффекты? Улучшенный ускоритель как раз поступил в продажу! Короче говоря, игровой индустрии пришлось заново учиться использовать технологии рендеринга, словно больному - ходить после тяжелой операции.   Картина радовала продавцов железа, но не рядовых геймеров, которые меняли видеокарты как носки. Такой подход стал неумолимо изживать себя. Выход из ситуации придумали вполне логичный - сделать так, чтобы эффекты ускорителя задавались не аппаратно, а программно. И в играх появились шейдеры - выполняемые видеопроцессором (GPU) микропрограммы, которые описывали эффекты, методы обработки и прорисовки графики. «Железо» не заставило себя долго ждать: NVIDIA выпуском GeForce 3 Ti вбила последний гвоздь в крышку гроба компании 3DFX и ей подобных. Так началась новая эра в игровой компьютерной графике.

Пиксельная река, вершинные берега

  Во времена GeForce 3 и DirectX 8 существовало только два класса шейдеров, но с выходом DirectX 9 их стало три. В совокупности шейдерные блоки образуют конвейер рендеринга, и каждый блок четко выполняет отведенную ему часть общей задачи визуализации. Результат их слаженной работы примерно 25-30 раз в секунду отображается у нас на экране во время игры. Так какие же они бывают - эти шейдеры?

  Вершинные шейдеры (Vertex Shader) впервые появились в виде технологии Transformation & Lighting (T&L), которая поддерживалась еще GeForce 2 и нашла широкое применение в проектах того времени. Особенно в 2000 году отличилась игра Giants: Citizen Kabuto (Рис. 2), которая для раскрытия своего графического потенциала настоятельно требовала видеокарту с поддержкой T&L. И объектом вожделения тысяч геймеров «Гигантов» делало использование последних технологий. Чтобы ответить на вопрос, чем занимаются вершинные шейдеры, давайте сначала разберемся, какими данными они оперируют:

  1. Как мы все хорошо знаем, трехмерные модели представляют собой сеточные каркасы (mesh) и состоят из полигонов, которые, в свою очередь, задаются набором координатных векторов в трехмерном пространстве - вершин (vertex). Отсюда и происходит название этого типа шейдеров.  2. Игровые модели обязаны иметь текстуры, а следовательно, и текстурные развертки. Поэтому, помимо сведений о положении в пространстве, вершины имеют еще текстурные координаты. Они позволяют установить взаимнооднозначное соответствие между полигонами модели и фрагментами текстуры.  3. Для расчета освещенности модели каждой вершине также ставятся в соответствие следующие вектора:   а) Перпендикуляр к поверхности сетки в данной вершине - нормаль.  б) Касательная к поверхности в данной вершине - тангенс-вектор.  в) Перпендикуляр к нормали и тангенс-вектору - бинормаль.  Таким образом, получая на входе вышеуказанные данные, вершинный шейдер по очереди модифицирует вершины, и результат передается в конвейере обработки следующему процедурному блоку. Область применения вершинных шейдеров необъятна: это все низкоуровневые преобразования моделей (вращение, перемещение, масштабирование и т.д.), покачивающаяся на ветру трава и листва деревьев (Рис. 3), любая анимация (лицевая, скелетная) и т.п.
Рис. 2. Игра Giants: Citizen Kabuto всем показала, чего можно добиться средствами T\&L.Рис. 3. \«Ведьмак\» использует вершинные шейдеры на полную катушку. Без них не было бы реалистичной природы и анимации героев.
  Геометрические шейдеры (Geometry Shader) появились только в DirectX 10 и в игровой среде сразу обрели статус ноу-хау. В отличие от вершинных, геометрические шейдеры оперируют на уровне примитивов - пар или троек вершин, которые формируют ребро или треугольник сеточного каркаса соответственно. Кроме того, если указать шейдеру смежные треугольники, то он может разом обработать целых шесть вершин. И, наконец, главное новаторство геометрических шейдеров - их способность на лету генерировать новые примитивы без использования CPU. Вы можете решить, что разница невелика. На самом деле такое расширение в корне меняет дело, ведь теперь шейдер может работать не просто с цепочкой вершин, а с целыми фрагментами модели! И, очевидно, одна из «вкусностей», которую сулит новый класс шейдеров, - аппаратное сглаживание сеток. Те, кто знаком с пакетами моделирования, наверняка сталкивались с процедурой Mesh Smooth или Mesh Subdivision - вот теперь все то же самое будет доступно аппаратными средствами GPU.
Рис. 4. За несколько шагов сегментации даже самую \«угловатую\» модель можно легко сгладить.
  Рис. 4 поясняет, в чем изюминка: путем последовательной сегментации сетки и добавления новых треугольников имеющиеся «угловатости» модели успешно нивелируются. Способов применения процедуры сглаживания масса - например, эффект водной поверхности теперь может выглядеть невероятно правдоподобно (Рис. 5).
Рис. 5. В Microsoft Flight Simulator X для DX10 (внизу) сразу бросается в глаза неподражаемый эффект воды, что недостижимо в DX9 (вверху).
  Или можно придать почти фотореалистичный вид игровому персонажу (Рис. 6). Идея такого решения не нова: еще давно ATI предложила технику сглаживания N-Patch, и, хотя ряд игр с ее поддержкой успел выйти (Рис. 7), широкого распространения она не получила. Причина тому - сырость алгоритмов и функционирование исключительно на видеокартах от этого производителя. В силу своей природы геометрические шейдеры не привязаны к конкретному видеоадаптеру - лишь бы последний полностью поддерживал DX10. Но для владельцев PC это равносильно требованию иметь GeForce 8ххх и выше.
Рис. 6. В очередной технологической демке NVIDIA показала доселе невиданный уровень проработки игрового персонажа.Рис. 7. С помощью системы сглаживания N-Patch игра Morrowind обрела новое лицо.
  Если результат работы геометрических шейдеров заметен не сразу, а вершинных - и подавно, только в движении, то использование пиксельных шейдеров, напротив, сразу бросается в глаза. Это, пожалуй, самый востребованный класс шейдеров, чаще других обсуждаемый и активнее всех эволюционирующий. Именно появление пиксельных шейдеров в GeForce 3 задало новый тренд развития игровой графики. Находясь в самом конце конвейера визуализации изображения, пиксельные шейдеры оперируют на уровне фрагментов изображения. Фрагмент - это пиксель изображения, который задается цветом, текстурными координатами, глубиной и т.д. Главное назначение пиксельных шейдеров заключается в комплексном смешивании текстур, просчете освещенности и оптических свойств моделей, постобработке кадра. В общем, почти все, что мы видим в современных играх, - плод трудов пиксельных шейдеров! Начав свой путь в 2001 году, они дожили до своей уже четвертой итерации (Shader Model 4.0) в пакете DX10. Приведем конкретные примеры эффектов, реализуемых блоком пиксельных шейдеров:  1. Любые виды рельефного текстурирования: bump-mapping, normal-mapping и т.д. Благодаря им игровые модели героев обрели заоблачную детализацию без увеличения фактического числа обрабатываемых полигонов. Этот эффект наиболее заметен в проектах уровня UT2007 (Рис. 8) или Crysis. Рассмотрению этого вопроса у нас была посвящена отдельная развернутая статья, которую можно найти в «Игромании» №3'2007.
Рис. 8. Своей высокой детализацией герои UT3 обязаны в первую очередь рельефным текстурам.
  2. Постэффекты HDR. Дебютировав в Half-Life 2: Lost Coast, HDR-освещение пришлось по вкусу и игрокам, и геймдевелоперам, ведь оно отлично имитирует реальное освещение в виртуальных развлечениях. Как известно, динамический диапазон яркостей, которые может воспринимать человеческий глаз, составляет 20000:1, но экран монитора способен отразить лишь 256:1. Где человек видит черную кошку в темной комнате, монитор покажет лишь черный экран. И, соответственно, сплошным белым пятном будет выглядеть заяц на фоне снега. Очевидно, ни о какой реалистичности говорить не приходится, когда игра выдает картинку фиксированного диапазона. С пришествием HDR стало возможным успешно компенсировать этот недостаток путем постоянного выделения актуального диапазона яркости. Игрок замечает действие этого эффекта, когда выходит из помещения на улицу или резко переводит взгляд с темного предмета на светлый - его на секунду ослепляет (Рис. 9).
Рис. 9. Oblivion один из первых обзавелся поддержкой HDR-освещения, которое имитирует привыкание глаз к яркому свету.
  3. Постэффект Motion Blur отлично заметен в первую очередь в гоночных симуляторах (Рис. 10). Человеческое зрение обладает свойством инертности, а потому резко и/или быстро перемещающиеся объекты воспринимаются нами смазанными. Полноценная реализация этого эффекта появилась в играх серии NFS, а затем моду переняли шутеры, ролевые и прочие игры.
Рис. 10. Смазывание при движении машины в Race Driver: GRID указывает на ее большую скорость.
  4. Постэффект Depth of Field (DOF) нашел свое применение в играх сравнительно недавно ввиду высокой ресурсоемкости его вычисления. DOF призван сымитировать особенность фокусировки опять же человеческого зрения: когда мы смотрим на объект вблизи, дальний план выглядит размытым, и наоборот. Сравнительно мало игр успело обзавестись поддержкой этой технологии, но монструозный движок Unreal Engine 3.0 продемонстрировал качественное использование DOF одним из первых (Рис. 11).
Рис. 11. Эффект DOF отлично выделяет персонажей во время диалогов и схваток.
  5. Постэффект смещения (Pixel Displacement) появился еще в первых играх с поддержкой пиксельных шейдеров и до сих пор не потерял своей актуальности. Наверное, наиболее часто реализуемая с помощью смещения игровая «красивость» - разнообразные искажения пространства (Рис. 12). Эффект также исключительно полезен при создании следов от летящих пуль в замедленном времени (bullet-time) и рассекающих воздух мечей (Рис. 13).
Рис. 12. В TimeShift шейдер пиксельного смещения, например, изображает искажение пространства.Рис. 13. Трассирующие следы от мечей создаются в «Ведьмаке» тоже шейдером смещения.
  6. Шейдеры объектов со сложными оптическими свойствами, к которым можно причислить, например, всевозможную органику (в т.ч. людей, растительность - Рис. 14, 15), подверженные старению предметы (ржавые трубы, плесень на стенах - Рис. 16), любые жидкости и т.д.
Рис. 14. В отличие от UT3 растительность в Crysis прорисовывается мощными пиксельными шейдерами.Рис. 15. Заметно различаются также шейдеры лиц персонажей в UT3 и Crysis. Последний демонстрирует существенно лучший результат.
Рис. 16. Скриншот из проекта для PS3: комплексные шейдеры могут динамически имитировать старение материалов в игре.
Перейти на часть вторую >>> 

Источник: http://wantedsteam.clan.su

Категория: Мои статьи | Добавил: }{отт@бь)ч (19.11.2011) | Автор: Шейдеры в современных играх №1 E W
Просмотров: 7587 | Теги: Шейдеры в современных играх №1, шейдеры | Рейтинг: 5.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.[ Регистрация | Вход ]

wantedsteam.clan.su

Что такое шейдеры

Главная > Компьютер

Шейдер - это программа для процессора графической карты (GPU), выполняющая специфические задачи, заменяя соответствующие блоки FFP.Есть два типа таких программ (шейдеров):Вершинный шейдер (в OpenGL - вершинная программа)- это программа для вершинного процессора, обрабатывающая вершинные данные.Пиксельный шейдер (в OpenGL - фрагментная программа) - это программа для фрагментного процессора, обрабатывающая данные фрагмента, такие как: степень затуманивания, текстурные координаты, глубина и прочее.Программы можно писать на асм-подобных языках или на шейдерных языках высокого уровня, например: HLSL, GLSL или Cg. Синтаксис шейдерной программы очень похож на синтаксис языка C.

Шейдер (англ. Shader) — это программа для одной из ступеней графического конвейера, используемая в трёхмерной графике для определения окончательных параметров объекта или изображения. Она может включать в себя произвольной сложности описание поглощения и рассеяния света, наложения текстуры, отражение и преломление, затенение, смещение поверхности и эффекты пост-обработки.

Есть два вида видеокарт - с индексом MX и FX, так вот МХ шейдеры не поддерживает, а FX да. Образно говоря, в игрушках, особенно с быстро меняющимся сюжетом, например, автогонки, без шейдеров задний план постоянно как бы прорисовывается, с шейдерами задний план висит постоянно, увеличивается как бы глубина изображения. И чем больше шейдеров поддерживает видеокарта, тем приятнее глубина резкости изображения дальнего плана. Некоторые навороченные игрушки с движком такого плана, где надо поддерживать дальний план местности, вообще не запускаются или запускаются с ужасно искаженной графикой без поддержки шейдеров.

Оставайтесь с нами:

Что такое инсталляция Что такое интранет Что такое аська Что такое IRC Что такое IT Что такое кластер Что такое компьютер

t-0.0695

daz.su

Объясните, что такое шейдеры видеокарты?

Есть два вида видеокарт - с индексом MX и FX, так вот МХ шейдеры не поддерживает, а FX да. Образно говоря, в игрушках, особенно с быстро меняющимся сюжетом, например, автогонки, без шейдеров задний план постоянно как бы прорисовывается, с шейдерами задний план висит постоянно, увеличивается как бы глубина изображения. И чем больше шейдеров поддерживает видеокарта, тем приятнее глубина резкости изображения дальнего плана. Некоторые навороченные игрушки с движком такого плана, где надо поддерживать дальний план местности, вообще не запускаются или запускаются с ужасно искаженной графикой без поддержки шейдеров. Современная терминология 3D графики - http://www.ixbt.com/video2/terms2k5.shtml. Извиняюсь перед предыдущим автором, но его объяснение никуда не годится. Лучше здесь читаем: http://www.izcity.com/data/hard/article444.htm. Извиняюсь, но г. Рудницкий немного напутал. Шейдер - это алгоритм прорисовывания поверхностей, теней и т.д. Все видеокарты поддерживают шейдеры, только разных моделей =). Для многих игр второй или третьей шейдерной модели вполне достаточно. Хотя четвертые шейдеры уже и вышли, но игр, поддерживающих эту версию шейдеров, очень мало, не говоря уже о видеокартах. Лучше покупать видеокарту с 3-шейдерной моделью, например Radeon 1950 PRO 512 mb.

www.izcity.com


Смотрите также




© 2012 - 2020 "Познавательный портал yznai-ka.ru!". Содержание, карта сайта.