我正在开发一款 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);
}
}
.......
}
截图: