游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2726|回复: 6

请教大家一个关于室外地形高度图的问题,很小的高度图

[复制链接]

39

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
发表于 2005-11-3 18:21:00 | 显示全部楼层 |阅读模式
我做了一个室外地形的渲染,面积是513X513,也就是长和宽各是513个顶点。高度图我用的raw格式的灰度图,大小也是513X513. 这样正好高度图中每个像素的数值就和每个顶点的数值一一对应了,读取起来很容易的。


但是,我最近把地形扩大到4097X4097了,而高度图用photoshop也扩大到4097后,文件足有好几十M,这样肯定不行,太大了。我发现商业游戏的地形都是用一张很小的高度图来保存地形的高度。我估计是读取了这张小图后又经过了一定的计算得到真正的大地形的高度数据,但我试了好些天都不行。

请教对地形渲染了解的高手,希望能告知怎样才能处理这种情况。

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2005-11-3 18:27:00 | 显示全部楼层

Re:请教大家一个关于室外地形高度图的问题,很小的高度

插值

197

主题

1041

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
QQ
发表于 2005-11-3 18:39:00 | 显示全部楼层

Re:请教大家一个关于室外地形高度图的问题,很小的高度

xy+height做terrain是趋势。。。~~

这样做需要很庞大的底层数据来处理height~难点不在于对height作的多线程矩阵计算~在于纹理贴图~我用的面贴~组小图~~~还有就是自定义height类型~要在设计之前算好~建议全用3维数组~不然垂直地形上不好做纹理~~不要只考虑平面地形嘛~嘿嘿~

1

主题

8

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2005-11-3 19:50:00 | 显示全部楼层

Re:请教大家一个关于室外地形高度图的问题,很小的高度

试下矢量存储。
记录每个关键点。如 (x,y)H
H是高度,xy是坐标。
所有高点中间采用平滑过度。

0

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2005-11-4 13:59:00 | 显示全部楼层

Re:请教大家一个关于室外地形高度图的问题,很小的高度

4097X4097 所需要绘制的网格如果你都能处理的过来, 16M的内存不算什么吧!
游戏中的地形范围较小,用一张小图,然后再平滑插值应该是没问题的!

你说的不行究竟是什么?高度图太大,网格太多,高度插值后引起高度误差!!

39

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
 楼主| 发表于 2005-11-4 22:09:00 | 显示全部楼层

Re:请教大家一个关于室外地形高度图的问题,很小的高度

4097X4097 所需要绘制的网格如果你都能处理的过来, 16M的内存不算什么吧!
游戏中的地形范围较小,用一张小图,然后再平滑插值应该是没问题的!

你说的不行究竟是什么?高度图太大,网格太多,高度插值后引起高度误差!!
------------------------------------

程序运行起来一点问题也没有,很好的,都很好。我指的不行就是高度图所占的空间太大,有好几十兆,你想想,长宽是4097*4097像素的灰度图,每个像素占1个字节,这样高度图就有32M左右,如果地图再大一倍扩展到8193*8193,高度图这个图片就有64M。哪有一个地形高度图就好几十兆的!

我看到一些游戏高度图很小,128X128像素或是256x56像素,就能作为一个很大地形的高度图。我觉的肯定是读入这个小图之后进行差值运算了,但具体怎么插值啊?公式我不知道,所以求教大家。

0

主题

53

帖子

53

积分

注册会员

Rank: 2

积分
53
发表于 2005-11-5 01:00:00 | 显示全部楼层

Re:请教大家一个关于室外地形高度图的问题,很小的高度

很明显灰度图上的数值你能用到的只有是很少一部分~~读入后再转存好了~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 12:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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