Unity Frustum Culling с drawmesh отбраковывается слишком рано

я использую

Graphics.DrawMesh(mesh, _matrix, material, 0, cam);

и моя сетка слишком высокая, поэтому при перемещении камеры и сетке внутри экрана она не отображается раньше. это отбраковано. но когда я создаю новый игровой объект с помощью MeshRenderer, это не проблема, он хорошо отбраковывается, не слишком рано. Так в чем тут разница??

И я пытаюсь установить границы сетки следующим образом:

mesh.bounds = new Bounds()
            {
                center = Vector3.zero,
                extents = mesh.bounds.extents * 1000,
                max = mesh.bounds.max * 1000,
                min = mesh.bounds.min * 1000,
                size = mesh.bounds.size * 1000
            }; 

это все еще не работает.

Также попробуйте этот код: все еще не работает...

void OnPreCull()
     {
         cam.cullingMatrix = Matrix4x4.Ortho(-99999, 99999, -99999, 99999, 0.001f, 99999) * 
                             Matrix4x4.Translate(Vector3.forward * -99999 / 2f) * 
                             cam.worldToCameraMatrix;
     }
 
     void OnDisable()
     {
         cam.ResetCullingMatrix();
     }

person TimChang    schedule 11.05.2021    source источник
comment
не могли бы вы попасть в некоторые простые ловушки.. stackoverflow.com/a/36202761/294884 (обратите внимание на абзац в ( ) скобки )   -  person Fattie    schedule 12.05.2021


Ответы (1)


Вам не нужно вручную устанавливать границы меша, если только у вас нет сумасшедшего пользовательского шейдера, который резко перемещает некоторые вершины.

Если вы используете шейдер Unity, вы сможете вызвать mesh.RecalculateBounds(); и не возникнет проблем.

person Charly    schedule 11.05.2021
comment
все равно не работает... - person TimChang; 12.05.2021
comment
это может помочь (может быть ошибка единства?) nofollow noreferrer">forum.unity.com/threads/ - person Charly; 12.05.2021
comment
Да, я тоже смотрел эту тему, и я действительно не понимаю, как это исправить. это среднее положение вершины chagne? - person TimChang; 12.05.2021
comment
некоторое обсуждение.. stackoverflow.com/q/55418971/294884 - person Fattie; 12.05.2021