UE 矩阵变换理解

在UE5中,光栅化是将3D场景中的几何体转换为2D像素的过程。这个过程中,矩阵变换起着重要的作用,它们用于将3D模型从世界空间转换到屏幕空间,并进行透视投影。

在光栅过程中使用的常见矩阵变换包括模型变换、视图变换和投影变换。

  1. 模型变换(Model Transformation): 模型变换将3D模型从其局部坐标系转换到世界坐标系中。这个变换通常由一个4x4的模型矩阵来表示,包含了平移、旋转和缩放操作。模型矩阵可以通过将平移、旋转和缩放矩阵相乘得到。

    ModelMatrix = TranslationMatrix * RotationMatrix * ScaleMatrix

    这个矩阵变换将模型的顶点从本地坐标系变换到世界坐标系中。

  2. 视图变换(View Transformation): 视图变换将场景从世界坐标系转换到摄像机或观察者的视角下。这个变换通常由一个4x4的视图矩阵来表示,包含了摄像机的位置和朝向信息。

    ViewMatrix = LookAt(CameraPosition, TargetPosition, UpDirection)

    这个矩阵变换将场景的顶点从世界坐标系变换到摄像机坐标系中。

  3. 投影变换(Projection Transformation): 投影变换将3D场景从摄像机坐标系转换到规范化设备坐标系(Normalized Device Coordinates,NDC)。这个变换通常由一个4x4的投影矩阵来表示,其中最常见的是透视投影和正交投影。

    • 透视投影:使用透视投影矩阵可以创建一种呈现远近景深的效果,使离观察者越远的物体看起来较小。透视投影矩阵包含了视角、宽高比、近裁剪面和远裁剪面的信息。
    PerspectiveMatrix = Perspective(Fov, AspectRatio, NearClip, FarClip)
    • 正交投影:使用正交投影矩阵可以创建一种没有透视效果的平行投影,物体在各个方向上都保持相同的比例。正交投影矩阵包含了场景的边界信息。
    OrthographicMatrix = Orthographic(Left, Right, Bottom, Top, NearClip, FarClip)

    投影变换将场景的顶点从摄像机坐标系变换到裁剪空间中。

  4. 屏幕变换(Screen Transformation): 屏幕变换将裁剪空间中的坐标转换为最终渲染目标的屏幕空间坐标。这个变换通常由一个4x4的屏幕矩阵来表示,包含了渲染目标的分辨率和显示区域的信息。

    ScreenMatrix = Screen(Width, Height)

    屏幕变换将场景的顶点从裁剪空间变换到屏幕空间中。

在光栅过程中,将这些矩阵变换按照顺序应用于模型的顶点,可以将其从模型空间转换到屏幕空间,并产生2D像素坐标。这些2D像素坐标可用于后续的像素处理和着色阶段,以及生成最终的渲染图像。

你可能感兴趣的:(UE4,UE)