ПрограммированиеФорумГрафика

Отскок частицы в случайном направлении в рамках полусферы, диффузное отражение (2 стр)

Страницы: 1 2
#15
5:20, 29 авг 2022

Prescott
я бы не хотел смещать твой творческий порыв изобретательства, но всё-таки напомню, что распределение света в пространстве между поверхностями по идее смысла для рендеринга не имеет (если у тебя нет вольюметрик тумана, конечно). поэтому в принципе вместо полной траектории частиц достаточно рассматривать только пути от поверхности до поверхности. ещё более конкретно — только от какой поверхности частица стартует и на какой поверхности она остановится.

#16
6:52, 29 авг 2022

Suslik
Да, я  понимаю, идея изначально была бредовая и навязчивая (частицы со столкновением ускорить и превратить в "фотоны" света). Но чтобы частица не летела весь путь, а только от плоскости к плоскости, нужен рейкаст, не знаю как делать рейкаст в шейдере. Там же наверняка не просто формула пересечения линии с плоскостью, а хитрее.

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

#17
7:10, 29 авг 2022

Prescott
> Там же наверняка не просто формула пересечения линии с плоскостью, а хитрее.
именно так, как ещё. вопрос лишь в том, как это сделать быстрее, чем перебором всех треугольников.

> Также, было бы хорошо прямой свет считать не частицами, а стандартным способом, а потом уже из освещенных плоскостей испускать частицы, чтобы не тратить ресурсы на первичный свет.
прямой свет — это костыль, потому что люди не умеют считать вторичный свет достаточно эффективно. так как у тебя цель — исследование, то вообще забей на него. освещай всю сцену светящимися материалами (они эквивалентны источникам вторичного света). например, сделай сферу и испускай фотоны с её поверхности.

#18
8:38, 29 авг 2022

Suslik
> поэтому в принципе вместо полной траектории частиц достаточно рассматривать
> только пути от поверхности до поверхности
Тогда получится тот же рэйтрейсинг от источников
А так - интересный эффект, нефизичный, но для игр годится

#19
8:39, 29 авг 2022

Prescott
> Но чтобы частица не летела весь путь, а только от плоскости к плоскости, нужен
> рейкаст, не знаю как делать рейкаст в шейдере
А как считаешь попадания?

#20
9:35, 29 авг 2022

Aslan
> А как считаешь попадания?
Попадания мне даёт движок. Я лишь модифицировал стандартное поведение в шейдере.
В Godot 4 есть коллайдеры для GPU частиц - сфера, бокс, SDF-объект.

По сути тут частица это как RigidBody только без Continious collision detection, поэтому если сделать скорость частицы большой, надо повышать ФПС обработки частиц чтобы "фотоны" не пролетали сквозь стены :)

Aslan
> А так - интересный эффект, нефизичный, но для игр годится
На данном этапе это годится разве что только для очень артхаусных чёрно-бело стилизованных игр (т.к частица даже не сможет взять цвет объекта в который попала), ещё и требования к GPU высокие.

#21
9:38, 29 авг 2022

Prescott
Можно сразу рисовать лучи, но просядет филрейт, хз что лучше

Страницы: 1 2
ПрограммированиеФорумГрафика

Тема в архиве.