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

Артефакты интерполяции у узких треугольников на радеонах (или нет) (3 стр)

Страницы: 1 2 3
#30
1:36, 30 июня 2020

ncuxonaT
> Сомневаюсь, что можно добиться лучшего результата таким подходом с умножением gl_FragCoord на обратную матрицу.
А текущей точности недостаточно? Ошибка более чем пол пикселя на экране?


#31
(Правка: 2:20) 1:37, 30 июня 2020

АкронимЛета
Как-нибудь, чтобы избавиться от артефактов. Или хотя бы снизить их количество на радеонах до уровня жифорсов и интелов.

samrrr
К сожалению, не достаточно. Не понял про полпикселя. У меня там рейтрейсинг, но геометрия выводится растеризацией. Чтобы луч не попадал в тот треугольник, с которого он испущен, я немного сдвигаю ray origin вдоль нормали. С интерполированной позицией рабочий биас был 1е-4, с восстановленной - 1е-2. С таким биасом уже другие артефакты начинают проявляться.

#32
3:32, 30 июня 2020

ncuxonaT
> вот разница между интерполированными и восстановленными координатами х128
Это разница двух подходов восстановления в сравнении с результатом рендера?

#33
4:38, 30 июня 2020

АкронимЛета
> Это разница двух подходов восстановления в сравнении с результатом рендера?
Это разница между значением, переданным через varying, и значением, посчитанным через gl_FragCoord.

#34
5:03, 30 июня 2020

ncuxonaT
На какой из картинок разница?

#35
5:17, 30 июня 2020

АкронимЛета
На обеих, просто с разных ракурсов

#36
8:57, 30 июня 2020

ncuxonaT

Всё, что передается из вершинного шейдера во фрагментный, криво интерполируется.

Определите точно, интерполируется ли криво или же возникают проблемы с точностью из-за кривости вычислений. Скажем, задавая вертексам меша значения, не завязанные на трансформацию матриц.
Не знаю, как сейчас дела обстоят, но раньше на амд сталкивался с тем, что трансформация объекта на гпу или матриц для него, давала несколько иной результат, чем то же самое прямо в шейдере, что приводило к z-fighting. На нвидии же одинаково выглядит. Если не поможет, все таки попробуйте трюк с позицией камеры, убрав ее из матриц и вычислений, меня много раз выручало.
#37
9:18, 30 июня 2020

ncuxonaT
> varying
varying glsl deprecated

>С интерполированной позицией рабочий биас был 1е-4, с восстановленной - 1е-2.
Для дабл как-то многовата ошибка.

>С таким биасом уже другие артефакты начинают проявляться.
Может стоит делать биас не просто константой, а константой зависящей от depth?
1е-2 * depth например.
И какие именно артефакты?

>Не понял про полпикселя.
У нас есть 2 значения координат, и разница между ними, и можно мысленно нарисовать 2 точки, разница между ними на экране должна быть невелика, если она меньше пол пикселя, то всё хорошо.

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