Обработка моделей вне экрана libgdx - PullRequest
1 голос
/ 25 сентября 2019

В libgdx 2d мы раньше не отображали спрайты, которых нет внутри экрана, однако в 3d из того, что я прочитал, вы рисуете целую сцену в качестве уровня, моя сцена довольно большая, мне было интересно, если я предполагаю, чтообращаться с моделями, которые находятся вне экрана?и как?

1 Ответ

2 голосов
/ 25 сентября 2019

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

Вы можете смоделировать вашу сцену как несколько отдельных моделей или не беспокоиться об этом.Это зависит от сложности, которая имеет больше смысла.

Если у вас есть отдельные сетки моделей, вы можете рассчитать для них ограничивающие рамки, а затем проверить их с помощью camera.frustum.boundsInFrustum(), чтобы решить, следует ли их рисовать.

Обратите внимание, что вершины, нарисованные вне усеченной камеры, будут стоить вам лишь некоторых потраченных впустую вычислений вершинного шейдера, а не вычислений фрагментного шейдера.В определенный момент экономия, которую вы получите, пропустив некоторые вершины, будет съедена стоимостью вычисления того, какие вершины вам не нужно рисовать.

...