DrawLine 消除 set_pixel
This commit is contained in:
+2
-1
@@ -100,7 +100,8 @@
|
||||
这意味着:
|
||||
|
||||
- 当前 demo 还没有实现完整的视锥裁剪
|
||||
- 如果一条线段只有一部分还在屏幕内,但端点已经越出 NDC,整条线仍可能被直接丢弃
|
||||
- **2D 屏幕空间线段裁剪已实现**:`Rasterizer::DrawLine` 使用 Cohen-Sutherland 算法对屏幕边界做裁剪,部分在屏幕内的线段可以正确绘制,不再整条丢弃
|
||||
- 3D 视锥裁剪(齐次裁剪空间)仍未实现
|
||||
|
||||
## 8. 屏幕与像素坐标
|
||||
|
||||
|
||||
@@ -91,6 +91,7 @@
|
||||
- 像素写入路径应尽量减少分支和函数调用层级。
|
||||
- 像素级写入的 Release 快路径不要使用带额外边界检查的容器访问(例如 `std::vector::at()`);边界检查应在外层完成。
|
||||
- 裁剪、剔除、包围盒收缩要尽早执行,避免把不可见数据送入像素级循环。
|
||||
- `Rasterizer::DrawLine` 已采用此策略:入口做快速全屏可见性检查,屏幕内直接走 `set_pixel_unsafe` 快路径;屏幕外走 Cohen-Sutherland 裁剪后再走快路径。
|
||||
- 三角形属性插值、深度测试、纹理采样等未来功能必须先定义定点/整数方案,再接入热路径。
|
||||
- PC 调试版可以保留更易读的检查与可视化代码,但 ARM release 路径必须能关闭这些额外成本。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user