DirectX 入门1-认识DirectX Tool Kit

要掌握计算机技术相关的技术,就一句话,叫说干就干。这里的干就是实践,而实践的基础就是照示例试一试,也就是所谓的是骡子是马,先拿出来溜一溜。学习DirectX同样是如此,微软为DirectX提供了很多示例,这些示例的项目代码都可以从GITHUB上下载得到。不过,掌握DirectX还是一件比较难的事情,尽管示例很丰富,但你能做的也就是将每个示例编译一遍,然后跑起来看看效果,通常示例代码似乎都看懂了,修改了几个地方也证明了自己确实是有些理解了,比如加载了自定义的纹理,将静止的渲染变成可交互的渲染等等,但从头再开始一个项目的时候,会发现问题多多,就算是照抄一个Hello三角形,也会有渲染不出任何东西的时候。那么问题究竟出在哪里?其实真相只有一个,那就是DirectX的示例并没有给出全部的真理,所以你只能原封不动地去考备其代码才能够正常的运行,这显示不是咱们学习DirectX的目的。

在学习DirectX的时候,除了实践,还有一个前提是DirectX究竟是什么。对于一些从事过2D编程的人来讲,学习DirectX的时候会误入一个歧途,以为DirectX是一个画图工具,就像WPF的3dViewPort,或是像threejs一样的东西,只要定义好灯光,相机,顶点之类的就可以画图了,实际上DirectX的目标并在画图本身上,画图可是显卡的事情,DirectX只是一个应用程序与显示之间交流的一个媒介。如果我们想在计算机渲染一个3D模型,不能只停留在DirectX本身的接口上,DirectX仅仅是让你可以管理一堆的Buffer,提供一个CPU与GPU资源同步的机制。用官方的话说,DirectX是个非常LOW级别的API,LOW到几乎是在直接操作硬件。而DirectX的这些示例,重点展示的也正是这些内容,叫你如何控制内存,如何将数据写入到管线,而对于那些3D描绘的内容却提及得不多。因而直接用DirectX的示例上手,并不是一件明智的事。

为了更好的入门,微软其实提供了一些高级别的工具,这些工具就比较专注于绘图了。而正是因为这些工具并不包含在DirectX的开发包里,在DirectX的各个版本的文档中很少提及,就导致了很多初学者走了歪路。这些个工具当中,最实用的就是DirectX Tool Kit ,这个工具在长篇累牍的文档中,仅仅提供了一个链接,这个链接指向了Github中的一个项目。这个链接也是我在翻了无数遍文档中,偶然看到的。然而,这个工具对于初学DirectX开发的十分重要,如果没有这个工具的引领,你是很难用DirectX写出一个像样的程序的。

那DirectX Tools是干嘛的呢?假如我们有过三维建模或WebGL开发经验,就会知道3d就是一在平面画立体图像,涉及到的也就是高中立体几何中的一些概念,在画好线框模型后,就给模型上色,然后将你的电脑屏幕当成一个舞台,配上灯光照明和动画,这样一个3D作品就算完成了。DirectX Tool Kit 其实就是干这些事情的,可以用这个工具直接画点、线、面及一些基础图形如方块、圆锥、圆柱、球体等,而不需要手动输入很一个顶点,再往管线中写入数据。也可以读取3D定义文件,然后在电脑屏幕上画出来。应该说,这个工具才符合一般人对于3D的开发的认知。如果没有这个工具,一上来就啃DirectX的开发文档,那么你就一直停留在云里雾里,不得其法,徘徊良久之后只得放弃。

猜你喜欢

转载自www.cnblogs.com/icoolno1/p/12749092.html