1
我正在尝试计算两个平面或修补程序之间的可见性。3D交叉点(Radiosity) - OpenGl
我有一个四边形线框。每个四元组都有一个带有X,Y和Z坐标的法向量。每个四元组有4个顶点。每个顶点都有X,Y和Z坐标。
给定两个四边形,我怎么知道这两个补片(四边形)之间是否有遮挡物或另一个物体。
因此,我需要创建一个返回1的方法,如果补丁没有遮挡物或返回0,如果有补丁封堵。
的方法,我的图片会是这样的:
GLint visibility(Patch i, Patch j) {
GLboolean isVisible;
vector<Patch> allPatches; // can be used to get all patches in the scene
// Check if there is any occluder between patch i and patch j
Some computations here
if(isVisible) {
return 1;
} else {
return 0;
}
}
我听说过的Z缓冲算法和半立方体的实现,将完成这件事。我已经计算了外形因素。我只需要完成这一步即可获得阴影。
确保你给了某些形式的图形或方法的答案,因为我不是天才
你是如何处理局部可视性的?我所见过的大多数讨论只是发送随机光线和对这些测试 –
您可以测试包含两个四元组的音量之间的交集...换言之,创建一个包含结束补丁i和补丁j的盒子,然后测试查看场景中的任何对象是否在此框内有一个点,或者对象是否以任何方式与框交叉。 –
这并没有帮助很多家伙:x –