游戏开发论坛

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

地形渲染中,怎么样高效率的渲染一个高度数据块?

[复制链接]

32

主题

108

帖子

108

积分

注册会员

Rank: 2

积分
108
发表于 2007-6-19 15:57:00 | 显示全部楼层 |阅读模式
    地形渲染中,怎么样高效率的渲染一个高度数据块?
    比如从一个raw文件中读出高度数据,存放在数组 pBuf[nWidth * nHeight] 中,采用GL_TRIANGLE_STRIP的方式渲染,代码如下:
for(int i = 0; i < nHeight; i++)
{
  glBegin(GL_TRIANGLE_STRIP);
  for(int j = 0; j < nWidth; j++)
  {
    glTexCoord2f(...);
    glVertex3f(...);
   
    glTexCoord2f(...);
    glVertex3f(...);

  }
  glEnd();
}
    采用glBegin()\glEnd()效率不高,应该采用顶点数组的方式渲染。哪位同志能给出代码,3Q!(已知高度数据 pBuf[nWidth * nHeight])

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-6-19 23:00:00 | 显示全部楼层

Re:地形渲染中,怎么样高效率的渲染一个高度数据块?

glBegin()\glEnd()效率不高?

不用glBegin()\glEnd()也能渲染吗?

11

主题

137

帖子

142

积分

注册会员

Rank: 2

积分
142
发表于 2007-6-20 14:54:00 | 显示全部楼层

Re:地形渲染中,怎么样高效率的渲染一个高度数据块?

你自己可以去翻看下中文版本的redbook中,第45页到56页的内容啊.那里不有写吗?

11

主题

137

帖子

142

积分

注册会员

Rank: 2

积分
142
发表于 2007-6-20 14:55:00 | 显示全部楼层

Re: Re:地形渲染中,怎么样高效率的渲染一个高度数据块?

snhun: Re:地形渲染中,怎么样高效率的渲染一个高度数据块?

glBegin()\glEnd()效率不高?

不用glBegin()\glEnd()也能渲染吗?

反正那个函数只用提供数据就行了.

13

主题

90

帖子

96

积分

注册会员

Rank: 2

积分
96
发表于 2007-6-20 23:20:00 | 显示全部楼层

Re:地形渲染中,怎么样高效率的渲染一个高度数据块?

为了速度,就用VBO(Vertex Buffer Object)吧

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-6-20 23:37:00 | 显示全部楼层

Re:地形渲染中,怎么样高效率的渲染一个高度数据块?

static GLint vertices[] = {
25, 25,
100, 325,
175, 25,
175, 325,
250, 25,
325, 325
};
static GLfloat colors[] = {
1.0, 0.2, 0.2,
0.2, 0.2, 1.0,
0.8, 1.0, 0.2,
0.75, 0.75, 0.75,
0.35, 0.35, 0.35,
0.5, 0.5, 0.5};

glEnableClientState (GL_COLOR_ARRAY);
glEnableClientState (GL_VERTEX_ARRAY);

glColorPointer (3, GL_FLOAT, 0, colors);
glVertexPointer (2, GL_INT, 0, vertices);

是这个例子吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 01:59

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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