二维渲染流程

2020-04-04  本文已影响0人  _小_悦_

物体的摆放问题:

即将物体从本地坐标系转换到世界坐标系需要使用世界变化矩阵(物体自身的旋转缩放平移或组合矩阵)

物体的观察问题:

从什么地方观察? 观察范围有多大? 需要使用投影变换矩阵

    1: 需要将物体移动相观察位置的平移量(-观察x, -观察y) => 平移矩阵
    2: 为了后面物体绘制时候方便处理需要将投影坐标系下面的物体缩放发哦我们知道的比例, 一般采用(-1, -1)(+1, +1)这个范围
    3: 最后决定哪一些物体在我们的投影范围内, 不在范围内的不绘制(投影裁剪)

物体的绘制问题:

将投影的图像花在什么地方, 以区域的左上角为(vx, vy), 区域的宽度为(vw, wh)

    1: 将投影图像缩放到绘制区域(视口区域)Scale(vw/2.0f, vh/2.0f)
    2: 将缩放后的图像平移到绘制位置 Translate(cx + vw / 2, vy + vh / 2)

过程如下:

    本地坐标系(模型)
            ||
            || <== 世界变化矩阵 [自身变化祝贺矩阵]
            ||
    世界坐标系(物体)
            ||
            || <== 投影变换矩阵 [平移, 缩放, 裁剪]
            ||
    投影坐标系
            ||
            || <== 视口变化矩阵 [缩放, 平移]
            ||
    视口坐标系
上一篇 下一篇

猜你喜欢

热点阅读