最近想搞搞图形渲染这块,听说D3D挺强大的,就想上手试试。今天就来分享一下我的折腾过程。
下载和安装
我还以为像平时下载软件一样,直接找个安装包就完事。结果发现这D3D还挺特别,它不是一个单独的软件,而是一堆API,算是Windows系统的一部分。
然后我就去查一下,发现要用D3D,得先装个叫DirectX SDK的东西。不过现在好像不用单独装,直接装个Windows SDK就行,里面已经包含DirectX SDK。
我去微软的官网瞄一眼,根据提示下载Windows SDK的安装程序。安装的时候,我特意勾选跟图形相关的那些组件,生怕漏
配置开发环境
装好SDK后,我寻思着总得有个地方写代码。我用的是Visual Studio,一个很强大的工具。
- 我先新建一个C++项目。
- 然后,在项目属性里,我把包含目录和库目录设置成Windows SDK里的对应路径。这样,编译器才能找到D3D的头文件和库文件。
- 我还得告诉链接器,要链接D3D的库。我直接添加*,简单粗暴!听说根据需求还要加d3d9,d3d12的,我这里先用这一个。
小试牛刀
环境搭好,总得写点代码跑跑看。我找个简单的D3D初始化代码,创建一个窗口,然后用一种颜色清空它。
刚开始编译,各种报错,不是找不到头文件,就是链接错误。我来来回回检查好几遍,才发现是include路径或者lib路径配置出问题,还好都解决。
终于,一个黑乎乎的窗口弹出来!虽然啥也没有,但好歹是跑起来,我这心里还是有点小激动的。我后面还把这个窗口的背景色改成蓝色,看着舒服多。
更进一步
光有个窗口还不够,我还想画点东西。听说D3D可以用着色器来控制渲染过程,我就去学学HLSL语言。这语言看着有点怪,不过跟C++有点像,学起来还算快。
我写个简单的顶点着色器和像素着色器,一个用来确定顶点位置,一个用来给像素上色。然后,我用D3D把它们编译成字节码,再加载到GPU里。
我定义一个三角形的顶点数据,放到一个叫顶点缓冲的东西里。然后,我告诉D3D用这个顶点缓冲和着色器来画图。
终于,一个彩色的三角形出现在窗口里!虽然只是一个简单的三角形,但我感觉自己打开新世界的大门。然后看着各种D3D的教程,我尝试画出更多的图形,甚至还加些光照效果。
D3D入门还是有点门槛的,但只要肯花时间,一步一步来,还是能搞出点名堂的。这回实践让我对图形渲染有更深的解,以后可以继续深入研究,做出更炫酷的效果。
还没有评论,来说两句吧...