gpt4 book ai didi

matrix - DirectX 11 覆盖

转载 作者:行者123 更新时间:2023-12-04 13:39:24 27 4
gpt4 key购买 nike

我正在为游戏编写 DirectX 11 叠加层。创建纹理非常简单,而且我对 C/C++ 有很好的了解。

我遇到的问题是在我的测试窗口中,我可以打印纹理,但是一旦我改变相机角度,纹理就会随之移动。这就是大多数人想要的。

我想知道的是,无论相机是否移动,如何打印 2D 内容以始终显示在屏幕上?

最佳答案

基本上,因为您使用 dx11,所以您使用着色器来渲染您的元素。

因此标准 3d 对象通常遵循以下准则:
- 使用 3 种变换:世界(位置对象)、 View (在相机空间中变换)、投影(在屏幕空间中变换)。

在您的顶点着色器中,您将所有这些相乘以从 3d 转换为 2d。

由于现在您想要的是在 2d 中显示您的元素(非相对于相机),您可以轻松创建一个不考虑 View /投影的新着色器,因此您只需不要在顶点着色器中使用这些矩阵. (您仍然可以使用 world 进行 2d 转换)。

这几乎是最简单的方法,如果您需要像素精确的 2d 元素,则需要创建一个广告牌变换/着色器。基本上你有你的渲染目标分辨率,标准渲染空间是 -1 -> 1,所以你修改缩放/平移以在这两个空间之间进行转换。

渲染叠加层时,还要确保完全禁用深度。

如果您需要 sample ,请告诉我,我会尽快制作,但应该很简单。

关于matrix - DirectX 11 覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17753311/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com