【GAMES101】作业2——判断点与三角形的位置与编写深度
题目要求:
1.static bool insideTriangle(): 测试点是否在三角形内
2.修改rasterize_triangle(): 执行三角形栅格化算法
理论:
1.判断点是否在三角形内——利用叉乘法
计算AB×PA,BC×PB,CA×PC 判断三个叉乘的方向,如果三个方向相同说明P在三角形内部

2.执行三角形栅格化算法
创建三角形的 2 维 bounding box-> 遍历此 bounding box 内的所有像素(使用其整数索引)->检查中心点是否在三角形内->如果在内部,则将其位置处的插值深度值 (interpolated depth value) z_interpolated中与深度缓冲区 (depth buffer) 中的相应值进行比较,插值的深度值被储存在变量 z_interpolated中->如果当前点更靠近相机,请设置像素颜色并更新深度缓冲区 (depth buffer)
结果:


浙公网安备 33010602011771号