Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Xors3D

Xors3D Графический движок с поддержкой DirectX9

Ответ
 
Опции темы
Старый 10.08.2012, 22:32   #1
FREE MAN
Разработчик
 
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений
(для 565 пользователей)
Шейдеры освещение

Изучаю шейдеры, сделал пять источников освещение,только камнями не бросать
Ссылка: http://rghost.ru/39704766

Последний раз редактировалось FREE MAN, 21.12.2019 в 14:49.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо FREE MAN за это полезное сообщение:
Mhyhr (10.08.2012), pepel (10.08.2012)
Старый 10.08.2012, 23:09   #2
Mhyhr
Бывалый
 
Регистрация: 06.04.2009
Сообщений: 612
Написано 276 полезных сообщений
(для 858 пользователей)
Ответ: Шейдеры освещение

...
Color+=cD*nLight0*LightClr0*LightInt0+cD*nLight1*LightClr1*LightInt1+cD*nLight2*LightClr2*LightInt2+cD*nLight3*LightClr3*LightInt3+cD*nLight4*LightClr4*LightInt4-AmbientClr;
...
Жестоко :D
(Offline)
 
Ответить с цитированием
Старый 10.08.2012, 23:23   #3
FREE MAN
Разработчик
 
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений
(для 565 пользователей)
Ответ: Шейдеры освещение

Сообщение от Mhyhr Посмотреть сообщение
...
Color+=cD*nLight0*LightClr0*LightInt0+cD*nLight1*LightClr1*LightInt1+cD*nLight2*LightClr2*LightInt2+cD*nLight3*LightClr3*LightInt3+cD*nLight4*LightClr4*LightInt4-AmbientClr;
...
Жестоко :D
У тебя есть другие предложения, как это реализовать?
Жаль, что в Ксорсе не да делали Deferred render, да и вообще убрали из функционала, пока знаний мало что бы такое реализовывать.
(Offline)
 
Ответить с цитированием
Старый 10.08.2012, 23:42   #4
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Шейдеры освещение

Сообщение от Phyton Посмотреть сообщение
У тебя есть другие предложения, как это реализовать?
Жаль, что в Ксорсе не да делали Deferred render, да и вообще убрали из функционала, пока знаний мало что бы такое реализовывать.
Можно же массивом передавать, а потом в цикле внутри шейдера посчитать. И тогда можно одним и тем же шейдером иметь хоть один хоть десять источников света.

BBDECL void BBCALL xSetEffectFloatArray ( Entity * entity,
const char * name,
float * value,
int count,
int layer = -1
)

Sets a floating array constant for entity shaders.

Parameters:
entity Entity handle
name Constant name
value Pointer to floating array
count Number of elements in array
layer Index of the effect layer in range [0; 7]. If -1 is passed - active layer will be used (see xSetShaderLayer())
и т.д.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
FREE MAN (10.08.2012)
Старый 11.08.2012, 00:05   #5
FREE MAN
Разработчик
 
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений
(для 565 пользователей)
Ответ: Шейдеры освещение

Сообщение от dsd Посмотреть сообщение
Можно же массивом передавать, а потом в цикле внутри шейдера посчитать. И тогда можно одним и тем же шейдером иметь хоть один хоть десять источников света.
и т.д.
Ты сам пробовал так реализовывать? А если допустим с бампом, такой метод покатит?
(Offline)
 
Ответить с цитированием
Старый 11.08.2012, 00:18   #6
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Шейдеры освещение

Сообщение от Phyton Посмотреть сообщение
Ты сам пробовал так реализовывать? А если допустим с бампом, такой метод покатит?
Сам не пробовал, но помоему это пофигу.
Я бы сделал отдельно функцию которая бы считала в текущей точке сумму цвет_света*интенсивность_света_в_этой_точке. И вставлял бы её везде.
Бамп же просто отклоняет нормаль, за счет чего и создается впечатление рельефа. Количество света не должно же изменится из-за этого в той точке.
А тот бамп который во много слоев рендрит полигон для почти натурального рельефа тоже пофигу, так как один хрен он смещает плоскость полигона, а значит и точка для которой посчитается количество света тоже будет в нужном месте.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
FREE MAN (11.08.2012)
Старый 12.08.2012, 20:44   #7
FREE MAN
Разработчик
 
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений
(для 565 пользователей)
Ответ: Шейдеры освещение

экспериментирую...

Последний раз редактировалось FREE MAN, 21.12.2019 в 14:49.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо FREE MAN за это полезное сообщение:
ARA (12.08.2012), pepel (12.08.2012), St_AnGer (13.08.2012)
Старый 13.08.2012, 02:44   #8
FREE MAN
Разработчик
 
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений
(для 565 пользователей)
Ответ: Шейдеры освещение

Продолжение эксперимента, мене это уже нравится!
еще бы полностью разобраться с массивами и можно будет без проблем использовать куча света...

Последний раз редактировалось FREE MAN, 21.12.2019 в 14:49.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо FREE MAN за это полезное сообщение:
dsd (13.08.2012), St_AnGer (13.08.2012)
Старый 13.08.2012, 14:34   #9
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Шейдеры освещение

Сообщение от Phyton Посмотреть сообщение
и можно будет без проблем использовать куча света...
Как бэ шейдеры не резиновые) точнее резиновые но не на столько)
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
FREE MAN (13.08.2012)
Старый 13.08.2012, 14:48   #10
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Шейдеры освещение

Сообщение от Phyton Посмотреть сообщение
Продолжение эксперимента, мене это уже нравится!
еще бы полностью разобраться с массивами и можно будет без проблем использовать куча света...
А ты не мог бы поделиться нормал-мапом с последнего скриншота? Заранее спасибо
(Offline)
 
Ответить с цитированием
Старый 13.08.2012, 15:00   #11
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Шейдеры освещение

Прикольно, только да, шейдеры не резиновые. И "динамичные" циклы - очень дорогое удовольствие в шейдерах.
Деферред не такой и сложный на самом деле, главное понять фишку.
Реализовать его можно не затрудняясь сильно, ты главное попробуй.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
FREE MAN (13.08.2012)
Старый 13.08.2012, 16:30   #12
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Шейдеры освещение

Сообщение от MoKa Посмотреть сообщение
только да, шейдеры не резиновые. И "динамичные" циклы - очень дорогое удовольствие в шейдерах.
Но ведь можно же сжульничать
Сделать текстуру в которой пятнами будет рисоваться интенсивность света на его цвет уже посчитанная. Причем судя по моим экспериментам с axelynx текстура может быть очень подробной. В смысле большой. Потом в вертексном шейдере читать по мировым координатам количество света для этой точки. И цикл исчезает. Или еще лучше не очень подробную, но 3д текстуру. В общем есть на мой взгляд способы повышения резиновости шейдеров.
(Offline)
 
Ответить с цитированием
Старый 13.08.2012, 16:54   #13
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Шейдеры освещение

И прощай динамическое освещение, разве что только дополнительные источники для него пилить. Но лайтмэпы это круто да)
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 13.08.2012, 16:59   #14
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Шейдеры освещение

Сообщение от pax Посмотреть сообщение
И прощай динамическое освещение, разве что только дополнительные источники для него пилить. Но лайтмэпы это круто да)
Да нет же. В том то и дело что можно обновлять в прямом эфире, несколько раз в секунду, потратив на это несколько миллисекунд времени из всей секунды. А для прям таких близких 3-4 источников можно уже в пиксельном все подробно считать.
(Offline)
 
Ответить с цитированием
Старый 13.08.2012, 17:08   #15
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Шейдеры освещение

т.е. использовать второй или третий uv канал на огромную текстуру с освещеним?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 19:06.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com