5.6.3.3 设备坐标标准化 (NDC)

来源:互联网 发布:java培训课 编辑:程序博客网 时间:2024/06/10 15:54

上一节中的投影点的坐标在视觉空间中计算。在视觉空间中,投影窗口具有为2的高度和2r的宽度,其中r是纵横比。这样做的问题是,该尺寸取决于纵横比。这意味着我们需要告诉硬件的高宽比,因为硬件将在以后需要做一些操作涉及投影窗口的尺寸(如将其映射到后台缓存)。如果我们能删除对纵横比的依赖性,将会更方便。解决的办法是从区间[-r,r] 到[-1,1]按比例投射x坐标,像这样:

xr

此映射之后,将x和y坐标被认为是标准化设备坐标(NDC)(z坐标至今尚未标准化),判断一个点(x,y,z)是否在视锥内当且仅当:

xrz

从视图空间到NDC空间的转换可被视为一个单元转换。我们有如下关系:一个NDC单元等于在视觉空间x轴上r个单元(即1 NDC= r vs)。因此,给定x视图空间单位,我们可以利用这种关系来转换单位:

ndc vs

我们可以修改我们的投影公式,则NDC坐标是

xy

需要注意的是在NDC坐标中,投影窗口具有2的高度和2的宽度。因此,现在的尺寸是固定的,并且硬件并不需要知道的纵横比,提供在NDC空间中的投影坐标始终是我们的责任

本文固定链接:http://www.oxox.work/web/directx11/normalized-device-coordinates/ | 虚幻大学

0 0