我有一个正在旋转的动画模型。
我想隐藏/不绘制Y< 0
的模型的任何部分我能做到的方法是什么?
思路:
1)在y = 0
的正下方绘制一个巨大的矩形框2)调整相机矩阵,使y <0在剪裁平面之外(但我不知道如何)
有人能指出我正确的方向吗? =)答案 0 :(得分:0)
听起来你需要介绍MSDN Bounding Frustum
以下是来自Nic's GameDev Site的精彩教程。
答案 1 :(得分:0)
纯粹的数学方法:
如果构成模型的多边形是三角形,剪切它们是非常简单的。您需要剪切与y = 0平面相交的两侧,并将这两个边与切割平面的交点替换为y小于0的原始顶点。
使用线方程:
(x-x1)=(x2-x1)*(y-y1)/(y2-y1)
(z-z1)=(z2-z1)*(y-y1)/(y2-y1)
其中1和2是由y = 0平面剪切的边的顶点。将它们的坐标(x1,y1,z1,x2,y2,z2)和y = 0代入方程,得到交点的x和z。使用此点的坐标而不是顶点1或2(以y <0为准)。
如果多边形是纹理贴图,则需要重新计算从裁剪中获得的顶点的纹理坐标。你以同样的方式做到这一点。