Я пытаюсь реализовать this SAO algorithm.Масштабируемая проблема рендеринга окружающей среды
Я получаю следующий результат:
Я не могу понять, почему у меня нос на верхней части стен, это, кажется, вопрос г-буфер.
Вот мои входные значения:
const float projScale = 100.0;
const float radius = 0.9;
const float bias = 0.0005;
const float intensityDivR6 = pow(radius, 6);
Я использую оригинальный шейдер без изменений, за исключением того, что я отключить использование мипмапов буфера глубины.
Мой буфер глубины (на другой сцене, извините):
Можете ли вы разместить решение, пожалуйста? Я реализую тот же алгоритм, и я могу столкнуться с некоторыми из проблем, с которыми вы столкнулись. Я не отрицал свои ближние/дальние самолеты, но, похоже, это работает без этого. Однако, когда моя камера близка к объекту, я получаю неправильную самоокклюзию (http://i.imgur.com/OWriRrK.png). Я не уверен в этом, но это может быть связано с проблемой, которая у вас была. –
Вы должны отрицать ближнюю и дальнюю плоскость, чтобы избежать накопления ошибок, которые в некоторых ситуациях могут показаться правильными. Из-за этого я взял несколько раз, чтобы понять мои проблемы. У вас есть AO на переднем углу вашего самолета, потому что это не бесконечно, за исключением того, что я не уверен, что ваш результат неправильный. У вас есть другие фотографии? –
Да, конечно, у меня есть другие на сцене Спонза. Сцена вписывается в ограничительную сферу с радиусом 23 единицы. Результат неплохой: http://i.imgur.com/lXFuOXP.png (вы можете увидеть настройки сцены в верхнем правом углу). Но всякий раз, когда я немного увеличиваю радиус, я вижу тот же эффект, который появляется, когда я закрываю камеру, я получаю самозакрывание: http://i.imgur.com/TqRaoy0.png Есть что-то, что я забыл например, мои ближние/дальние автоматически обновляются, чтобы соответствовать тому, что на самом деле видит камера из sceen. –