![]() |
Ответ: [TrueHorror] - разработка
Цитата:
http://the-witness.net/news/2010/03/...uted-lighting/ и вообще весь раздел engine-tech посмотри. |
Ответ: [TrueHorror] - разработка
Цитата:
сделал отдельным проходом, как сказал pax |
Ответ: [TrueHorror] - разработка
Цитата:
- стоит дважды (а лучше и ещё несколько раз) подумать, прежде, чем приступать к этому, т.к. реализация непростая, и лайтмапы запечь тупо и быстрее и качественнее может выйти. нужно точно понять, насколько тебе нужно действительно динамическое ги. - тени от индиректа добавляют нехилой нагрузки - насколько я помню, в релизе крайзиса 2 они отключены, а без них индирект светит сквозь всё. - всего 4 РГБ коэфициента сферических гармоник юзают крайтеки - это маловато для точного описания дифуза - получается менее выраженная направленность отражённого света, он более со всех сторон лезёт. печь 9 ргб коэфов - непрактично. дак тут тупо чуваки рендерят радиосити игровым рендером - из каждой точки лайтмапа камеры ставят и фигак. вариант весёлый конечно, и я так пробовал: http://ndotl.files.wordpress.com/201...5-13-04-37.jpg но работало оно не быстрее офлайновых запекателей, а то и медленее) офлайновые запекатели умеют всякие хитрости делать, вроде адаптивности, или ноизом раскидать семплы а потом интерполировать, в упомянутом же случае мы просто херачим регулярной сеткой. плюс надо учитывать всякие швы на развертке и. т. п... это куда больший гемор, чем кажется. |
Ответ: [TrueHorror] - разработка
Цитата:
Цитата:
Вообще это проект Джоната Блоу, который всем известный Braid сделал. Мне больше их дизайн нравится нежели программирование, но они подробно всё расписывают, что радует. |
Ответ: [TrueHorror] - разработка
Цитата:
|
Ответ: [TrueHorror] - разработка
Ну технически лайтмапы, но просто когда ты рендеришь картинку ты фиксируешь весь диапазон освещения который падает на поверхность как есть. Если же рендерить с помощью абстрактных лучей и сторонних средств, то они могут не все вещи учитывать.
Вот можно привести такой пример: какой-нибудь эффект, отбрасывающий свет генериться движком в реалтайме, то есть пока движок в процессе отображения сцены не нарисует картинку с этим эффектом, его нельзя будет достичь другими методами, таким образом у сторонних средств не будет нужных ресурсов чтобы корректно рассчитать лайтмапу. |
Ответ: [TrueHorror] - разработка
ну разве что у тебя какие-то особо сложные процедурные эффекты в PS на всех поверхностях - тогда может быть да.
а так дифузы/отражения/эмиссив - они и в рейтрейсере дифузы/отражения/эмиссив. |
Ответ: [TrueHorror] - разработка
Решил запилить мягкие частицы так как после дефереда есть текстура с данными о глубине. И вот тут затык: как в пиксельном шейдере отрисовки частиц получить координаты текущего фрагмента для выборки из карты глубины? Ведь в D3D9 нет SV_Position - пищаль
Ах, да. Я знаю про семантику VPOS, но мне нужно уложиться в ps_2_0 |
Ответ: [TrueHorror] - разработка
Цитата:
в любом случае, не забывай, что то, что ты выводишь из вертексного шейдера в POSITION - это не что иное, как позиция точки на экране в диапазоне [-1, 1]. Так что ты легко получаешь экранные текскоорды из них: ScreenSpaceUV = OUT.Position.xy*0.5+0.5; ----- также, смещение на пол-пикселя не забудь: http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx |
Ответ: [TrueHorror] - разработка
Вложений: 2
Сделал. Не уверен что самым лучшим образом, но оно работает.
Вот код: http://pastebin.com/CKABUej7 Скриншоты - обычные частицы и мягкие. |
Ответ: [TrueHorror] - разработка
нормально) хотя я тупо без distance и восстановления позиции делал, на разнице глубин партикла и дептхмапы.
|
Ответ: [TrueHorror] - разработка
объясните мне пожалуйста: почему, если не запаковать нормали в отрезок [0;1]( при записи в текстуру ) и не распаковать их впоследствии( второй проход ), свет считается отстойно? это как-то связано с тем что мы пишем в D3DFMT_A8B8G8R8 где на каждую компоненту приходится по 1 байту?
|
Ответ: [TrueHorror] - разработка
Цитата:
Цитата:
в ргба8 хранится по байту на канал (0-255) (в шейдерах выглядит как флоаты 0-1) |
Ответ: [TrueHorror] - разработка
тоесть в подобных форматах хранится беззнаковое целое? Всегда думал что со знаком хранится.
и еще - тени ( шадоумапы ) рисовать отдельным проходом получается( тест трафарета мешает использовать в одном проходе)? использовать значения глубины для сравнения с глубиной шадоумапы из г-буфера? |
Ответ: [TrueHorror] - разработка
Цитата:
Там внизу расписано по категориям signed, unsigned и ieee (то бишь float) форматы. Например аналог D3DFMT_A8R8G8B8 со знаком будет D3DFMT_Q8W8V8U8. Однако не все из них поддерживает устройство - нужно проверять. |
| Часовой пояс GMT +4, время: 02:45. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Перевод: zCarot