Линия между водой и сушей трясется при движении камеры. Думаю, что это из-за больших вертексных координат (1000.0f-2000.0f). Простое перемещение ландшафта ближе к нулевым координатам с помощью умножения на матрицу не помогает.
Увеличение near (ближней плоскости отсечения) только уменьшает тряску и создаёт неудобства - невозможность смотреть на близлежащие объекты.
Делать берег более крутым не хочу - не красиво, не естественно.
Делать воду прозрачной тоже не вариант, так как она должна блестеть и блеск тоже начнёт скакать.
Подскажите что-нибудь. )
А если сделать берег мокрым и блестящим? Поможет? Или будет некрасиво?
programina
> Линия между водой и сушей трясется при движении камеры. Думаю, что это из-за
> больших вертексных координат (1000.0f-2000.0f).
Нет
> Увеличение near (ближней плоскости отсечения) только уменьшает тряску и создаёт
> неудобства - невозможность смотреть на близлежащие объекты.
А уменьшение zfar? Z buffer 32 bit?
Или используй reverse depth или log depth
> Делать берег более крутым не хочу - не красиво, не естественно.
> Делать воду прозрачной тоже не вариант, так как она должна блестеть и блеск
> тоже начнёт скакать.
Добавь волны. Хз, но может "сгладить" незначителтные артефакты.
0xc0de
> А уменьшение zfar?
На zfar не смотрела, так как он не играет большой роли. Сейчас он 1024.0f, даже уменьшение до 50.0f не снижает (заметно) тряску, когда увеличение znear с 0.1f до 1.0f уменьшает амплитуду тряски в 3-4 раза.
> Z buffer 32 bit?
Да, 32 битный float GL_DEPTH_COMPONENT32F
Я все таки грешу на большие вертексные координаты. Дома вечером перемещу ландшафт в 3D редакторе в центр и сохраню с координатами в диапазоне -128.0f - +128.0f.
programina
> Линия между водой и сушей трясется при движении камеры. Думаю, что это из-за
> больших вертексных координат (1000.0f-2000.0f).
была такая байда - делай воду патчами с меньшим размахом координат
0xc0de
> reverse depth или log depth
погуглю
innuendo
> делай воду патчами с меньшим размахом координат
попробую
Спасибо. Если успею, вечером отпишусь о результатах.
Сделай берег пологим. бгг...
скриншоты есть?
dave
> скриншоты есть?
все вечером, сейчас на работе сижу.
innuendo
> делай воду патчами с меньшим размахом координат
а это-то как помогает?
dave
> а это-то как помогает?
кому как
Мне Logarithmic Depth Buffers в зет-файтинге помог, хорошая штука.
Читаю в гугле про буфер глубины.
1) reverse depth нативно поддерживается OpenGL, увеличивает точность вдалеке, уменьшает вблизи. Мне не подходит, потому что линия вода-суша прыгает вблизи (под ногами) и будет прыгать ещё сильнее.
2) logarithmic depth увеличивает точность вблизи, но уменьшает её вдалеке, но не сильно и z-fighting не возникает. Но этот метод насколько я понимаю не поддерживается OpenGL нативно.
Z надо сперва линеаризовать, а потом ремапнуть к 0-1. Тогда не будет трясучки.