游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6095|回复: 7

glTexCoord2i为什么只能指定0-1的值?

[复制链接]

50

主题

244

帖子

319

积分

中级会员

Rank: 3Rank: 3

积分
319
QQ
发表于 2005-10-10 10:08:00 | 显示全部楼层 |阅读模式
我看资料上说使用整型的时候可以直接指定纹理坐标的啊,为什么我使用纹理坐标后反而是缩小的?还有什么地方需要设置吗?例如纹理大小是512*512,我使用的是glTexCoord2i(512,512);大家看看这样有错吗?

50

主题

244

帖子

319

积分

中级会员

Rank: 3Rank: 3

积分
319
QQ
 楼主| 发表于 2005-10-10 11:51:00 | 显示全部楼层

Re:glTexCoord2i为什么只能指定0-1的值?

但是显示结果是纹理被缩小了512倍(至少看起来是这样的了),请问这是什么原因啊?

0

主题

18

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2005-10-10 13:09:00 | 显示全部楼层

Re:glTexCoord2i为什么只能指定0-1的值?

你看的什么资料?

50

主题

244

帖子

319

积分

中级会员

Rank: 3Rank: 3

积分
319
QQ
 楼主| 发表于 2005-10-10 13:39:00 | 显示全部楼层

Re:glTexCoord2i为什么只能指定0-1的值?

我看的是《OpenGL基础图形编程》上写的内容,下面是它的部分内容,不知道是不是我理解错误了。

设置当前纹理坐标,此后调用glVertex*()所产生的顶点都赋予当前的纹理坐标。对于gltexCoord1*(),s坐标被设置成给定值,t和r设置为0,q设置为1;用gltexCoord2*()可以设置s和t坐标值,r设置为0,q设置为1;对于gltexCoord3*(),q设置为1,其它坐标按给定值设置;用gltexCoord4*()可以给定所有的坐标。使用适当的后缀(s,i,f或d)和TYPE的相应值(GLshort、GLint、glfloat或GLdouble)来说明坐标的类型。注意:整型纹理坐标可以直接应用,而不是象普通坐标那样被映射到[-1, 1]之间。

45

主题

157

帖子

169

积分

注册会员

Rank: 2

积分
169
QQ
发表于 2005-10-16 10:20:00 | 显示全部楼层

Re: glTexCoord2i为什么只能指定0-1的值?

      单个纹理坐标只能在0~1之间,大于1的值视为重复纹理。

1

主题

42

帖子

52

积分

注册会员

Rank: 2

积分
52
发表于 2005-10-16 20:06:00 | 显示全部楼层

Re:glTexCoord2i为什么只能指定0-1的值?

注意:整型纹理坐标可以直接应用,而不是象普通坐标那样被映射到[-1, 1]之间。
那上面这句是什么意思?

3

主题

17

帖子

23

积分

注册会员

Rank: 2

积分
23
发表于 2005-11-6 11:29:00 | 显示全部楼层

Re: glTexCoord2i为什么只能指定0-1的值?

纹理坐标是可以超过[0.0,1.0]的,但那相当与重复纹理了,就像你说的把纹理坐标设置为glTexcoord2f(512,512)的话相当于在一个多边形上贴了512x512的原纹理,所以每个纹理缩小了原先的1/512,其实我们可以这么看,不管纹理图片的大小是多少,整个纹理的坐标就是[0.0,1.0],超过这个范围就在s和t方向上重复纹理 [em16]

13

主题

55

帖子

55

积分

注册会员

Rank: 2

积分
55
发表于 2005-11-6 18:00:00 | 显示全部楼层

Re:glTexCoord2i为什么只能指定0-1的值?

你注意了

glTexCoord2 f (2xGLfloat);
glTexCoord2 d (2xGLdouble);

坐标的值是根据顶点之间的距离还有占原象素样本的长度计算出来的,而且精确度可以根据调用float还是double还选择
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 13:30

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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