习题3解答:根据题意选择Q2:p5(-1,-1,0),p6(2,-1,0),p7(2,0,0),p8(-1,0,0),即Z=0作为分隔平面
将面Q1:p1(-1,0,-1),p2(2,0,2),p3(2,1,2),p4(-1,1,-1)加入到BSP树中
由于面Q1和面Z=0相交的点q1(0,0,0),q2(0,1,0)
得如下BSP将面Q3:p9(0,-1,1),p10(0,-1,-2),p11(0,1,-2),p12(0,1,1)
加入到BSP树中
由于棉Q3和面Z=0交与q2(0,-1,0),q3(0,1,0)
得到如下BSP习题4解答:(1)分析课本给出的漫反射和镜面反射的公式:大部分都是已知数据,唯一比较难求的是,即各个顶点的法向量
所以我们先求出题目所给的四面体四个顶点的法向量
举例:对顶点P1为了,先求出与点P1相邻的三个面Face的法向量,再求平均得到点P1的法向量,公式如下:而面的法向量可以利用叉积求得,比如对于与点P1相邻的面Face1:则Face1的法向,依次可以求得另外两个面的法向,
求法向的函数代码://把多面体face传入,得到它顶点的法向nomalsvoidComputeNormals(D3DXVECTOR3*faces,D3DXVECTOR3*normals,intpointNum){D3DXVECTOR3*adjVec=newD3DXVECTOR3[pointNum];D3DXVECTOR3*faceNormals=newD3DXVECTOR3[pointNum];for(inti=0;i