LINUX.ORG.RU

Screen Space Local Reflections - Может кому пригодится

 , , , ,


0

1

Запилил себе отражения в экранном пространстве, хотел сделать демку для Corange, но тогда придётся повторно Gbuffer дублировать, а нахер оно надо. Или встраивать в рендер, но оно тоже нахрен не надо ибо реализация с горя пополам, короче минимальная. Короче я долго дуплил как хотя бы работать заставить эту хрень (Которая по итогу оказалась по сути хренью) заработало, спасибо видосу с ютуба где мужик объяснил непонятные моменты Короче вот https://github.com/orangeduck/Corange/issues/46 я просто скинул нужные куски кода,выглядит вот так https://www.youtube.com/watch?v=_kgjMhhp3Rs ,в текущем виде предлагать смержить с основным кодом это курам на смех, а так если кому интересно будет то можно использовать как минимально работающую имплементацию. Сабж обсуждать не надо. Я просто оставил это здесь. 5 Дней пердолился, по итогу оказалось мне не нужно с тем результатом что есть. Но возможно кому-то будет надо.

Ну ещё добавлю, попытка заполнять недоступные для SSLR тексели отражениями из динамической кубической карты окружения дно, даже не пытайтесь, будет мусор в виде увеличения на экране если камера высоко над отражаемым объектом, тоесть отражения никак не состыковать.

И ещё до кучи, посчитали себя житрожопым и решили что можно кешировать отражённые тексели и заюзать MRT редреринг при постпроцессинге что бы помечать тексели которые над головой, а потом возвращать их же когда они теряются из за наклона камеры то тоже губу то закатайте. Оно работает, причём здорово, но если есть движение то сосём ибо то что закешированно уже не соотносится с новой позицией.

Но если вы совсем утка шестипалая и решила рендерить в кубемапу только то что над камерой и когда uv выходит за единичку по y отдавать тексели из кубемапы то поздравляю это замечательно работает и отражения корректные и данные от кубической карты отлично стыкуются с данными SSLR там где оно теряет тексели из за выхода за пределы UV но! опять сасать, ибо если хотите стыковку то отражения кубической карты должны быть того же разрешения что и основное, а это значит рендер полного кадра со семи эффектами два раза минимум, вроде ок но это если машинка шустрая. Ну или в низком разрешении и типа блюр отражения. Но тогда проще в кубемапу запеч причём запекать прямо в реалтайме а не заранее.

Ну вроде всё. SSLR хорошая штука, но в очень ограниченных условиях, ну или в гибриде с другими методами которые будут сглаживать косяки потери данных ray miss которые. Ну вроде всё.

Ах да, вариант с кубической картой глубины как при все направленных тенях тоже такое себе

Выдыхаю.

P.S. Прочитал тут про voxel GI и даже не знаю, что проще сразу повесится или пердолится с месяцок, а потом обнаружить что моя карта выдаст мне 2 кадра в секунду из за филлрейта в 1к пикселей и всё было зря. :D Сук , Ворона, сыр аж грустно, а я хотел на отражениях в игрушке своей завязать механику, теперь в топку.

Ответ на: комментарий от xDShot

Никогда =) Во первых у меня подобного железа нет. Во вторых поддержку RTX при наличии железа добавить в свою игру сможет даже ребёнок ибо технически и практически это одна или две строчки в шейдере и пяток в софте, для получения собственно просто отражения. И да, не забываем что отражения RTX это типа и фича и одновременно бага, так как кроме тупо отражения RTX ничего не может, от слова совсем, ни диффузного рассеивания, ни падения яркости переотражённых лучей, ни че го. Тупа зеркало и всё. Даже с картой нормалей скомпоновать не получится никак, либо нормали либо RTX. Хотя возможно они доработали. Или я не в курсе и вру частично.

Пока RTX залочен на вендора он не нужен. Как и cuda. Ибо работает у 3,5 людей. А на любой карте сопоставимой по мощности можно делать SSLR + Voxel GI + шейдерный реальный рейтрейсинг для отдельных случаев и это будет работать у всех, а не только обладателей отдельных железок.

LINUX-ORG-RU ★★ ()
Ответ на: комментарий от xDShot

Я знаю «Почему я больше никогда не буду покупать дорогое новое железо» А чё, тож мнение. (комментарий)

Трассировку осилили ещё до появления игр :D А вот реалтайм да. Плаксы как то хитро сделали

https://www.cryengine.com/news/view/ray-tracing-for-everyone-neon-noir-benchmark-tool-released#

Как я выше писал вот они это и сделали, при одинаковом по мощности железе никакой RTX нахрен не впёрся никому. А его вычислительные блоки было бы полезнее пустить на обработку общего филлрейта шейдеров. Ну там ускорить на порядок работу с 3D текстурами.

Крайтеки умницы, но я не крайтеки я бомжара делающий игру про прыгающий мячик :D так-то :D

На самом деле, это крутая задачка. У меня вот нет железа для реального просчёта лучей. И поэтому я включаю длинные фильмы. Беру свою исчёрканную тетрадку и начинаю рисовать одним за одним варианты как заставить подобные или близкие к подобным вещам на обычных железках 10 летней давности. А не на AMD Vega 56 8 GB VRAM ))))))) На таких монстрах можно кайфовать и не париться вообще.

LINUX-ORG-RU ★★ ()