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

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

Страницы: 1 2 3 4
#45
7:35, 4 фев. 2020

VirtualVoid
оно в exilecon на искривлённый ландшафт так-то накладывается. ещё тем же шейдером мы делали мех, поэтому он обязан корректно накладываться на любую поверхность. нормальных видео с заметно кривыми поверхностями у меня нет под рукой, но вот, например, очень ранние эксперименты с чем-то вроде меха: https://drive.google.com/file/d/1lcOnglXhhOfd42g_U7_F5gExKSxGzdz5… w?usp=sharing

#46
11:25, 4 фев. 2020

> у меня нет сейчас доступа шейдерам пое (я дома), но формула была примерно такая

Формула немного не такая, но не суть. Из вот этого:

> имея угол запекания для точки C, модифицирую прочитанное расстоение AC, чтобы оно совпадало с длиной AB для текущего направления взгляда

выводится:

// length - значение из текстуры. Я запёк саму длину до пересечения, а не горинтальную составляющую.
// texCoord - пространственные составляющие текстурной координаты.
vec3 rayHit = vec3(texCoord, 0.0) + bakeDirection * length;
length_corrected abs(rayHit.z) * cosViewAngle;

Что идеально работает для горизонтальных плоскостей.

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

Вывод: трава действительно должна быть примятой :)
А патч - квадратным.

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