2017-04-12 129 views
0

我刚刚开始编写SharpDX(VB.net)中的一些基础知识,并且我已经将它渲染为渲染2D三角形。而且我知道如何呈现其他2D内容,但是我想在3D中创建一些可以围绕某些多维数据集旋转相机的内容。我试过了,但是在将3D空间转换为屏幕坐标时失败了。这里是我的问题:SharpDX如何渲染3D环境

  • 我该如何计算透视投影矩阵?
  • 如何将该矩阵传递给我的顶点着色器
  • 当我将鼠标拖过屏幕时,如何使相机围绕对象旋转?

请向我解释这些事情并给出一些代码示例。我只是SharpDX的初学者,我发现的一切对我来说都是无法理解的。

+0

人们总是乐于解释,但StackOverflow上的人通常不会为人们编写代码示例,而不是免费的; P – Jaxi

+0

我的意思是一些简短的示例,而不是整个项目XD。如果你看看周围的计算器,你会发现很多代码示例 – TimoHo

回答

1

您首次启动时可以执行的一些操作。首先,你可以利用一些很好的例子(即使在c#中,但你需要VB),你可以使用它来学习。

我建议你在Sharpdx存储库中看看这个。 Sharpdx direct 3d 11 samples

在这些例子中(特别是三角形例子),它经历了一些基础知识,包括设置设备,创建绑定到GPU的简单资源和编译字节码。

尽管使用效果方法的样本已被弃用,并且在您熟悉编译代码之后,我建议您不要使用这种方法。

更高级的示例将向您展示如何设置矩阵。

你想知道的最后一项是鼠标移动。我会建议看看MSDN围绕mousemove事件。你将需要绑定一个到你的窗口/控件,然后阅读增量。使用这些增量来创建您的旋转/移动基于此。看看Vector3(sharpdx),基本上,您需要在矢量空间中完成所有操作,然后从中创建各种平移/旋转矩阵。

希望这是开始。

+0

谢谢你的回答。我希望我能做到这一点:) – TimoHo

+0

我相信你会的! – ErnieDingo