怎么使用顶点着色器

来源:百度知道 编辑:UC知道 时间:2024/06/21 03:30:37

2.3 使用顶点着色器的步骤
阅读此文表明您已同意文末的声明

下面的列表概括了创建和使用顶点着色器的必须步骤。

1. 编写并编译顶点着色器

2. 创建一个IDirect3DVertexShader9接口以代表基于已编译着色器代码上的顶点着色器。

3. 用IDirect3DDevice9:: SetVertexShader方法允许这个顶点着色器。

当然,在我们做完这些之后,我们还得销毁这个顶点着色器。下面的各小节将更详细的迈入这些步骤。

2.3.1 编写并编译顶点着色器
首先,我们必须编写一个顶点着色器程序。在本书中的HLSL一章中,我们已经编写了我们的着色器(译者注:参见我翻译的译文第一章中各节)。一旦着色器代码写好之后,我们就使用D3DXCompileShaderFromFile函数编译这个着色器,如1.2.2节所述。回忆一下,这个函数返回一个ID3DXBuffer指针,它包含了已编译的着色器代码。

2.3.2 创建顶点着色器
一旦我们拥有了编译好的着色器代码,我们就能够获得一个IDirect3DVertexShader9接口的指针,它代表一个顶点着色器——通过使用下面的方法:

HRESULT IDirect3DDevice9::CreateVertexShader(

const DWORD *pFunction,

IDirect3DVertexShader9** ppShader

);

pFunction——已编译着色器代码的指针

ppShader——返回一个IDirect3DVertexShader9接口的指针

例如,假设变量shader是一个包含已编译着色器代码的ID3DXBuffer(的接口指针)。然后要获得一个IDirect3DVertexShader9接口,我们可以写:

IDirect3DVertexShader9* ToonSha