TriangleRasterizer 定点化

This commit is contained in:
SepComet
2026-06-07 19:54:15 +08:00
parent 16d961e9f3
commit a8630c720e
2 changed files with 97 additions and 48 deletions
+1
View File
@@ -93,6 +93,7 @@
- 裁剪、剔除、包围盒收缩要尽早执行,避免把不可见数据送入像素级循环。
- `Rasterizer::DrawLine` 已采用此策略:入口做快速全屏可见性检查,屏幕内直接走 `set_pixel_unsafe` 快路径;屏幕外走 Cohen-Sutherland 裁剪后再走快路径。
- 三角形属性插值、深度测试、纹理采样等未来功能必须先定义定点/整数方案,再接入热路径。
- `TriangleRasterizer::DrawTriangle2D` 已采用增量式整数边缘函数(替代每像素 float 重心+除法)和定点深度插值(`depth_fp += depth_fp_per_pixel`,提取时 `>> 16`),内层循环无 float 运算。
- PC 调试版可以保留更易读的检查与可视化代码,但 ARM release 路径必须能关闭这些额外成本。
### 5.1 `/dev/fb0` 提交路径