Разрабатываю небольшую игру в стиле XNA «MinecraftGame».
Поскольку нужно рисовать много кубиков. Я создал функцию, которая позволяет рисовать только кубики перед камерой! Но проблема в том, что если куб не полностью заполнен в моем поле зрения, он не будет нарисован. Как вы можете видеть на «скриншоте» ниже. Кубики, расположенные по краям, не прорисовываются. Как нарисовать кубики полностью или частично отображенными перед камерой? и не только целиком.
Большое спасибо
Вот мой код, чтобы проверить, содержит ли Frustum модель:
//Initialize frustum
private void GenerateFrustum()
{
Matrix viewProjection = View * Projection;
Frustum = new BoundingFrustum(viewProjection);
}
//private void UpdateFrustum
{
Matrix viewProjection = View * Projection;
Frustum.Matrix = viewProjection;
}
//Function that will add models instantiated in the transformation matrix only if the model is in the field of view !
private udpateTransformModelInstancied()
{
for (int i = 0; i < ListInstance.Count; i++)
{
if(camera.Frustum.Contains(ListInstance[i].Transform.Translation) != ContainmentType.Disjoint)
{
instanceTransforms.Add(ListInstance[i].Transform);
}
}
.......
}
SreenShot: