知识卡片
渲染流水线与局部光照模型的局限
内容
消费级图形系统(视频游戏、家用计算机)普遍采用一条固定流水线来生成图像:先确定摄像机能看到的视体范围、丢弃视体外的物体,再对剩余物体做裁剪(去掉超出视体的部分),然后把面片上的点和最终图像的像素位置对应起来(扫描转换),处理多个面片重叠时该显示哪个(隐藏面消除),最后计算每个可见点的颜色(着色)。这条流水线速度极快、已经被直接固化进图形硬件(GPU),但有一个根本局限——它只实现局部光照模型:渲染每个物体时,都当它是场景里唯一的物体,完全不考虑物体之间的相互影响,因此天然无法产生阴影、镜面反射这类需要”知道其他物体在哪”的效果,除非另外用取巧手段(比如把阴影伪装成一个贴在地面上的黑色扁平物体)去模拟。发散:渲染流水线的速度优势和它的局限是同一个设计决策的两面——正因为放弃了”物体之间互相影响”这个复杂度更高的问题,才换来了可以被固化成专用硬件电路、每秒处理数百万个面片的极致速度,这提醒我们性能优化经常意味着主动砍掉某个维度的正确性,而不是找到一个免费的更快算法。
参考来源
《计算机科学概论》第10章《计算机图形学》