Answers:
据我所知,软件遮挡剔除(您已经提到过)几乎是软件光栅化器唯一仍会使用的东西。Procworld利用类似的技术来显示其庞大的体素环境。
像截锥体剔除一样,大多数其他剔除方法也可以在CPU上工作,但是,与该示例一样,针对截锥体的测试是在对象级别上进行的,可能是使用轴对齐的边界框(AABB)。此交集测试比使用功能完善的软件光栅化器要简单得多。
在某些情况下,软件光栅化可用于鼠标拾取对象。在游戏引擎中,这通常可以通过使用物理引擎和具有简化网格的射线三角形碰撞来解决。
在现代交互式3D应用程序中,当CPU在等待GPU的同时处于空闲状态时,人们可能会认为使用这些空闲周期通过软件光栅化器在CPU上渲染可能会有所益处。除了渲染变得非常复杂和令人费解之外,这里的问题通常是带宽。在CPU上渲染的图像在显示之前需要先转移到GPU,这可能会抵消其好处。
栅格化是一个包含许多部分的巨大话题,我不是引擎程序员,但是我会尽力给出一些概述(这与完整的清单相去甚远!)。
一些非常基本的低级内容包括:
游戏中使用的更多高级内容包括:
假设您对图形流水线有基本的了解,我尝试着重于光栅化。您还可以查看照明和阴影或其他东西。
这些仅包括一些可能包含在项目中的技术。由于我在stackexchange上没有足够的声誉,因此我无法提供许多链接,但是您会在google中找到所有这些东西:)