![]() |
Шейдеры освещение
Изучаю шейдеры, сделал пять источников освещение,только камнями не бросать :)
Ссылка: http://rghost.ru/39704766 |
Ответ: Шейдеры освещение
Код:
... |
Ответ: Шейдеры освещение
Цитата:
Жаль, что в Ксорсе не да делали Deferred render, да и вообще убрали из функционала, пока знаний мало что бы такое реализовывать. |
Ответ: Шейдеры освещение
Цитата:
Цитата:
|
Ответ: Шейдеры освещение
Цитата:
|
Ответ: Шейдеры освещение
Цитата:
Я бы сделал отдельно функцию которая бы считала в текущей точке сумму цвет_света*интенсивность_света_в_этой_точке. И вставлял бы её везде. Бамп же просто отклоняет нормаль, за счет чего и создается впечатление рельефа. Количество света не должно же изменится из-за этого в той точке. А тот бамп который во много слоев рендрит полигон для почти натурального рельефа тоже пофигу, так как один хрен он смещает плоскость полигона, а значит и точка для которой посчитается количество света тоже будет в нужном месте. |
Ответ: Шейдеры освещение
экспериментирую...
|
Ответ: Шейдеры освещение
Продолжение эксперимента, мене это уже нравится! :cool:
еще бы полностью разобраться с массивами и можно будет без проблем использовать куча света... |
Ответ: Шейдеры освещение
Цитата:
|
Ответ: Шейдеры освещение
Цитата:
|
Ответ: Шейдеры освещение
Прикольно, только да, шейдеры не резиновые. И "динамичные" циклы - очень дорогое удовольствие в шейдерах.
Деферред не такой и сложный на самом деле, главное понять фишку. Реализовать его можно не затрудняясь сильно, ты главное попробуй. |
Ответ: Шейдеры освещение
Цитата:
Сделать текстуру в которой пятнами будет рисоваться интенсивность света на его цвет уже посчитанная. Причем судя по моим экспериментам с axelynx текстура может быть очень подробной. В смысле большой. Потом в вертексном шейдере читать по мировым координатам количество света для этой точки. И цикл исчезает. Или еще лучше не очень подробную, но 3д текстуру. В общем есть на мой взгляд способы повышения резиновости шейдеров. :) |
Ответ: Шейдеры освещение
И прощай динамическое освещение, разве что только дополнительные источники для него пилить. Но лайтмэпы это круто да)
|
Ответ: Шейдеры освещение
Цитата:
|
Ответ: Шейдеры освещение
т.е. использовать второй или третий uv канал на огромную текстуру с освещеним?
|
Ответ: Шейдеры освещение
Ничего дополнительного с моделями делать не надо.
Просто центр в такой текстуре это позиция камеры. А после умножения на мировую и видовую матрицу у вершин координаты можно использовать как текстурные. Если наша лайтмапа охватывает 64 единицы от камеры, то соответственно делим координаты вершин на 128 и плюсуем 0,5. И вуаля нужные координаты для чтения значения из текстуры. |
Ответ: Шейдеры освещение
Ну это только с 3d текстурой, нормально выйдет, а 256х256х256 = 64мб видеопамяти не сжатых. Если есть какое-то dxt то еще ладно.
|
Ответ: Шейдеры освещение
Ну так я и говорю потому что сжульничать можно :) Да и 3д текстуру 256*256*256 уже довольно долго делать. А вот если мир относительно плоский и источники света примерно в одной плоскости лежат...
|
Ответ: Шейдеры освещение
Цитата:
Цитата:
в последних моих скринах освещения можно использовать в коридорных шутерах типа Doom3, можно сделать скажем 4-8 источников освещения и просто потом перемещать источники освещения в зависимости где находится камера или игрок. Цитата:
|
Ответ: Шейдеры освещение
В камере не думаю что должно быть слишком много источников, но дело в том что всё усложняется с усложнением материалов. Например если тебе нужно сделать параллакс, и тени, то у тебя всё ещё в разы усложниться.
Когда в дефферед, это будет намного оптимальнее. Тем более вес вычислений на каждый источник света в деферреде намного меньше чем в Forward Render'инге. Также есть удобные Screen Space оптимизации - исходя из радиуса источника света, положения и камеры, то можно вычислить Screen Space Bounding Box источника света, и при вычислении очередного света, создавать биллбоард именно такого размера - это очень сильно улучшит производительность. А если Bounding Box не в экране - так вообще игнорируется источник света и просчёт его. Такое на Forward Render'инге замахаешься делать.. |
Ответ: Шейдеры освещение
Балуюсь дальше...:-D
|
Ответ: Шейдеры освещение
оч красиво) А поделиться могеш?)
|
Ответ: Шейдеры освещение
Цитата:
|
Ответ: Шейдеры освещение
а чего всё мыльное? без АА, при этом лесенки пикселей ещё каким-то блюром пожёваны.
либо постэффект-квад сдвинут немного, либо неправильные текскоорды для него считаются. |
Ответ: Шейдеры освещение
Сделал 10 источников света! девять лампочек и глобальный свет.
http://www.youtube.com/watch?v=NNdLDusP21U |
Ответ: Шейдеры освещение
Цитата:
|
Ответ: Шейдеры освещение
на последних скринах вроде пофиксил ты.
а, так там просто блум выкл? в общем в DX9 есть такой прикол, что чтобы корректно рисовать фулскрин картинку в постэффекте, надо сдвигаться на пол-пикселя: http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx если ты юзаешь что-то из встроенных постэффектов, скорее всего там всё корректно, тогда значит ты возможно создаёшь постэффект с какими-нибудь не теми флагами. я щас не в теме, в ксорсе какая-то новая работа с постэффектами, когда я работал, там с постэффект-квадом можно было работать как с ентити (теми же командами ставить параметры шейдера - и имхо удобнее было), вот тогда при создании квада был какой-то флажок, в одном состоянии всё выходило криво, в другом нормально. |
Ответ: Шейдеры освещение
Цитата:
|
Ответ: Шейдеры освещение
Вау, а выложить не могеш? Илил в личку скинуть? Оч красиво)
|
Ответ: Шейдеры освещение
Цитата:
|
Ответ: Шейдеры освещение
Цитата:
|
Ответ: Шейдеры освещение
4yBa4Ok стучись в аську 480258886, все расскажу как сделать много источников света простым способом.
|
Ответ: Шейдеры освещение
Продолжаем эксперимент, вроде как заморозка получилась.
|
Ответ: Шейдеры освещение
Напомнило мне шейдер который я давно делал, Burn, там сгорал объект. Потом я делал версию с типо электро маскировкой - он как бы сгорал только синим электричеством, и заместо прозрачности использовал рефлекцию.
А потом увидел этот же эффект уже в Start Craft II у теранов, самолётики который Cloak используют.. |
Ответ: Шейдеры освещение
Мока а как ты делал этот шейдер? можешь обьяснить в теории?
|
Ответ: Шейдеры освещение
Он вроди как всё ещё есть в поставке примеров с Xors'ом.
Суть простая, тебе нужно каким либо образом симулировать по геометрии переход, простой переход от чёрного к белому (0 - 1.0). Я делал двумя методами, и на видео тут вижу тоже вроди как они же. Первый - это есть точка в пространстве, увеличиваем дистанцию, все пиксели что поподают в радиус интерполируются в 1.0 от нуля. За радиусом всё 0. Далее высотная карта (чёрно белая, имеет данные 0.0 - 1.0) может также использоваться для смещений параметра, чтобы избавиться от тупо округлой формы дистанции и внести какую-то рябь. Далее этот параметр от 0 до 1, используешь как маску для смешивания двух палитр - диффуза и палитры горения / заморозки (или чего ещё нада). Тогда я сделал вручную цвета, а сейчас использовал бы просто 1D Gradient текстуру, которая бы содержала данные о переходе, а также цветах. Таким образом можно было бы заменять просто текстуру или даже генерировать динамично в шейдере для интересных эффектов. Основной принцип объяснён выше, но чтобы чуток упростить, можно не использовать какую-либо точку в пространстве, а лишь высотную карту. Таким образом будет по всему объекту переход. Вообще сложно объяснить такой шейдер, ты попробуй подумать смекалкой и поэкспериментировать. Попробуй разбить на какие-то трюки / компоненты сам шейдер, и реализовать их по отдельности для тренировки. Потом полная идея и реализация будет явной. |
Часовой пояс GMT +4, время: 08:42. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot