1.已知两个世界矩阵A,B,求A相对于B的矩阵
以2*2的矩阵为例,世界矩阵应用于顶点数据的运算过程如下
根据矩阵转换后的结果来求A相对于B的结果,很容易得出结论:
已知两个世界矩阵A,B,求A相对于B的矩阵,只需A-B
2.射线与球体的相交检测
参数化方程:设射线方程为f(x)= P +d t ,圆方程为G(x)=||X-C||^{2}=R^{2},带人可得到一个二次线性方程组,利用二次线性方程组进行求解。
排除法:
- 检测射线起点是否在圆内。
- 检测射线的方向是否与到圆心的方向同向
- 计算射线的球心距,与半径进行对比
3.判断一个点是否在一个三角形内
- 内角和为180°
- 面积和相等
- 同向法:按顺序检测点p与边向量的方向,最后查看符号是否相同
4.OBB碰撞检测
两个多边形在所有轴上的投影都发生重叠,则判定为碰撞;否则,没有发生碰撞。
5.下图那种方式效率更高
for(int i=0;i<3;i++){
for(int j=0;j<3000;j++){
cout<<i*j<<endl;
}
}
for(int i=0;i<3000;i++){
for(int j=0;j<3;j++){
cout<<i*j<<endl;
}
}
前者初始化了3次j,后者3000次
6.怎么光栅化一个三角形
转换为平底(和平顶)三角形
扫描线插值