SharpDX 如何渲染 3D 环境
SharpDX How To Render a 3D Environment
我刚开始在 SharpDX (VB.net) 中编写一些基础知识,我已经掌握了它来渲染 2D 三角形。我知道如何渲染其他 2D 内容,但我想创建 3D 内容,以便我能够围绕一些立方体旋转相机。我试过了,但未能将 3D Space 转换为屏幕坐标。现在这是我的问题:
- 如何计算透视投影的矩阵?
- 如何将该矩阵传递给我的顶点着色器
- 当我在屏幕上拖动鼠标时,如何让相机围绕对象旋转?
请向我解释这些事情并给出一些代码示例。我只是 SharpDX 的初学者,我发现的一切对我来说都是无法理解的。
刚开始时可以做的几件事。
首先,您可以利用一些很好的示例(即使在 c# 中,但您需要 VB),您可以从中学习。
我建议您在 Sharpdx 存储库中查看此内容。 Sharpdx direct 3d 11 samples
在这些示例(尤其是三角形示例)中,它介绍了基础知识,包括设置设备、创建简单资源以绑定到 GPU 以及编译字节码。
示例虽然使用了已弃用的效果方法,因此一旦您熟悉了编译代码,我建议您放弃这种范式。
更高级的示例将向您展示如何设置矩阵。
您想知道的最后一项是鼠标移动。我建议只看一下有关 mousemove 事件的 MSDN。您需要将一个绑定到您的 window/control,然后读取增量。基于此使用这些增量创建您的 rotation/movement。查看 Vector3 (sharpdx),基本上,您需要在向量 space 中完成所有这些,然后从中创建各种 translation/rotation 矩阵。
希望这是开始。
我刚开始在 SharpDX (VB.net) 中编写一些基础知识,我已经掌握了它来渲染 2D 三角形。我知道如何渲染其他 2D 内容,但我想创建 3D 内容,以便我能够围绕一些立方体旋转相机。我试过了,但未能将 3D Space 转换为屏幕坐标。现在这是我的问题:
- 如何计算透视投影的矩阵?
- 如何将该矩阵传递给我的顶点着色器
- 当我在屏幕上拖动鼠标时,如何让相机围绕对象旋转?
请向我解释这些事情并给出一些代码示例。我只是 SharpDX 的初学者,我发现的一切对我来说都是无法理解的。
刚开始时可以做的几件事。
首先,您可以利用一些很好的示例(即使在 c# 中,但您需要 VB),您可以从中学习。
我建议您在 Sharpdx 存储库中查看此内容。 Sharpdx direct 3d 11 samples
在这些示例(尤其是三角形示例)中,它介绍了基础知识,包括设置设备、创建简单资源以绑定到 GPU 以及编译字节码。
示例虽然使用了已弃用的效果方法,因此一旦您熟悉了编译代码,我建议您放弃这种范式。
更高级的示例将向您展示如何设置矩阵。
您想知道的最后一项是鼠标移动。我建议只看一下有关 mousemove 事件的 MSDN。您需要将一个绑定到您的 window/control,然后读取增量。基于此使用这些增量创建您的 rotation/movement。查看 Vector3 (sharpdx),基本上,您需要在向量 space 中完成所有这些,然后从中创建各种 translation/rotation 矩阵。
希望这是开始。