| Расскажите о шейдерах | 
|  | 
| 
| Нохчи | Дата: Четверг, 21 Июня 2012, 19:34 | Сообщение # 21 |  | заслуженный участник Сейчас нет на сайте | Ни одного нормального ответа, ЛОЛ. 
 Многие вопросы по Windows отпадут, если посмотреть тут
 |  |  |  |  | 
| 
| Figure09 | Дата: Четверг, 21 Июня 2012, 19:34 | Сообщение # 22 |  |   постоянный участник Сейчас нет на сайте | Quote (mobipak) Кстати, есть ещё и вычислительные шейдеры - основная фишка 11 директора. 
   
 Безумие сделает жизнь веселей.
 |  |  |  |  | 
| 
| romgerman | Дата: Четверг, 21 Июня 2012, 19:53 | Сообщение # 23 |  |   старожил Сейчас нет на сайте | Нохчи, почему. Были нормальные ответы, хотя все говорили в общих чертах. |  |  |  |  | 
| 
| Левша | Дата: Пятница, 22 Июня 2012, 14:24 | Сообщение # 24 |  |   почти ветеран Сейчас нет на сайте | Перевод оф. мануала по шейдерам на русский язык. Там еще по мультиплееру есть переводы.
 
   
 X.cor.R (Prologue)
 
 
 Сообщение отредактировал Левша - Пятница, 22 Июня 2012, 14:33 |  |  |  |  | 
| 
| karuy | Дата: Пятница, 22 Июня 2012, 14:50 | Сообщение # 25 |  | заслуженный участник Сейчас нет на сайте | Quote (Нохчи) Ни одного нормального ответа, ЛОЛ. Наверное потому, что ни один из тех кто отвечал скорее всего не написал ни одного шейдера.
 |  |  |  |  | 
| 
| iNikit | Дата: Пятница, 22 Июня 2012, 15:39 | Сообщение # 26 |  |   участник Сейчас нет на сайте | Педевикия: 
 Quote  Ше́йдер — это программа для одной из ступеней графического конвейера, используемая в трёхмерной графике для определения окончательных параметров объекта или изображения. Она может включать в себя произвольной сложности описание поглощения и рассеяния света, наложения текстуры, отражение и преломление, затенение, смещение поверхности и эффекты пост-обработки.
 
Что не понятно? Всё что нужно читать я выделил.
 
 
   Самый лучший юзер GCUP :3
 |  |  |  |  | 
| 
| romgerman | Дата: Пятница, 22 Июня 2012, 16:19 | Сообщение # 27 |  |   старожил Сейчас нет на сайте | iNikit, кэээээээп. Уже википедию видели тыщу раз. |  |  |  |  | 
| 
| iNikit | Дата: Пятница, 22 Июня 2012, 19:20 | Сообщение # 28 |  |   участник Сейчас нет на сайте | romgerman, Quote (romgerman) Уже википедию видели тыщу раз.Я етебе не отвечал на твой вопрос. Я задал тебе вопрос:
 
 Quote (iNikit) Что не понятно?Причём тут кэп?
 
 
   Самый лучший юзер GCUP :3
 |  |  |  |  | 
| 
| romgerman | Дата: Пятница, 22 Июня 2012, 19:24 | Сообщение # 29 |  |   старожил Сейчас нет на сайте | iNikit, мне всё уже объяснили, так что ничего. Эта тема уже давнишняя. |  |  |  |  | 
| 
| NOVA | Дата: Понедельник, 02 Июля 2012, 06:46 | Сообщение # 30 |  |   почетный гость Сейчас нет на сайте | Quote (Нохчи) Ни одного нормального ответа, ЛОЛ.)))
 
 Для получения более реалистичной картинки чем в doom 2 обычно используют шейдеры. Для изображения материалов на уровне, достойном 21 века на каждый объект как минимум нужны:
 diffuse map (colormap) - текстура цвета. Самая важная текстура.
 normal map - текстура псевдообъёма, активно используется в лоуполи ретопологии. Создаёт рельеф на поверхности треугольника (полигона)
 specular map - карта отражения (не отражения) света или cubemap. Используется для создания сколов и потёртостей краски на металле. В стандартных шейдерах обычно ставится на альфаканал диффузы.
 Cutout - обрезание ненужной части модели по альфаканалу.
 Transparent - прозрачность и полупрозрачность по альфаканалу. Очень хорошо выглядят загрязнённые стёкла.
 Reflective - нанесение отражения cubemap на текстуру. (псевдоотражение)
 Lightmapped - Карта освещения объекта во втором канале развёртки. В стандартных шейдерах бамп не глянцует
 
 Сам пользую почти универсальный шейдер для металла. Содержащий диффузу, нормалмап + спекуляр по альфа каналу, + кубмапа + лайтмапа. С крутилками на каждое воздействие.
 Все шейдеры, написанные программистами без участия художников обычно чутьменее чем полностью сомнительны, разве что зеркала, их принцип действия прост как мир.
 
 
   
 
 Сообщение отредактировал NOVA - Понедельник, 02 Июля 2012, 06:49 |  |  |  |  | 
| 
| Нохчи | Дата: Понедельник, 02 Июля 2012, 10:01 | Сообщение # 31 |  | заслуженный участник Сейчас нет на сайте | NOVA, спасибо за интересный пост, про cutout не знал. Разве что не понятно зачем нужен художник при написании шейдеров, сейчас мучаю bump/parallax/parallax occlusion mapping, они написаны уже 100500 раз и там сейчас сплошная копипаста идет. 
 C пиксельными шейдерами закончили ^__^
 
 Многие вопросы по Windows отпадут, если посмотреть тут
 
 
 Сообщение отредактировал Нохчи - Понедельник, 02 Июля 2012, 10:16 |  |  |  |  | 
| 
| NOVA | Дата: Понедельник, 02 Июля 2012, 22:54 | Сообщение # 32 |  |   почетный гость Сейчас нет на сайте | Quote (Figure09) Жжош. про 2.5D текстуру особенно понравилось. Пиши еще Неведение благо))) Добро пожаловать в 3d engine. В частности можно почитать про normalmap и parallax map где нибудь на офсайте, гражданин висёлые кортинки).
 
 
   
 
 Сообщение отредактировал NOVA - Понедельник, 02 Июля 2012, 23:16 |  |  |  |  | 
| 
| Figure09 | Дата: Понедельник, 02 Июля 2012, 23:22 | Сообщение # 33 |  |   постоянный участник Сейчас нет на сайте | NOVA, О! Ну разумеется. Вы просто открыли мне глаза, гражданин крутой шейдерописец)) Добавлено (02.07.2012, 23:22)---------------------------------------------
 
 Quote (NOVA) Все шейдеры, написанные программистами без участия художников обычно чутьменее чем полностью сомнительныlolwut?
 
 Безумие сделает жизнь веселей.
 |  |  |  |  | 
| 
| NOVA | Дата: Вторник, 03 Июля 2012, 00:15 | Сообщение # 34 |  |   почетный гость Сейчас нет на сайте | LolSuck) 
 
   |  |  |  |  | 
| 
| Figure09 | Дата: Вторник, 03 Июля 2012, 00:18 | Сообщение # 35 |  |   постоянный участник Сейчас нет на сайте | Конструктивно. 
 Безумие сделает жизнь веселей.
 |  |  |  |  | 
| 
| Aikidos | Дата: Вторник, 03 Июля 2012, 01:39 | Сообщение # 36 |  |   постоянный участник Сейчас нет на сайте | Простой post process grayscale шейдер, написанный мной с целью изучения работы Cg шейдеров: 
 Вершинный шейдер:
 
 Code struct VS_OUTPUT { float4 VertexPosition : POSITION;
 float2 VertexTexCoord : TEXCOORD0;
 };
 
 VS_OUTPUT main( float3 VertexPosition : POSITION,
 float2 VertexTexCoord : TEXCOORD0)
 {
 VS_OUTPUT Out;
 
 Out.VertexPosition = float4(VertexPosition, 1);
 Out.VertexTexCoord = VertexTexCoord;
 
 return Out;
 }
 Фрагментный шейдер:
 
 Code struct VS_OUTPUT { float4 VertexPosition : POSITION;
 float2 VertexTexCoord : TEXCOORD0;
 };
 
 struct FS_OUTPUT {
 float4 Color0 : COLOR0;
 };
 
 FS_OUTPUT main( VS_OUTPUT In,
 uniform sampler2D TextureMap)
 {
 FS_OUTPUT Out;
 
 float4 CurrentColor = tex2D(TextureMap, In.VertexTexCoord);
 
 float MaxColor = max(max(CurrentColor.r, CurrentColor.g), CurrentColor.b);
 
 Out.Color0 = float4(MaxColor, MaxColor, MaxColor, 1);
 
 return Out;
 }
 Шейдер - просто программа. Компилируется и исполняется видюхой.
 В том же Unity3D есть, что-то типа, плагина для собирания шейдеров без написания единой строчки кода. Название забыл. Обычно люди понатыкают там чего-нить и уже кричат что знают всё о шейдерах
  Не суть правда. Написание шейдера вручную мне кажется делом более симпатичным  Добавлено (03.07.2012, 01:39)---------------------------------------------
 Есть, кстати, 3 вида шейдеров:
 1. Вершинный - исполняется для каждой вершины объекта;
 2. Фрагментный - исполняется для каждого пикселя (не совсем так, но так проще понять
  ); 3. Геометрический - работает с геометрией объекта.
 
 При помощи шейдеров можно сделать всё что угодно.
 
 Post-Process эффекты делают, обычно, следующим образом:
 1. Создают FSQ (full screen quad). Он представляет собой квадрат (в OGL может быть равен 0;0;1;1), который "заполоняет" весь видимый обзор камеры;
 2. При помощи шейдера рисуют его. В сам шейдер передают что угодно (мой пример шейдера, как раз, может послужить примером);
 
 Таким образом мы видим квадрат, на котором изображено изображение, которое нам нарисовал фрагментный шейдер...блин...думаю вы меня поняли, а то чет 2 часа ночи и я уже туго соображаю
   
 Другие шейдеры работают точно так же, но они рисуют уже не на нашем "квадрате", а на самой модели. Там и освещение, и тени, и многое-многое другое.
 
 Ты вышел в поле. Ты куришь гашиш. Ты видишь машину. Ты медведь. Ты горишь.
 |  |  |  |  | 
| 
| Georgiy0912 | Дата: Среда, 04 Июля 2012, 13:59 | Сообщение # 37 |  |   почетный гость Сейчас нет на сайте | Вот тут все все все написано: http://unity3d.ru/distribution/viewtopic.php?f=96&t=1642 P.S Незачто
   |  |  |  |  |