我已经渲染了我的世界。根据一些特定要求,它包括(有时)地板上的一些灯。我正在使用三角形基元渲染这些灯光。现在我有以下代码来缩放和限制渲染区域:
if(aspect>1)
gl.glOrtho(-scale*aspect, scale*aspect, -scale, scale, 0, 2);
else
gl.glOrtho(-scale, scale, -scale/aspect, scale/aspect, 0, 2);
正如您在这张图片中看到的那样,远平面将光线穿过一条线(平行于 B 和 D 之间的圆上的线)
当我旋转我的场景时出现问题...... glOrtho“盒子”保持固定。您可以通过始终查看灯上的切割线来注意到它。它不再平行于B和D之间的线......
我的一位朋友向我推荐了这份文件。基本上它解释了如何提取平截头体平面......
但这意味着我应该手动检查每个原语是否在里面。
有没有使用 glOrtho 调用的方法?
我想获得这样的东西: