Answer the question
In order to leave comments, you need to log in
How to get rid of float precision loss in opengl?
При попытке смоделировать 3D планету с различными уровнями детализации получаю следующее:
сфера радиусом 6700 единиц, естественно, разделена по quadTree, хотя не суть важно. Таким образом, поверхность земли находится примерно на расстоянии 6700 от центра СК, и чем ближе камера приближена к поверхности, тем больше "трясутся" вершины, что вызвано потерей точности при построении матрицы MVP, так как позиция камеры и объектов основаны на больших значениях.
Чтобы избежать этого, пробовал перед генерацией Model и View матриц делать предварительный offset позиций на позицию камеры. То есть View камеры будет как будто в (0,0,0), а позиция других мешей в (позиция меша.xyz - позиция камеры.xyz), но в таком случае при каждом кадре приходится перегенерировать Model матрицы(да и лишние операции усложняют структуру) для каждого меша, а это слишком затратно при их большом количестве.
Есть ли какие-либо хаки, чтобы чтобы устранить проблему, и не прибегать к таким затратным операциям на каждый кадр?
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question