游戏开发论坛

 找回密码
 立即注册
搜索
查看: 917|回复: 0

请教关于DirectX里Bump waves例子的问题

[复制链接]

13

主题

23

帖子

23

积分

注册会员

Rank: 2

积分
23
发表于 2006-10-30 17:46:00 | 显示全部楼层 |阅读模式
在DX的SDK开发包Direct3D里面一个例子Bump waves是水波的例子,其中里面的函数SetEMBMStates里有这样的片断:
        // tu = (0.8x + 0.5z) / z
        // tv = (0.8y - 0.5z) / z
        D3DXMATRIXA16 mat;
        mat._11 = 0.8f; mat._12 = 0.0f; mat._13 = 0.0f;
        mat._21 = 0.0f; mat._22 = 0.8f; mat._23 = 0.0f;
        mat._31 = 0.5f; mat._32 =-0.5f; mat._33 = 1.0f;
        mat._41 = 0.0f; mat._42 = 0.0f; mat._43 = 0.0f;

               
        m_pd3dDevice->SetTransform( D3DTS_TEXTURE1, &mat );
        m_pd3dDevice->SetTextureStageState( 1, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT3 | D3DTTFF_PROJECTED );
        m_pd3dDevice->SetTextureStageState( 1, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_CAMERASPACEPOSITION | 1 );
               
   这里为什么要将纹理坐标做这样的转换呢?
       (// tu = (0.8x + 0.5z) / z
        // tv = (0.8y - 0.5z) / z)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 18:12

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表