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

[Решено] Линия воды и суши

Страницы: 1 2 3 4 5 Следующая »
#0
9:11, 31 янв. 2020

Линия между водой и сушей трясется при движении камеры. Думаю, что это из-за больших вертексных координат (1000.0f-2000.0f). Простое перемещение ландшафта ближе к нулевым координатам с помощью умножения на матрицу не помогает.
Увеличение near (ближней плоскости отсечения) только уменьшает тряску и создаёт неудобства - невозможность смотреть на близлежащие объекты.
Делать берег более крутым не хочу - не красиво, не естественно.
Делать воду прозрачной тоже не вариант, так как она должна блестеть и блеск тоже начнёт скакать.
Подскажите что-нибудь. )


#1
9:16, 31 янв. 2020

А если сделать берег мокрым и блестящим? Поможет? Или будет некрасиво?

#2
11:11, 31 янв. 2020

programina
> Линия между водой и сушей трясется при движении камеры. Думаю, что это из-за
> больших вертексных координат (1000.0f-2000.0f).

Нет

> Увеличение near (ближней плоскости отсечения) только уменьшает тряску и создаёт
> неудобства - невозможность смотреть на близлежащие объекты.

А уменьшение zfar? Z buffer 32 bit?
Или используй reverse depth или log depth

> Делать берег более крутым не хочу - не красиво, не естественно.
> Делать воду прозрачной тоже не вариант, так как она должна блестеть и блеск
> тоже начнёт скакать.

Добавь волны. Хз, но может "сгладить" незначителтные артефакты.

#3
11:30, 31 янв. 2020

0xc0de
> А уменьшение zfar?
На zfar не смотрела, так как он не играет большой роли. Сейчас он 1024.0f, даже уменьшение до 50.0f не снижает (заметно) тряску, когда увеличение znear с 0.1f до 1.0f уменьшает амплитуду тряски в 3-4 раза.
> Z buffer 32 bit?
Да, 32 битный float GL_DEPTH_COMPONENT32F

#4
11:34, 31 янв. 2020

Я все таки грешу на большие вертексные координаты. Дома вечером перемещу ландшафт в 3D редакторе в центр и сохраню с координатами в диапазоне -128.0f - +128.0f.

#5
11:46, 31 янв. 2020

programina
> Линия между водой и сушей трясется при движении камеры. Думаю, что это из-за
> больших вертексных координат (1000.0f-2000.0f).
была такая байда - делай воду патчами с меньшим размахом координат

#6
12:00, 31 янв. 2020

0xc0de
> reverse depth или log depth
погуглю
innuendo
> делай воду патчами с меньшим размахом координат
попробую

Спасибо. Если успею, вечером отпишусь о результатах.

#7
12:09, 31 янв. 2020

Сделай берег пологим. бгг...

#8
12:10, 31 янв. 2020

скриншоты есть?

#9
12:15, 31 янв. 2020

dave
> скриншоты есть?
все вечером, сейчас на работе сижу.

#10
12:32, 31 янв. 2020

innuendo
> делай воду патчами с меньшим размахом координат

а это-то как помогает?

#11
12:34, 31 янв. 2020

dave
> а это-то как помогает?

кому как

#12
12:50, 31 янв. 2020

Мне Logarithmic Depth Buffers в зет-файтинге помог, хорошая штука.

#13
14:06, 31 янв. 2020

Читаю в гугле про буфер глубины.
1) reverse depth нативно поддерживается OpenGL, увеличивает точность вдалеке, уменьшает вблизи. Мне не подходит, потому что линия вода-суша прыгает вблизи (под ногами) и будет прыгать ещё сильнее.
2) logarithmic depth увеличивает точность вблизи, но уменьшает её вдалеке, но не сильно и z-fighting не возникает. Но этот метод насколько я понимаю не поддерживается OpenGL нативно.

#14
15:13, 31 янв. 2020

Z надо сперва линеаризовать, а потом ремапнуть к 0-1. Тогда не будет трясучки.

Страницы: 1 2 3 4 5 Следующая »
ПрограммированиеФорумГрафика