游戏开发论坛

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

我用OPENGL画了一个地图,在把一个房子放上去,可是?

[复制链接]

11

主题

17

帖子

23

积分

注册会员

Rank: 2

积分
23
发表于 2004-9-21 19:22:00 | 显示全部楼层 |阅读模式
我用OPENGL画了一个地图,在把一个房子放上去,可是我房子放上了,地图没有了,为什么?

29

主题

421

帖子

436

积分

中级会员

Rank: 3Rank: 3

积分
436
发表于 2004-9-21 23:40:00 | 显示全部楼层

Re: 我用OPENGL画了一个地图,在把一个房子放上去,可是我

弓虽。
丁页。
海市蜃楼的特效,你是怎么做到的阿。

18

主题

579

帖子

583

积分

高级会员

Rank: 4

积分
583
发表于 2004-9-22 09:14:00 | 显示全部楼层

Re:我用OPENGL画了一个地图,在把一个房子放上去,可是?

来段程序看看啊。嘿嘿

2

主题

30

帖子

30

积分

注册会员

Rank: 2

积分
30
发表于 2004-9-22 14:28:00 | 显示全部楼层

Re:我用OPENGL画了一个地图,在把一个房子放上去,可是?

好几天没来,别人没看到,dkxw还在四处灌水~

11

主题

17

帖子

23

积分

注册会员

Rank: 2

积分
23
 楼主| 发表于 2004-9-22 14:46:00 | 显示全部楼层

Re:我用OPENGL画了一个地图,在把一个房子放上去,可是?

void COpenGL::InitGL(GLvoid)
{

        int stop=0;
        angle=0;
        GLfloat light_ambient[] = {0.0, 0.0, 0.0, 1.0};
        GLfloat light_diffuse[] = {1.0, 1.0, 1.0, 1.0};
        GLfloat light_specular[] = {1.0, 1.0, 1.0, 1.0};
        GLfloat light_position[] = {0.0, -100.0, -100.0, 0.0};

        glClearColor(0, 0, 0, 0);
        glColor3f(1, 1, 1);
       
        g.SetCellLength(40);                        // 网格之间的长度
        g.SetDimensions(50,50);
        g.SetHeight(0, 20);                                // 地形高程的最小和最大值
        g.GenerateNewGrid();                        // 生成新的地形
        g.SetInterpolationLevel(3);                // 曲线插值阶数
        g.Compile();
        glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);

        glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
        glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
        glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
        glLightfv(GL_LIGHT0, GL_POSITION, light_position);

        glEnable(GL_LIGHT0);
        glDepthFunc(GL_LESS);

        glEnable(GL_DEPTH_TEST);
        glEnable(GL_LIGHTING);                        // 使用光照
        glEnable(GL_NORMALIZE);
        glShadeModel(GL_FLAT);

        glCullFace(GL_FRONT);
        glEnable(GL_CULL_FACE);

        if (!LoadGLTextures())                                                                // Jump To Texture Loading Routine ( NEW )
        {
                return;                                                                        // If Texture Didn't Load Return FALSE
        }
        glEnable(GL_TEXTURE_2D); // 启用纹理映射( 新增 )
glShadeModel(GL_SMOOTH); // 启用阴影平滑
glClearColor(0.0f, 0.0f, 0.0f, 0.5f); // 黑色背景
glClearDepth(1.0f); // 设置深度缓存
glEnable(GL_DEPTH_TEST); // 启用深度测试
glDepthFunc(GL_LEQUAL); // 所作深度测试的类型
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // 真正精细的

Model = GL3DS_initialize_HUBBLE();
        if (Model == -1)
        {
                printf("Error initializing display list\n");
                exit (-1);
        }
}

void COpenGL::RenderScene()
{
                glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glLoadIdentity();
        gluLookAt(100, 300, 100, 0, 0, 0, 0, 1, 0);
        glPushMatrix();       
        glRotatef(40, 0, 1, 0);
        glRotatef(90, 1, 0, 0);
        glTranslatef(-1000, -1000, 0);
        angle += 1;
        if (angle > 359)
                angle = 0;
        g.Draw();
glPopMatrix();      
glLoadIdentity();
        glPushMatrix();
        glTranslatef( 0.0, 0.0, -200.0 );
//        glCallList(2);
        // 绘制地形
glPopMatrix();
        glFlush();  
        ::SwapBuffers(hdc);                //交互缓冲区
}

18

主题

579

帖子

583

积分

高级会员

Rank: 4

积分
583
发表于 2004-9-22 17:12:00 | 显示全部楼层

Re:我用OPENGL画了一个地图,在把一个房子放上去,可是?

嘿嘿,多谢饮水机兄弟关注,小弟前几天发烧,刚回来。。。

18

主题

579

帖子

583

积分

高级会员

Rank: 4

积分
583
发表于 2004-9-22 17:15:00 | 显示全部楼层

Re:我用OPENGL画了一个地图,在把一个房子放上去,可是?

在渲染地形之前gluLookAt(100, 300, 100, 0, 0, 0, 0, 1, 0);那gluLookAt岂不是没有用了啊?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-18 17:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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