Specular, displacement карты для шейдеров

Шейдеры и все-все-все.

Specular, displacement карты для шейдеров

Сообщение kry9-ghost 22 окт 2011, 15:28

Скажите, есть ли возможность приатчить к bump-шейдеру карты displacement, и specular. хотя бы specular map. рылся по шейдерам ничего не нашел. может у кого есть наработки на эту тему?
kry9-ghost
UNец
 
Сообщения: 27
Зарегистрирован: 01 авг 2011, 13:08
Откуда: РХ Абакан

Re: Specular, displacement карты для шейдеров

Сообщение Neodrop 22 окт 2011, 17:39

А чем не устраивает родной шейдер Buped Specular ? :-?

Если вы не в курсе, а примеры изучать неохота, то подскажу - спекулярная карта должна жить в альфа-канале диффузной. Уделите себе минутку и поглядите как сделаны модели в том же Буткампе.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Specular, displacement карты для шейдеров

Сообщение Yukio 22 окт 2011, 18:24

есть наработки на эту тему, сам столкнулся с такой проблемой - сделал модель и текстуры (диффуз, спекулар, нормал-бамп), а шейдера подходящего не было. Взялся за изучение Strumpy Shader Editor и к имеющемуся шейдеру рима прикрутил все нужные слоты текстур с регулировкой параметров (цвет, интенсивность):
Изображение
если устраивает такой результат, милости просим в гайд по шейдеру - там все есть http://gamecreatingcommunity.ru/forum/129-3933-1
если гайд не нужен, то вот, пожалуйста http://nxt.ru/sto/download_gate.phtml?d ... &f=/Rim.7z
Yukio
UNIт
 
Сообщения: 60
Зарегистрирован: 07 дек 2010, 00:28

Re: Specular, displacement карты для шейдеров

Сообщение PetkaGtA 22 окт 2011, 18:48

Yukio писал(а):есть наработки на эту тему, сам столкнулся с такой проблемой - сделал модель и текстуры (диффуз, спекулар, нормал-бамп), а шейдера подходящего не было. Взялся за изучение Strumpy Shader Editor и к имеющемуся шейдеру рима прикрутил все нужные слоты текстур с регулировкой параметров (цвет, интенсивность):
Изображение
если устраивает такой результат, милости просим в гайд по шейдеру - там все есть http://gamecreatingcommunity.ru/forum/129-3933-1
если гайд не нужен, то вот, пожалуйста http://nxt.ru/sto/download_gate.phtml?d ... &f=/Rim.7z

неужели никто не умеет писать шейдеры без этих баговых редакторов вроде Strumpy Shader Editor?
вообще прикручивание паралакса не особо сложно. вот интересно поддерживает ли юнити диспласэмент?
PetkaGtA
UNIт
 
Сообщения: 81
Зарегистрирован: 09 сен 2010, 10:05

Re: Specular, displacement карты для шейдеров

Сообщение Yukio 22 окт 2011, 19:15

PetkaGtA писал(а):неужели никто не умеет писать шейдеры без этих баговых редакторов вроде Strumpy Shader Editor?
вообще прикручивание паралакса не особо сложно. вот интересно поддерживает ли юнити диспласэмент?

так напишите - кто ж вам не дает? тем более, что не особо сложно :ymsmug:
Yukio
UNIт
 
Сообщения: 60
Зарегистрирован: 07 дек 2010, 00:28

Re: Specular, displacement карты для шейдеров

Сообщение kry9-ghost 23 окт 2011, 06:34

Спасибо то что нужно!
kry9-ghost
UNец
 
Сообщения: 27
Зарегистрирован: 01 авг 2011, 13:08
Откуда: РХ Абакан

Re: Specular, displacement карты для шейдеров

Сообщение kry9-ghost 23 окт 2011, 06:49

Родной bump_specular не устраивает тем, что дает не совсем правильную проекцию освещения. Например у меня есть текстура ржавого метала, с облезлой краской. Ржавый метал почти не издает бликов, нежели краска, a bump specular будет освещать и то и другое без учета светоотражаемости материалов. Карта specular же даст правильную настройку освещения, и материалы будут выглядеть более реалистично.
kry9-ghost
UNец
 
Сообщения: 27
Зарегистрирован: 01 авг 2011, 13:08
Откуда: РХ Абакан

Re: Specular, displacement карты для шейдеров

Сообщение kry9-ghost 23 окт 2011, 08:06

Изображение
Вот ссылка на то что получилось - http://www.imgup.ru/image-h0ax19111135.html
По моему результат виден.
kry9-ghost
UNец
 
Сообщения: 27
Зарегистрирован: 01 авг 2011, 13:08
Откуда: РХ Абакан

Re: Specular, displacement карты для шейдеров

Сообщение gnoblin 23 окт 2011, 11:43

раскрою два шейдерных "секрета":
- в стандартном шейдере bumped specular маска спекуляра лежит в альфа канале дифузной текстуры
- еще есть встроенный parallax-шейдер
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Specular, displacement карты для шейдеров

Сообщение Yukio 23 окт 2011, 16:58

gnoblin писал(а):раскрою два шейдерных "секрета":
- в стандартном шейдере bumped specular маска спекуляра лежит в альфа канале дифузной текстуры

все зависит от конкретного случая. Если нужен именно выборочный спекулар, то маска с альфой не подойдет. Далее - способ с альфой проигрывает в потреблении памяти на треть текстурной памяти, т.к. когда мы отходим от объекта на определенное расстояние, постепенно неразличимые карты текстур начинают выгружаться из процесса рендеринга.
Yukio
UNIт
 
Сообщения: 60
Зарегистрирован: 07 дек 2010, 00:28

Re: Specular, displacement карты для шейдеров

Сообщение gnoblin 23 окт 2011, 17:56

Yukio писал(а):
gnoblin писал(а):раскрою два шейдерных "секрета":
- в стандартном шейдере bumped specular маска спекуляра лежит в альфа канале дифузной текстуры

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


1. не понял... что такое "выборочный спекуляр"?
2. отходим - и что? Понятно что маску для спекуляра надо откуда-то брать :).
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Specular, displacement карты для шейдеров

Сообщение PetkaGtA 23 окт 2011, 18:14

Yukio писал(а):
gnoblin писал(а):раскрою два шейдерных "секрета":
- в стандартном шейдере bumped specular маска спекуляра лежит в альфа канале дифузной текстуры

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

вот на счет своей карты спекуляра согласен а на счет расстояния не совсем понятно
PetkaGtA
UNIт
 
Сообщения: 81
Зарегистрирован: 09 сен 2010, 10:05

Re: Specular, displacement карты для шейдеров

Сообщение Yukio 23 окт 2011, 19:25

gnoblin писал(а):1. не понял... что такое "выборочный спекуляр"?
2. отходим - и что? Понятно что маску для спекуляра надо откуда-то брать :).

Представьте себе металл заляпанный глиной - глина не блестит, а метал блестит. Маска спекулара посчитает, что эти 2 поверхности должны блестеть. А в отдельной текстуре для спекулара мы сами указываем чему блестеть, а чему нет.
Далее - насчет расстояния. Чтобы хранить маску спекулара нужно к текстуре диффуза добавлять альфа-канал - а это увеличение объема текстурной памяти в 2 раза, т.е. если текстура 1024х1024 занимала 0,7 мб, то с маской она будет занимать уже 1,3 мб. Добавляем нормал-мапу и материал занимает уже 2,6 мб. Когда отходим на определенное расстояние шейдер оптимизирует материал и выгружает текстуры нормал-мапы из рендеринга, потому, что вдалеке нет смысла держать текстуру, работу которой мы не видим. В итоге с далека мы видим только диффуз, а материал занимает 1,3 мб. В шейдере материала с отдельной картой спекулара мы имеем 3 текстуры: 2 (диффуз и спекулар)- по 0,7 мб и нормал-мапа - 1,3 мб. В сумме тоже 2,6 мб - как и обычный бамп-спекулар. Но когда мы отходим на расстояние из рендеринга выгружается не только нормал-мапа, но и наша карта спекулара. В итоге материал потребляет только 0,7 мб. Т.е. наш шейдер будет потреблять только четверть текстурной памяти вместо половины.
Yukio
UNIт
 
Сообщения: 60
Зарегистрирован: 07 дек 2010, 00:28

Re: Specular, displacement карты для шейдеров

Сообщение gnoblin 23 окт 2011, 19:37

Yukio писал(а):Представьте себе металл заляпанный глиной - глина не блестит, а метал блестит. Маска спекулара посчитает, что эти 2 поверхности должны блестеть. А в отдельной текстуре для спекулара мы сами указываем чему блестеть, а чему нет.

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

Yukio писал(а):Далее - насчет расстояния. Чтобы хранить маску спекулара нужно к текстуре диффуза добавлять альфа-канал - а это увеличение объема текстурной памяти в 2 раза, т.е. если текстура 1024х1024 занимала 0,7 мб, то с маской она будет занимать уже 1,3 мб. Добавляем нормал-мапу и материал занимает уже 2,6 мб. Когда отходим на определенное расстояние шейдер оптимизирует материал и выгружает текстуры нормал-мапы из рендеринга, потому, что вдалеке нет смысла держать текстуру, работу которой мы не видим. В итоге с далека мы видим только диффуз, а материал занимает 1,3 мб.

нет, при удалении объекта никакой материал не оптимизируется и никакие текстуры не выгружаются - работает только мипмапинг

Yukio писал(а):В шейдере материала с отдельной картой спекулара мы имеем 3 текстуры: 2 (диффуз и спекулар)- по 0,7 мб и нормал-мапа - 1,3 мб. В сумме тоже 2,6 мб - как и обычный бамп-спекулар. Но когда мы отходим на расстояние из рендеринга выгружается не только нормал-мапа, но и наша карта спекулара. В итоге материал потребляет только 0,7 мб. Т.е. наш шейдер будет потреблять только четверть текстурной памяти вместо половины.

С расчетами размера тоже косяк - вот дифуз и спекуляр в случае двух текстур, там сколько каналов в каждом?
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Specular, displacement карты для шейдеров

Сообщение seaman 23 окт 2011, 19:40

Маска спекулара посчитает, что эти 2 поверхности должны блестеть. А в отдельной текстуре для спекулара мы сами указываем чему блестеть, а чему нет.

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

Не успел.
Но вот это плохо:
нет, при удалении объекта никакой материал не оптимизируется и никакие текстуры не выгружаются - работает только мипмапинг

Но исправимо с использованием ЛОД-ов

ЗЫ: в Огре, например, есть в материалах такая штука - "Техника". У одного материала их может быть много и движок выбирает нужную в зависимости от возможностей видеокарты и расстояния до объекта. Тут в Юнити я не знаток в материалах. Может есть все же что-то подобное?
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

След.

Вернуться в Shader Lab

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1