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

Предрасчёт рейкаста для эффективного рендеринга травы и меха (комментарии) (3 стр)

Страницы: 1 2 3
#30
(Правка: 13:36) 13:35, 19 дек. 2019

Спасибо, многое прояснилось! Про альбедо, запекание мультивыборки и антитайлинг всё понятно.

Про мипмапы тоже подумал, что неплохо бы мипмапить только по двум координатам. В моей демке камера свободная, и с пипмапами стало немного хуже, потому выключил.

> это будет либо шум из-за нормали, либо из-за твоего способа окраски, так как он не интерполируется.

Шум однозначно из-за нормали. В "фильтрации" сделан поиск модального (которое чаще всего среди выборок) значения номера травинки, что немного улучшает ситуацию по сравнению с взятием первого попавшегося номера.

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

Ощущение, что не хватает разрешения текстуры. Например, в одном текселе мы попадаем лучом по геометрии, а в соседнем - нет. При выборке получается фильтрованное значение расстояния, на котором фрагмент не отбрасывается ни глубиной ни дискардом. Нормаль из-за фильтрации тоже получается какой попало. Что с ней делать?

#31
(Правка: 13:54) 13:50, 19 дек. 2019

> художники мне дают меш, я его запекаю примерно таким же алгоритмом.

А как запечь (и использовать) меш с непараллельными волокнами?

#32
13:51, 19 дек. 2019

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

#33
14:08, 19 дек. 2019

Я правильно понимаю, что запечь полноценную 3д-модель (а не фигуры на двумерной плоскости) получилось потому, что камера фиксированная?

#34
14:14, 19 дек. 2019

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

#35
15:29, 19 дек. 2019

Разобрался с контурами, возникают из-за кривого алгоритма трассировки.
Вот пример слоя с торчащими нормалями (красные):
pipes | Предрасчёт рейкаста для эффективного рендеринга травы и меха (комментарии)

Кодирование нормалей исключил, здесь текстура была во float32 без преобразований. Должно починиться добавлением допуска в правильном месте и множественными лучами на тексель.

#36
20:17, 21 дек. 2019

Suslik

> и далее шейдере пытаюсь компенсировать возникающие из-за этого артефакты.

Из каких соображений лучше компенсировать?

Я попытался искать коэффициент для растяжения пространственных текстурных координат, зная угол запекания и фактический угол зрения. Потом растягивал на этот коэффициент в направлении зрения. Получилось не очень.

Есть ещё мысль итерационно поискать правильный семпл, делая дополнительные выборки. Но во фрагментном шейдере не очень хочется так делать.

#37
8:33, 22 дек. 2019

VirtualVoid
я высчитывал дальность пересечения, чтобы видимая часть геометрии, находящейся над землёй, была постоянной вне зависимости от угла. это не совсем та же формула, что и для каста по вертикальным призмам, но идея та же. просто там где-то вместо 1/cos() получается 1/tan() или что-то в этом духе (нет доступа к шейдеру сейчас).

#38
23:09, 22 дек. 2019

Suslik
Выглядит симпатично, но не очень реалистично. Трава растёт более вертикально (не с таким сильным наклоном), а сам наклон столь сильно не изменяется на такой небольшой площади. Обычно наклон есть в одну сторону - куда преимущественно дует ветер.

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