栅格化
编辑在计算机图形学中,光栅化(英式英语)或光栅化(美式英语)是获取以矢量图形格式(形状)描述的图像并将其转换为光栅图像(一系列像素、点或线, 当一起显示时,创建通过形状表示的图像)。 然后可以将光栅化图像显示在计算机显示器、视频显示器或打印机上,或以位图文件格式存储。 光栅化可能是指绘制 3D 模型的技术,或将 2D 渲染图元(如多边形、线段)转换为光栅化格式的技术。
词源
编辑术语光栅化来自德语光栅“网格、模式、模式”和拉丁语 rāstrum“刮刀、耙子”。
二维图像
编辑线基元
Bresenham 的直线算法是用于绘制直线的算法示例。
圆形基元
诸如中点圆算法之类的算法用于将圆渲染到像素化画布上。
3D 图像
编辑光栅化是渲染 3D 模型的典型技术之一。 与光线追踪等其他渲染技术相比,光栅化速度极快,因此被大多数实时 3D 引擎所采用。 然而,光栅化只是计算从场景几何到像素的映射的过程,并没有规定计算这些像素颜色的特定方法。 每个像素的特定颜色由像素着色器分配(在现代 GPU 中是完全可编程的)。 阴影可能会考虑物理效果,例如光线位置、它们的近似值或纯粹的艺术意图。
将 3D 模型光栅化到 2D 平面以在计算机屏幕(屏幕空间)上显示的过程通常由图形管道内的固定功能(非可编程)硬件执行。 这是因为没有动机修改渲染时使用的光栅化技术,并且专用系统允许高效率。
三角形光栅化
数字 3D 模型的常见表示形式是多边形。 在栅格化之前,单个多边形被分解成三角形,因此 3D 栅格化中要解决的一个典型问题是三角形的栅格化。 三角形光栅化算法通常需要的属性是光栅化两个相邻的三角形(即共享边的三角形)
- 在三角形之间不留空洞(非光栅化像素),因此光栅化区域被完全填充(就像相邻三角形的表面一样)。 和
- 没有像素被光栅化超过一次,即光栅化的三角形不重叠。 这是为了保证结果不依赖于三角形光栅化的顺序。 过度绘制像素也可能意味着在将被覆盖的像素上浪费计算能力。
这导致建立光栅化规则来保证上述条件。 一组这样的规则称为左上角规则,它规定像素被光栅化当且仅当
- 它的中心完全位于三角形内。 或者
- 它的中心恰好位于三角形边缘(或多条边,如果是角),即(或者,如果是角,所有是)上边或左边。
顶边是完全水平且位于其他边之上的边,左边是三角形左侧的非水平边。
此规则已实施,例如 通过 Direct3D 和许多 OpenGL 实现(即使规范没有定义它,只需要一个一致的规则)。
质量
编辑光栅化的质量可以通过抗锯齿来提高,这会产生平滑的边缘。 亚像素精度是一种在比像素网格更精细的尺度上考虑位置的方法,即使图元的端点落在相同的像素坐标中,也可以产生不同的结果,从而产生更平滑的运动动画。 简单或较旧的硬件,例如 PlayStation 1,在 3D 光栅化中缺乏亚像素精度。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/198034/