Прочие компьютерные игры
Подскажите пожалуйста, что такое "ШЕЙДЕР"?
Если кратко, то это довольно простые небольшие программки, выполняющиеся на графическом процессоре (ГП) , а не на центральном (ЦП) . На самом деле ГП уже давно взял на себя значительную долю обработки графики, освобождая тем самым ресурсы ЦП для других задач. Но принципиальная разница состоит в том, что ранее разработчики применяли специальные API для написания программ, которые взаимодействовали с ГП путем подготовки параметров и передачи их для выполнения отдельных функций. То есть ГП имел фиксированный набор функций, вызываемых по мере необходимости. Теперь же, благодаря шейдерам, взаимодействие с ГП сводится не к простому вызову его специфических функций, а к загрузке в него целых программ. Это дает как минимум два серьезных преимущества. Во-первых, значительно сокращается расходование ресурсов ЦП на подготовку данных для загрузки в ГП. Во-вторых, набор функций ГП стал на порядок разнообразнее благодаря тому, что разработчик фактически способен им полностью управлять. Это значит, что вместо фиксированной функциональности мы получаем платформу для разработки функций ГП.
Ше́йдер (англ. Shader) — это программа для одной из ступеней графического конвейера, используемая в трёхмерной графике для определения окончательных параметров объекта или изображения. Она может включать в себя произвольной сложности описание поглощения и рассеяния света, наложения текстуры, отражение и преломление, затенение, смещение поверхности и эффекты пост-обработки.
Программируемые шейдеры гибки и эффективны. Сложные с виду поверхности могут быть визуализированы при помощи простых геометрических форм. Например, шейдеры могут быть использованы для рисования поверхности из трёхмерной керамической плитки на абсолютно плоской поверхности.
Типы шейдеров
В настоящее время шейдеры делятся на три типа: вершинные, геометрические и фрагментные (пиксельные) .
[править] Вершинные шейдеры (Vertex Shader)
Вершинный шейдер оперирует данными, сопоставленными с вершинами многогранников. К таким данным, в частности, относятся координаты вершины в пространстве, текстурные координаты, тангенс-вектор, вектор бинормали, вектор нормали. Вершинный шейдер может быть использован для видового и перспективного преобразования вершин, генерации текстурных координат, расчета освещения и т. д.
[править] Геометрические шейдеры (Geometry Shader)
Геометрический шейдер, в отличие от вершинного, способен обработать не только одну вершину, но и целый примитив. Это может быть отрезок (две вершины) и треугольник (три вершины) , а при наличии информации о смежных вершинах (adjacency) может быть обработано до шести вершин для треугольного примитива. Кроме того геометрический шейдер способен генерировать примитивы "на лету", не задействуя при этом центральный процессор. Впервые начал использоваться на видеокартах Nvidia, серии 8.
[править] Фрагментные (Пиксельные) шейдеры (Pixel Shader)
Фрагментный шейдер работает с фрагментами изображения. Под фрагментом изображения в данном случае понимается пиксел, которому поставлен в соответствие некоторый набор атрибутов, таких как цвет, глубина, текстурные координаты. Фрагментный шейдер используется на последней стадии графического конвейера для формирования фрагмента изображения.
[править] Потребность в шейдерах
В программных графических движках вся цепочка рендеринга — от определения видимых частей сцены до наложения текстуры — писалась разработчиком игры. В эту цепочку можно было включать собственные нестандартные видеоэффекты. Но с появлением видеоакселераторов разработчик оказался ограничен тем набором эффектов, который заложен в аппаратное обеспечение. Вот два примера.
* Попробуйте нырнуть под воду в Quake 2 на программном и на OpenGL-рендеринге — при всём качестве аппаратно ускоренной картинки, вода там — просто синий светофильтр, в то время как в программном есть эффект плеска воды.
* В Counter-Strike эффект ослепления от светошумовой гранаты на аппаратном рендеринге — белая вспышка, на программном — белая вспышка и пикселизированный экран.
Предшественниками шейдеров были процедурная генерация текстур (широко применявшаяся в Unreal для создания анимированных текстур воды и огня) и мультитекстурирование (на нём был основан язык шейдеров, применявшийся в Quake 3). Но и эти эффекты не обеспечивают такой гибкости, как шейдеры.
Программируемые шейдеры гибки и эффективны. Сложные с виду поверхности могут быть визуализированы при помощи простых геометрических форм. Например, шейдеры могут быть использованы для рисования поверхности из трёхмерной керамической плитки на абсолютно плоской поверхности.
Типы шейдеров
В настоящее время шейдеры делятся на три типа: вершинные, геометрические и фрагментные (пиксельные) .
[править] Вершинные шейдеры (Vertex Shader)
Вершинный шейдер оперирует данными, сопоставленными с вершинами многогранников. К таким данным, в частности, относятся координаты вершины в пространстве, текстурные координаты, тангенс-вектор, вектор бинормали, вектор нормали. Вершинный шейдер может быть использован для видового и перспективного преобразования вершин, генерации текстурных координат, расчета освещения и т. д.
[править] Геометрические шейдеры (Geometry Shader)
Геометрический шейдер, в отличие от вершинного, способен обработать не только одну вершину, но и целый примитив. Это может быть отрезок (две вершины) и треугольник (три вершины) , а при наличии информации о смежных вершинах (adjacency) может быть обработано до шести вершин для треугольного примитива. Кроме того геометрический шейдер способен генерировать примитивы "на лету", не задействуя при этом центральный процессор. Впервые начал использоваться на видеокартах Nvidia, серии 8.
[править] Фрагментные (Пиксельные) шейдеры (Pixel Shader)
Фрагментный шейдер работает с фрагментами изображения. Под фрагментом изображения в данном случае понимается пиксел, которому поставлен в соответствие некоторый набор атрибутов, таких как цвет, глубина, текстурные координаты. Фрагментный шейдер используется на последней стадии графического конвейера для формирования фрагмента изображения.
[править] Потребность в шейдерах
В программных графических движках вся цепочка рендеринга — от определения видимых частей сцены до наложения текстуры — писалась разработчиком игры. В эту цепочку можно было включать собственные нестандартные видеоэффекты. Но с появлением видеоакселераторов разработчик оказался ограничен тем набором эффектов, который заложен в аппаратное обеспечение. Вот два примера.
* Попробуйте нырнуть под воду в Quake 2 на программном и на OpenGL-рендеринге — при всём качестве аппаратно ускоренной картинки, вода там — просто синий светофильтр, в то время как в программном есть эффект плеска воды.
* В Counter-Strike эффект ослепления от светошумовой гранаты на аппаратном рендеринге — белая вспышка, на программном — белая вспышка и пикселизированный экран.
Предшественниками шейдеров были процедурная генерация текстур (широко применявшаяся в Unreal для создания анимированных текстур воды и огня) и мультитекстурирование (на нём был основан язык шейдеров, применявшийся в Quake 3). Но и эти эффекты не обеспечивают такой гибкости, как шейдеры.
Ше́йдер (англ. Shader) — это программа для одной из ступеней графического конвейера, используемая в трёхмерной графике для определения окончательных параметров объекта или изображения. Она может включать в себя произвольной сложности описание поглощения и рассеяния света, наложения текстуры, отражение и преломление, затенение, смещение поверхности и эффекты пост-обработки.
http://ru.wikipedia.org/wiki/Шейдер
http://ru.wikipedia.org/wiki/Шейдер
Похожие вопросы
- подскажите пожалуйста что такое пиксельные шейдеры 2.0? и как узнать камп поддерживает их или нет?
- подскажите, Вот у меня сильно долго загружаються сервера в кс 1.6 Что с этим делать?) Подскажите пожалуйста (
- Игроки WoW подскажите пожалуйста.
- ПК за 100 к. Подскажите пожалуйста, что и как
- Народ, подскажите пожалуйста сайт, где можно скачать игры на халяву! Заранее спасибо !
- GTA SAN ADREAS -подскажите пожалуйста коды или где скачать Заранее спасибо
- как писать коды в игре NFS underground2 подскажите пожалуйста!
- Подскажите пожалуйста а когда выйдит GTA4
- А кто нибудь знает коды для The sims 2?Подскажите пожалуйста!!!
- подскажите пожалуйста почему у меня при запусике Games Social Club пишет: смотрите ниже