球面贴图怎么贴的

FaqianXie 2003-07-23 07:48:24
下面是SDK中的一段代码,但是关于贴图坐标的变换没怎么看明白
// Adds in the spheremap texture
m_pd3dDevice->SetTexture( 0, m_pSphereMapTexture );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE );

// Generate spheremap texture coords, and shift them over
D3DXMATRIX mat;
mat._11 = 0.5f; mat._12 = 0.0f; mat._13 = 0.0f; mat._14 = 0.0f;
mat._21 = 0.0f; mat._22 =-0.5f; mat._23 = 0.0f; mat._24 = 0.0f;
mat._31 = 0.0f; mat._32 = 0.0f; mat._33 = 1.0f; mat._34 = 0.0f;
mat._41 = 0.5f; mat._42 = 0.5f; mat._43 = 0.0f; mat._44 = 1.0f;
//这里是平移和缩放吧,但是这和贴图坐标怎么对应上的
m_pd3dDevice->SetTransform( D3DTS_TEXTURE0, &mat );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2 );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_CAMERASPACENORMAL );


能用一般的数学方式表达出来吗?
...全文
361 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZHANGKAN 2010-06-09
  • 打赏
  • 举报
回复
YangLin1ST 2003-07-27
  • 打赏
  • 举报
回复
对贴图坐标UVW进行变换,和空间中点的变换相同,如果只有UV坐标,就只对UV变换。
在上面,由于使用了D3DTSS_TCI_CAMERASPACENORMAL
摄象机空间的坐标是这样的,屏幕中间是0,从左至右X增大,从上到下Y增大,假设一个面正好覆盖屏幕,如果不进行变换,你将会看到4个图象,因此把坐标缩一倍(我们看到的图就变大一倍),在向右下方平易0。5,就可以正好看到一个图象。
FaqianXie 2003-07-26
  • 打赏
  • 举报
回复
有谁知道吗??
潘李亮 2003-07-26
  • 打赏
  • 举报
回复
我也不会
Neoking 2003-07-23
  • 打赏
  • 举报
回复
不会,来凑热闹的!!!

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧