<D3D> 多重纹理的使用

   1. 载入纹理

  需要把多重纹理分别载入内存,并设置它的纹理序号,默认的纹理序号为0,因此需要设置其多重纹理的序号:
  D3DXCreateTextureFromFile(g_pd3dDevice, "light.bmp", & g_pTexture2);
  g_pd3dDevice->SetTexture(1, g_pTexture2);

  2. 设置纹理混合状态

  g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP,D3DTOP_MODULATE );
  g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1,D3DTA_TEXTURE );
  g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2,D3DTA_CURRENT );

  纹理状态D3DTSS_COLORARG1和D3DTSS_COLORARG2用来指定当前纹理层与上一层纹理层混合的第一个和第二个参数,D3DTSS_COLOROP指定混合方式。Direct3D使用下面的方法混合纹理:

  纹理混合参数D3DTSS_COLORARG1和D3DTSS_COLORARG2的取值如表6-3所示。


表6-3 纹理混合参数

  纹理状态D3DTSS_COLOROP和D3DTSS_ALPHAOP用来指定纹理RGB混合和Alpha混合的混合方式,它们可以用来指定属于枚举类型D3DTEXTUREOP的常量。纹理混合方式如表6-4所示。


表6-4 纹理混合方式

  3. 设置纹理坐标索引

  由于有了多层纹理,因此顶点信息也应该包含每一层纹理坐标的信息。首先需要在顶点格式中加入其他层的纹理坐标,接着要在程序中设定纹理坐标的索引。

  4. 纹理混合的程序实现

  【例6-2】混合两层纹理:

 

转自www.educity.cn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值