读书人

Windows 八 DirectX 开发学习笔记(十

发布时间: 2013-01-26 13:47:02 作者: rapoo

Windows 8 DirectX 开发学习笔记(十五)使用Billboard实现树木贴图

要使用DirectX来获得三维效果,一般首先要生成一个三维模型,然后计算它在可视空间中的投影。这样得到的二维图像十分真实,但是计算量也很大。在大规模场景渲染中,随着模型精度的提高,这样的处理方式十分消耗资源。人眼的分辨率是有限的,对于远处的模型,模糊一些不会影响到整体效果。Billboard技术就是用二维图片来模拟三维模型的投影,从而提高渲染效率。只要距离足够远,通过将二维图片旋转至合适角度,实际渲染效果与三维模型相差无几,但计算量减少很多。本文使用几何着色器,利用Billboard技术在之前的模型中添加树木贴图。

整个过程与上一篇的内容类似。不过这一次树木模型的顶点结构与其他模型不同,所以要重新写一套着色器(TreeVertexShader.hlsl、TreeGeometryShader.hlsl、TreePixelShader.hlsl)。使用Billboard绘制树木时,CPU只要生成树木的位置和大小即可,计算过程均由几何着色器完成,而顶点着色器只起到传递参数的作用,代码如下:

CreateDeviceResources方法中添加载入新着色器的代码,并初始化树木顶点的输入布局和常量缓冲区:



本篇文章源代码:Direct3DApp_HillWaveTree

原文地址:http://blog.csdn.net/raymondcode/article/details/8528159

读书人网 >windows

热点推荐