Пятница, 13 Декабря 2019, 11:09

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: beril  
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Расскажите о шейдерах (Что такое?)
Расскажите о шейдерах
НохчиДата: Четверг, 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 есть, что-то типа, плагина для собирания шейдеров без написания единой строчки кода. Название забыл. Обычно люди понатыкают там чего-нить и уже кричат что знают всё о шейдерах biggrin Не суть правда. Написание шейдера вручную мне кажется делом более симпатичным happy

Добавлено (03.07.2012, 01:39)
---------------------------------------------
Есть, кстати, 3 вида шейдеров:
1. Вершинный - исполняется для каждой вершины объекта;
2. Фрагментный - исполняется для каждого пикселя (не совсем так, но так проще понять smile );
3. Геометрический - работает с геометрией объекта.

При помощи шейдеров можно сделать всё что угодно.

Post-Process эффекты делают, обычно, следующим образом:
1. Создают FSQ (full screen quad). Он представляет собой квадрат (в OGL может быть равен 0;0;1;1), который "заполоняет" весь видимый обзор камеры;
2. При помощи шейдера рисуют его. В сам шейдер передают что угодно (мой пример шейдера, как раз, может послужить примером);

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

Другие шейдеры работают точно так же, но они рисуют уже не на нашем "квадрате", а на самой модели. Там и освещение, и тени, и многое-многое другое.


Ты вышел в поле. Ты куришь гашиш. Ты видишь машину. Ты медведь. Ты горишь.
Georgiy0912Дата: Среда, 04 Июля 2012, 13:59 | Сообщение # 37
почетный гость
Сейчас нет на сайте
Вот тут все все все написано: http://unity3d.ru/distribution/viewtopic.php?f=96&t=1642
P.S Незачто cool
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Расскажите о шейдерах (Что такое?)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Все права сохранены. GcUp.ru © 2008-2019 Рейтинг