Size: a a a

Rust GameDev — русскоговорящее сообщество

2020 December 29

R

Roman in Rust GameDev — русскоговорящее сообщество
Тогда я буду в каждом compute шейдере искать пересечение с лучем. И как я узнаю какой из них нашел пересечение ближе всех?
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Ищите персечение только в первом, а потом переиспользуйте результат во всех последующих
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Вы по сути предлагаете запустить каждый шейдер на всех пикселях и на большинстве сразу выйти. Это огромный оверхед на скедулер.
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
А еще в некоторых алгоритмах мне надо рекурсивно лучи кидать
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Нет, оверхед здесь будет не больше, чем с RTX, который волновой фронт точно так же ломает при переключении шейдера.
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Что касается рекурсивного кидания, сильно глубоко вы их всё равно не покидаете, так что можно просто заранее максимальную глубину задать
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Хоть волновой фронт и ломается, запускается намного меньше шейдеров
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Если волновой фронт ломается, то принципиальной разницы между запуском шейдера и запуском if-а нет
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
У меня может быть сотни алгоритмов, а по факту лучи столкнутся только с парой объектов. С RTX только шейдера этих объектов запустятся
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
А с вашей схемой мне их все запускать, всю библиотеку
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Сотни алгоритмов в общем случае будут работать крайне медленно. А в частных(когда большая часть выкидывается) всё равно очень быстро.
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Даже если всю сотню заскедулить
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
В особенности если её предвариельно описать
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
И вообще, весь этот RTX-интерфейс не делает никакой особой магии. По сути маркетинг чистой воды.
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
При рендере SDF, если вы планируете строить сцены чуть сложнее нескольких однотипных объектов, у вас производительность быстро убьется дивергенциями волнового фронта. Какой бы интерфейс вы не придумывали, волновой фронт он не исправит. Поэтому интерфейс здесь ботлнеком в любом случае не будет.
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
И AABB проблему принципиально тоже не решит, улучшит, но не решит.
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Я что-то сомневаюсь, что запуск сотни диспатчей может уложиться в пол-милисекунды
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
А именно столько уходит на один traceRay и простейший closest-hit шейдер на не самой простой сцене
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Само-собой в пол миллисекунды он не уложится. Только рендер комплексных сцен на SDF сам по себе будет занимать не пол миллисекунды, а сотни миллисекунд, если не тысячи. И экономия в несколько долей миллисекунд вам мало что даст.
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Думаете что сложная сцена из SDF будет трейсится дольше чем десятки тысяч полигонов?
источник