首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > windows >

Windows 八 Directx 开发学习笔记(十四)使用几何着色器实现三角形细分

2013-01-20 
Windows 8 Directx 开发学习笔记(十四)使用几何着色器实现三角形细分几何着色器是从DirectX 10才引入的着

Windows 8 Directx 开发学习笔记(十四)使用几何着色器实现三角形细分

几何着色器是从DirectX 10才引入的着色器,是一个可选阶段,位于顶点着色器和像素着色器阶段之间。顶点着色器以顶点作为输入数据,而几何着色器以完整的图元作为输入数据,像点、直线、三角形等。之所以引进几何着色器是为了充分利用GPU的计算能力来生成几何结构和模型细节,减轻CPU的负担,让CPU更专注于逻辑控制。几何着色器的编程和其它着色器类似,在VS2012中默认生成的几何着色器代码如下:


可以看出,把一个三角形细分成四个三角形,总的顶点数增加一倍。(写到这里突然想到游戏中常用的材质细节选项,不知道是不是通过设置不同的细分参数来区别。)知道基本方法后就可以进行代码的编写。这次是对第十二篇实现的模型进行细分。

首先向项目中添加几何着色器,并重命名为SimpleGeometryShader。注意这里需要更改编译选项,之前的着色器模型是 4级别 9_3 (/4_0_level_9_3),而几何着色器是在DirectX 10中才引入的,所以要更改着色器模型为4 (/4_0)。

然后要修改几何着色器中的结构体定义,与顶点着色器对应:


上面是细分后的效果,下面是未细分的效果。

 

本篇文章源代码:Direct3DApp_HillWaveGS

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

2楼cwhdffff43分钟前
很好
1楼zxc369369021昨天 16:07
+6

热点排行