游戏开发论坛

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

先定义100*100个顶点,然后再用这些点渲染一个面?

[复制链接]

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2008-1-21 15:52:00 | 显示全部楼层 |阅读模式
地形渲染,
想先定义65*65个点的高度,
再用这些高度来渲染凹凸不平的地面。
怎么写代码呢?

定义高度要怎么定义呢?
float height[65][65]
可以吗?

然后要用 glVertex3fv()来渲染吗?

1

主题

24

帖子

24

积分

注册会员

Rank: 2

积分
24
发表于 2008-1-22 19:27:00 | 显示全部楼层

Re:先定义100*100个顶点,然后再用这些点渲染一个面?

要自己定义这么多个点多费力啊.一般都是用rand()高度的.就是glVertex3f()的那个y值.
然后你在搞个循环来glBegin(GL_TRIANGLE_STRIP)了,或者顶点数组先保存顶点的值了用glDrawElements()了.

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
 楼主| 发表于 2008-1-23 11:46:00 | 显示全部楼层

Re: Re:先定义100*100个顶点,然后再用这些点渲染一个面?

ever_more: Re:先定义100*100个顶点,然后再用这些点渲染一个面?

要自己定义这么多个点多费力啊.一般都是用rand()高度的.就是glVertex3f()的那个y值.
然后你在搞个循环来gl...

会有问题的吧?
如果直接用
glVertex3f(x,rand(),z)那么地面是变化着的。。。

rand()只能在初始化的时候用。

可是问题就来了。
如何把这些保存起来?
然后如何渲染?

保存用 p[x]=x;p[y]=rand();p[z]=z这样?
渲染用 glVertex3fv(这里写什么?)

18

主题

971

帖子

982

积分

高级会员

Rank: 4

积分
982
发表于 2008-1-23 14:34:00 | 显示全部楼层

Re:先定义100*100个顶点,然后再用这些点渲染一个面?

把地形生成和渲染数据分开吧..高效一些

3

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2008-1-23 14:53:00 | 显示全部楼层

Re:先定义100*100个顶点,然后再用这些点渲染一个面?

定义点可以在文件中,渲染时直接读取就可以了

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
 楼主| 发表于 2008-1-23 17:31:00 | 显示全部楼层

Re: Re:先定义100*100个顶点,然后再用这些点渲染一个面?

zhzlhx: Re:先定义100*100个顶点,然后再用这些点渲染一个面?

定义点可以在文件中,渲染时直接读取就可以了

问题又来了。

如果我把数据保存到文件 A 中了。
格式是:
X,Y,Z
X,Y,Z
...

然后读取时应该怎么处理?该用数组吗?
float x[100]
float y[100]
float z[100]
然后传数据?
如果X,Y,Z是分开的,那用什么渲染?
用 glVertex3fv(写什么?)吗?
还是 glVertex3f()?这样会出错吧?

1

主题

24

帖子

24

积分

注册会员

Rank: 2

积分
24
发表于 2008-1-23 20:19:00 | 显示全部楼层

Re: Re: Re:先定义100*100个顶点,然后再用这些点渲染一个面?

snhun: Re: Re:先定义100*100个顶点,然后再用这些点渲染一个面?


问题又来了。

如果我把数据保存到文件 A 中了。
格式是:
X,Y,Z
X,Y,Z
...

然后读取时应该...

你可以定义一个结构如
struct Vertex3{
GLfloat x;
GLfloat y;
GLfloat z;
};
然后用fopen()打开文件,然后用
for (i=0;i<NUM;i++){
    fscanf();
     ...
}这样一个一个的读出来
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-19 21:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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