游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5410|回复: 11

如何使用矩阵变换,来改变纹理坐标?

[复制链接]

7

主题

67

帖子

69

积分

注册会员

Rank: 2

积分
69
发表于 2006-8-24 22:25:00 | 显示全部楼层 |阅读模式
请教一下高手们,在DX9中,如何使用矩阵变换,来改变纹理坐标?
就像通过平移矩阵与缩放矩阵来改变顶点坐标那样,
如何改变纹理坐标呢?

2

主题

106

帖子

114

积分

注册会员

Rank: 2

积分
114
QQ
发表于 2006-8-25 00:41:00 | 显示全部楼层

Re:如何使用矩阵变换,来改变纹理坐标?

推荐在shader中计算。

3

主题

23

帖子

23

积分

注册会员

Rank: 2

积分
23
发表于 2006-8-25 01:56:00 | 显示全部楼层

Re:如何使用矩阵变换,来改变纹理坐标?

固定渲染流水线有这个功能。
。。。。。还是参考SDK吧,
在Programming Guild
   ----------------Getting Started
       --------------------Direct3D Textures
            ---------------------Texture Coordinates
                ------------------------Texture Coordinate Processing
                   ----------------------------Texture Coordinate Transformations

恩,恩,我承认我是很懒

44

主题

248

帖子

274

积分

中级会员

Rank: 3Rank: 3

积分
274
发表于 2006-8-25 02:10:00 | 显示全部楼层

Re:如何使用矩阵变换,来改变纹理坐标?

gl多好,直接进入纹理矩阵,简简单单3句就搞定了

54

主题

2916

帖子

3765

积分

论坛元老

Rank: 8Rank: 8

积分
3765
QQ
发表于 2006-8-25 12:31:00 | 显示全部楼层

Re:如何使用矩阵变换,来改变纹理坐标?

这个话题值得关注!

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-8-25 19:54:00 | 显示全部楼层

Re:如何使用矩阵变换,来改变纹理坐标?

SetTransform(D3DTS_TEXTURE0/1/2/3/4/5/6/7, pMatrix)
DX只要一句,哈哈

106

主题

743

帖子

745

积分

高级会员

Rank: 4

积分
745
QQ
发表于 2006-8-26 19:25:00 | 显示全部楼层

Re:如何使用矩阵变换,来改变纹理坐标?

楼上这句什么意思。

0

主题

1037

帖子

1037

积分

金牌会员

Rank: 6Rank: 6

积分
1037
发表于 2006-8-28 02:56:00 | 显示全部楼层

Re:如何使用矩阵变换,来改变纹理坐标?

m_pd3dDevice->SetTransform(D3DTS_TEXTURE0, pMatrix);
就是要设置第0个纹理的变换矩阵。

7

主题

67

帖子

69

积分

注册会员

Rank: 2

积分
69
 楼主| 发表于 2006-8-28 12:59:00 | 显示全部楼层

Re:如何使用矩阵变换,来改变纹理坐标?

楼上的 :
m_pd3dDevice->SetTransform(D3DTS_TEXTURE0, pMatrix);

这里的pMatrix 是怎么计算出来的?
该用什么方式计算这个矩阵?
例如,初试 的UV坐标是这个样子(一个有4个顶点的三角形带,组成的一个矩形)

0.0F, 0.0F             1.0F, 0.0F

0.0F, 1.0F             1.0F, 1.0F

我希望UV坐标转换后,变成这样:
0.0F, 0.0F             0.5F, 0.0F

0.0F, 0.5F             0.5F, 0.5F

这样这个矩阵该怎么计算呢?

0

主题

1037

帖子

1037

积分

金牌会员

Rank: 6Rank: 6

积分
1037
发表于 2006-8-28 19:30:00 | 显示全部楼层

Re:如何使用矩阵变换,来改变纹理坐标?

不就是UV坐标都减半吗?
应该是
0.5    0   0  0
0     0.5  0  0
0       0   1  0
0       0   0  1
吧。
用4×4矩阵作二维变换,我也不知是不是这样。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 22:15

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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