游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4648|回复: 10

D3D中关于纹理坐标u,v映射到纹理元素的问题

[复制链接]

66

主题

223

帖子

223

积分

中级会员

Rank: 3Rank: 3

积分
223
发表于 2008-1-9 18:40:00 | 显示全部楼层 |阅读模式
书上说D3D中从u,v坐标映射到纹理元素用的是以下公式:
Tx = (u * Mx) - 0.5
Ty = (v * My) - 0.5
其中Tx,Ty是纹理元素上的坐标
u,v即 u,v坐标(0.0 - 1.0)
Mx, My是纹理的宽和高.

那么照这样映射, u,v值为(0.0, 0.0)映射到纹理元素是-0.5, -0.5. 这样应该会产生奇怪的图像吧.
那么我平时做纹理映射时都没考虑这点,直接就认为0.0 映射到纹理元素也是 0 了,但是一切正常啊.有谁能解释下么?

5

主题

755

帖子

757

积分

高级会员

Rank: 4

积分
757
发表于 2008-1-9 19:20:00 | 显示全部楼层

Re:D3D中关于纹理坐标u,v映射到纹理元素的问题

你把uv转换到 0-1之间

35

主题

1735

帖子

1739

积分

金牌会员

Rank: 6Rank: 6

积分
1739
QQ
发表于 2008-1-9 21:01:00 | 显示全部楼层

Re:D3D中关于纹理坐标u,v映射到纹理元素的问题

66

主题

223

帖子

223

积分

中级会员

Rank: 3Rank: 3

积分
223
 楼主| 发表于 2008-1-9 21:51:00 | 显示全部楼层

Re: Re:D3D中关于纹理坐标u,v映射到纹理元素的问题

OSFG: Re3D中关于纹理坐标u,v映射到纹理元素的问题

你把uv转换到 0-1之间


晕...这个回答太精辟了吧...我反复的琢磨了十分钟...没什么头绪...
能给点详细的吗?我的uv坐标本身就在0-1.0之间啊,用那个公式映射后
uv坐标为(0.0, 0.0)就映射到(-0.5,-0.5)了,本来应该映射到(0,0)的啊.

0

主题

228

帖子

285

积分

中级会员

Rank: 3Rank: 3

积分
285
发表于 2008-1-10 10:44:00 | 显示全部楼层

Re:D3D中关于纹理坐标u,v映射到纹理元素的问题

具体也不知道,难道是为了纹理过滤?
请高手指点

15

主题

2093

帖子

2093

积分

金牌会员

Rank: 6Rank: 6

积分
2093
发表于 2008-1-10 13:41:00 | 显示全部楼层

Re:D3D中关于纹理坐标u,v映射到纹理元素的问题

没有错啊,纹理元素0.0, 0.0是对应到第一个象素的中心
而uv坐标(0.0, 0.0)对应到的是纹理的边界

197

主题

1041

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
QQ
发表于 2008-1-10 14:38:00 | 显示全部楼层

Re:D3D中关于纹理坐标u,v映射到纹理元素的问题

两个地方,x和y坐标都不一样。

在texture中的坐标
x自然换算。dx=gl
y是反转换算。dx=gl

Vertex中的坐标
dx下,x为自然换算
dx下,y为自然换算

gl下,x为自然换算
gl下,y为反转换算

从一张方图中看效果时,
从vertex影射righttop,leftbottom,rightbottom,刚好是lefttop,righttop,leftbottom的反转

7

主题

35

帖子

35

积分

注册会员

Rank: 2

积分
35
发表于 2008-1-10 14:46:00 | 显示全部楼层

Re: D3D中关于纹理坐标u,v映射到纹理元素的问题

关于0.5我的看法是因为象素是用矩阵表示的,非点表示,而象素的定位又是用其中心点来确定的!

8

主题

41

帖子

41

积分

注册会员

Rank: 2

积分
41
发表于 2008-1-10 15:21:00 | 显示全部楼层

Re:D3D中关于纹理坐标u,v映射到纹理元素的问题

楼上的正解

66

主题

223

帖子

223

积分

中级会员

Rank: 3Rank: 3

积分
223
 楼主| 发表于 2008-1-10 17:50:00 | 显示全部楼层

Re:D3D中关于纹理坐标u,v映射到纹理元素的问题

哦,原来是这样...那么不需要做其他的变换就能得到正确的图像显示了吧.
那应该是书上有问题了...书上还另外做了一个平移0.5的变换,可能数值太小看不出来有什么不对..谢谢大家!~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-23 22:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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