游戏开发论坛

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

请教一个关于地形漫游的问题

[复制链接]

24

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
发表于 2005-5-10 20:43:00 | 显示全部楼层 |阅读模式
我在看<<学OpenGL编3D游戏_CAI\A05_开天辟地>>里面的地形漫游程序,

他里面有个函数是用来根据x,和z值取得高度的,这样就可以漫游了.

基本算法就是根据周围的4个点,插值得到.

float baiscobj::GetHeight(float x, float z)
{         float CameraX = x/MAP_SCALE;
        float CameraZ =-z/MAP_SCALE;  
        int Col0 = int(CameraX);  
        int Row0 = int(CameraZ);
        int Col1 = Col0 + 1;
        int Row1 = Row0 + 1;
        if (Col1 > MAP_W)        Col1 = 0;
        if (Row1 > MAP_W)        Row1 = 0;
        float h00=g_terrain[Col0 + Row0*MAP_W][1];
        float h01=g_terrain[Col1 + Row0*MAP_W][1];
        float h11=g_terrain[Col1 + Row1*MAP_W][1];
        float h10=g_terrain[Col0 + Row1*MAP_W][1];
        float tx =CameraX - int(CameraX);
        float ty =CameraZ - int(CameraZ);
        float txty = tx * ty;
       
        return h00*(1.0f-ty-tx+txty)
                        + h01*(tx-txty)
                        + h11*txty
                        + h10*(ty-txty);                                
       
}

h00,h01,h11,h10,是周围4个点的高度,tx,ty是离h00的x,y的值.我不明白

return h00*(1.0f-ty-tx+txty)
        + h01*(tx-txty)
        + h11*txty
        + h10*(ty-txty);
这个公式是如果推导出来的,请高手指点

                       


24

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
 楼主| 发表于 2005-5-10 21:20:00 | 显示全部楼层

Re:请教一个关于地形漫游的问题

明白了,按照面积来分,一个矩形中的一点,把矩形分成4个小矩形(根据这点画一条垂线和水平线),然后每个点的权重是其中一个矩形的面积.

8

主题

65

帖子

65

积分

注册会员

Rank: 2

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

Re:请教一个关于地形漫游的问题

好象在改变地形的大小之后就产生问题了,不知道你有没有尝试过将InitTerrain()函数中的控制x,z方向上大小的n改变一下,这样地形面积是变大了,但是产生的问题是GetHeight()函数好象也同时需要修改了,否则就不能在漫游的时候获得地形的正确高度,请问这个如何修改啊?
g_terrain [Vertex][0] =  float(x)*MAP_SCALE*n;
g_terrain [Vertex][2] = -float(z)*MAP_SCALE*n;

24

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
 楼主| 发表于 2005-5-11 12:27:00 | 显示全部楼层

Re:请教一个关于地形漫游的问题

直接把MAP_SCALE 变大或减小就可以,

#define MAP_SCALE   16.0f
或者
#define MAP_SCALE   8.0f
你这样做,getheigth也要相对的除以MAP_SCALE*n,没必要.

1

主题

2

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2005-5-11 15:26:00 | 显示全部楼层

Re:请教一个关于地形漫游的问题

楼主QQ多少?我想加你,这个地形我看了N久,算法看不懂啊

24

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
 楼主| 发表于 2005-5-11 17:49:00 | 显示全部楼层

Re:请教一个关于地形漫游的问题

36757049,我也初学啊,写了几个简单的地形了,网上资料还是很多的

8

主题

65

帖子

65

积分

注册会员

Rank: 2

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

Re:请教一个关于地形漫游的问题

这样会改变全局的,我所要求的是只在地形里发生变化,如果这个变了,其他使用这个参数的地方也会发生改变,而我不需要其他的也改变

8

主题

65

帖子

65

积分

注册会员

Rank: 2

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

Re:请教一个关于地形漫游的问题

我再尝试尝试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-25 15:18

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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