3DGS之光栅化

光栅化(Rasterization)是计算机图形学中将连续的几何图形(如三角形、直线等)转换为离散像素的过程,最终在屏幕上形成图像。

一、光栅化的核心比喻

  1. 像画家在画布上作画 假设你是一个画家,要把一个3D立方体画到2D画布(屏幕)上。你需要将立方体可见的每个面分解成小色块(像素),并确定每个色块的颜色。光栅化就是这个"分解并填色"的过程,只不过计算机通过数学计算自动完成。

  2. 拼图游戏 光栅化类似于将一幅完整的拼图分解成无数小拼图块(像素),然后根据原图规则给每个小拼图块上色,最终拼出完整画面。

  3. 光栅设备的原理 屏幕像一块由横向和纵向栅格组成的"捕鱼网"(光栅),光栅化的过程就像用这些栅格过滤光线,只允许特定方向的光通过,从而形成图像(例如液晶显示器的工作原理)。

二、光栅化的具体步骤

  1. 输入几何图元 光栅化处理的基本单位通常是三角形(因为三角形是平面且无歧义的几何形状),输入数据包括三角形的顶点坐标、颜色、纹理等信息。

  2. 投影到屏幕空间 通过矩阵变换将3D模型映射到2D屏幕坐标系,类似于用相机拍摄物体后得到平面照片的过程。这一步会剔除视锥外的不可见部分(如相机背后的物体)。

  3. 分解为像素并判断覆盖关系 计算机遍历屏幕上的每个像素,判断其中心点是否在三角形内部。例如,通过叉乘计算三个边的方向与点到边的关系,若所有方向一致,则点在三角形内。

  4. 颜色插值与混合 若像素被覆盖,则根据顶点颜色或纹理坐标进行插值计算(如三角形的三个顶点是红、绿、蓝,中间像素会渐变过渡),同时处理透明度和遮挡关系(如使用深度缓冲Z-buffer)。

  5. 输出到屏幕 最终将所有像素的颜色存入帧缓冲区(Frame Buffer),显示器逐行扫描这些数据形成图像

三、光栅化中的关键问题与解决

  1. 锯齿(走样) 由于像素是离散的,斜线或曲线边缘会出现锯齿。例如,楼梯状的斜线边缘看起来不平滑。

    解决方法

    1. 多重采样(MSAA):对每个像素多次采样并混合结果,平滑边缘。
    2. 抗锯齿:先对图像进行模糊(低通滤波),再采样,减少高频信号带来的锯齿感。
  2. 性能优化

    • 包围盒(Bounding Box) :仅处理三角形覆盖的像素区域,减少无效计算。
    • 深度测试(Z-Buffer):通过记录像素的深度值,避免绘制被遮挡的物体。

四、现实中的光栅化应用

  • 游戏渲染:实时生成逼真的3D场景,例如《少年派的奇幻漂流》中的虚拟老虎。
  • UI界面:手机、电脑屏幕的显示均依赖光栅化技术。
  • 科学可视化:将复杂数据(如气象模型)转化为直观的2D图像。

光栅化是计算机图形学的基石,通过将连续几何离散化为像素,让虚拟世界得以在屏幕上"活"起来。其核心逻辑是"分解-判断-填充",结合数学计算与硬件加速,实现高效渲染。

相关推荐
Aevget1 小时前
HOOPS 赋能 Proplanner 实现复杂装配制造数据的统一与可视化
3d·hoops·制造·aec·dwg·数据格式转化
CG_MAGIC8 小时前
多软件协同工作流:ZBrush+SP+Blender角色资产全流程解析
3d·blender·zbrush·建模教程·渲云渲染·渲云
新启航-光学3D测量12 小时前
飞机发动机叶片的光学三维扫描测量逆向-激光三维扫描仪
科技·3d·制造
新启航光学频率梳12 小时前
地铁齿轮箱润滑油道孔深光学3D轮廓测量-激光频率梳3D轮廓技术
科技·3d·制造
top_designer13 小时前
手绘贴图画断手?“AI 炼金术”3分钟量产风格化材质
人工智能·游戏·3d·材质·设计师·游戏策划·游戏美术
酬勤-人间道13 小时前
XPlote3DGenie 2.1.1.0:实用 3D 数据处理工具,百度网盘可直接安装
c++·3d·gis·编程·计算机软件·岩土
GISBox14 小时前
GIS场景透明度贴图全流程指南:模型导入、透明模式设置与3DTiles服务发布
3d·gis·gisbox·透明度贴图·opaque·alphatest·alphablend
棋鬼王14 小时前
Cesium(一) 动态立体墙电子围栏,Wall墙体瀑布滚动高亮动效,基于Vue3
3d·信息可视化·智慧城市·webgl
Mr Xu_14 小时前
从零实战!使用 Mars3D 快速构建水利监测 WebGIS 系统
前端·3d·webgis
海鸥_14 小时前
三种典型的3D空间编码方法
3d