【发布时间】:2018-01-23 04:34:01
【问题描述】:
我想填满我的立方体。我发现了背面剔除算法。你能解释一下它是如何工作的吗?我在向量中有 8 个点:
也许你知道另一种更简单的算法,或者解释一下我应该如何处理背面剔除?
(wallX[0] - 点 0;wallX[1] - 点 1;wallX[2] - 图片中的点 2)
拳墙代码:
x1[0]=wallX[1]-wallX[0];
y1[0]=wallY[1]-wallY[0];
z1[0]=wallZ[1]-wallZ[0];
x2[0]=wallX[2]-wallX[0];
y2[0]=wallY[2]-wallY[0];
z2[0]=wallZ[2]-wallZ[0];
x3[0]=0;
y3[0]=0;
z3[0]=1000;
wall1={y2[0]*z1[0]-z2[0]*y1[0], z2[0]*x1[0]-x2[0]*z1[0], x2[0]*y1[0]-y2[0]*x1[0]};
wall1*={X3, Y3, Z3};
if(wall1[2]>0) cout<<"wall is watching"<<endl;
【问题讨论】:
-
在发帖之前,您是否尝试过自己研究背面剔除??
-
你用什么来渲染立方体?通常OpenGL或DirectX已经包含了多种剔除算法,你不必自己编写。
-
我不能使用 OpenGL 或 DirectX,我必须编写算法来填充我的立方体。我必须自己写。