【发布时间】:2016-11-01 20:40:14
【问题描述】:
我知道在网格表示中通常使用三个列表:
顶点列表,所有顶点,这个很好理解
法线列表,我猜每个表面的法线?
还有人脸列表,我不知道它是做什么的,也不知道如何计算。
例如,这是我在网上找到的描述三棱柱的网格。
double vertices[][] = {{0,1,-1},
{-0.5,0,-1},
{0.5,0,-1},
{0,1,-3},
{-0.5,0,-3},
{0.5,0,-3},
};
int faces[][] = {{0,1,2}, //front
{3,5,4}, //back
{1,4,5,2},//base
{0,3,4,1}, //left side
{0,2,5,3} //right side
};
double normals[][] = { {0,0,1}, //front face
{0,0,-1}, //back face
{0,-1,0}, //base
{-2.0/Math.sqrt(5),1.0/Math.sqrt(5),0}, //left
{2.0/Math.sqrt(5),1.0/Math.sqrt(5),0} //right
};
为什么底部、左右面有4个元素,而正面和背面只有3个?如何手动计算?
【问题讨论】: