Open w23 opened 3 years ago
Try setting geometryNormal
to triangle normal instead of vertex normal
geometryNormal
fix failed. It only "helps" by disabling GI bounces sampling underneath the geometry, which was not the main culprit here.
Majority of our black borders were caused by:
Quick googling shows that these papers might be relevant:
Процитирую себя (пару лет назад решил):
Я решил видозависимой корректировкой нормалей — на вид красиво (для цилиндра из бруска с прямоугольным сечением тестировал). В случае растеризации — нужно иметь доступ к аттрибутам вершин в шейдере (есть расширение вендора NV_fragment_shader_barycentric). И точку старта луча в координатах объекта (позицию камеры):
void clampNormal(inout VertexAttributes v, vec3 N/*geometric_local_normal*/) { vec3 d = v.position - gl_ObjectRayOriginNV; vec3 r = d - 2.0 * dot(d, v.normal) * v.normal; float rN = dot(r, N); if (rN < 0.0) { r -= rN * N; v.normal = normalize(normalize(r) - normalize(d)); } }
Бамп конечно остаётся проблемой неразрешимой
Проблема снова проявилась при баунсах даже при тяжёлом сэмплировании. Она существует не только у студийных моделях, но и у брашей на которые натянуты материалы с картой нормали. Лучше всего это видно на test_material, вот на этих объектах: Если подойти вплотную то мы видим характерный круг: Если мы отойдём ровно вбок, то артефакт сместится: Получается есть зависимостить от позиции камеры.
На de_dust2 можно увидеть такое:
Вот эти чёрные полосы это оно самое. Не на всех гранях. На последнем скрине вообще не понятно почему на верхней части нет зато есть на нижней.
Most likely culprit is: