游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2838|回复: 5

关于OpenGL的纹理

[复制链接]

32

主题

108

帖子

108

积分

注册会员

Rank: 2

积分
108
发表于 2007-5-16 23:15:00 | 显示全部楼层 |阅读模式
最近我做了一个小小的地形渲染程序。
首先,采用分形的方法产生一个二维的数组,就是高度数据。比如产生512*512的数组。
然后,根据这个数组生成对应的纹理图。采用的方法就是给不同的高度设置不同的颜色。
最后,有了大小都为512*512的高度数组和纹理图,交给OpenGL渲染。
因为纹理大小必须是2的n次幂,所以这里我采用的大小为512*512。我想请教各位,是不是只能渲染这种2的n次幂大小的地形?如果我想渲染1000*1500大小的高度数据,怎么样生成纹理,然后渲染?
先谢谢各位了!

0

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2007-5-19 09:01:00 | 显示全部楼层

Re:关于OpenGL的纹理

纹理的原始大小并不影响你使用它时拉伸的大小
你渲染1000*1500的heightmap,用多大尺寸的纹理都可以

32

主题

108

帖子

108

积分

注册会员

Rank: 2

积分
108
 楼主| 发表于 2007-5-19 10:48:00 | 显示全部楼层

Re: Re:关于OpenGL的纹理

琴弦上的熊: Re:关于OpenGL的纹理

纹理的原始大小并不影响你使用它时拉伸的大小
你渲染1000*1500的heightmap,用多大尺寸的纹理都可以

我想根据地貌特征生成纹理,然后将纹理盖在地形上。这样好象多大的地形就要多大的纹理啊.

0

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2007-5-19 16:56:00 | 显示全部楼层

Re:关于OpenGL的纹理

可以在内存中 resize 一下纹理(自己写或是用FreeImage这样的库都可以),也可以生成图形文件,再用 photoshop 这样的工具 resize

刚查了一下 FreeImage 库,里面有 FreeImage_Rescale() 这个函数可以帮你调整图像的尺寸

32

主题

108

帖子

108

积分

注册会员

Rank: 2

积分
108
 楼主| 发表于 2007-5-20 10:48:00 | 显示全部楼层

Re: Re:关于OpenGL的纹理

琴弦上的熊: Re:关于OpenGL的纹理

可以在内存中 resize 一下纹理(自己写或是用FreeImage这样的库都可以),也可以生成图形文件,再用 photos...

这样好象会有失真吧.比如1500*1000的地形,我已经根据地貌生成了1500*1000的"纹理",我想要是能够把这1500*1000的"纹理"直接盖在1500*1000的地形上就不会有失真.但是如果用photoshop把1500*1000的"纹理"resize成512*512, 在覆盖在1500*1000的地形上,会有很大的失真吧

0

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2007-5-20 12:06:00 | 显示全部楼层

Re:关于OpenGL的纹理

这种失真是像素细节上的失真,发生在由大向小resize的时候,会丢失一些像素细节  ( 1500*1000 -> 512*512 )
这时假如你应用到的表面尺寸是 512 * 512 就会有失真
但如果应用于 1500 * 1000 的表面时不会发生扭曲
因为在你 glTexCoord() 时会被拉伸回你生成纹理时的尺寸  ( 512*512 -> 1500*1000 )
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 10:42

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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