游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1274|回复: 1

关于nehe教程的一个问题,请大虾帮助解惑

[复制链接]

1

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2006-3-20 17:21:00 | 显示全部楼层 |阅读模式
我是一个opengl的初学者,看到了nehe教程的第九课,其中有这样一段代码
for (loop=0; loop<num; loop++)                                                // Loop Through All The Stars
        {
                glLoadIdentity();                                                                // Reset The View Before We Draw Each Star
                glTranslatef(0.0f,0.0f,zoom);                                        // Zoom Into The Screen (Using The Value In 'zoom')
                glRotatef(tilt,1.0f,0.0f,0.0f);                                        // Tilt The View (Using The Value In 'tilt')
                glRotatef(star[loop].angle,0.0f,1.0f,0.0f);                // Rotate To The Current Stars Angle
                glTranslatef(star[loop].dist,0.0f,0.0f);                // Move Forward On The X Plane
                glRotatef(-star[loop].angle,0.0f,1.0f,0.0f);        // Cancel The Current Stars Angle
                glRotatef(-tilt,1.0f,0.0f,0.0f);                                // Cancel The Screen Tilt
               
                if (twinkle)
。。。。。。。。

glRotatef(tilt,1.0f,0.0f,0.0f);glRotatef(star[loop].angle,0.0f,1.0f,0.0f);这两句话意思是场景先绕x轴旋转90度,然后在y轴上旋转星星的角度,然后是把星星绕y轴来旋转。那为什么不能
直接绕z轴旋转呢。。。我试验了一下
for (loop=0; loop<num; loop++)                                                // Loop Through All The Stars
        {
                glLoadIdentity();                                                                // Reset The View Before We Draw Each Star
                glTranslatef(0.0f,0.0f,zoom);                                        // Zoom Into The Screen (Using The Value In 'zoom')
                glRotatef(star[loop].angle,0.0f,0.0f,1.0f);                // Rotate To The Current Stars Angle
                glTranslatef(star[loop].dist,0.0f,0.0f);                // Move Forward On The X Plane               
                if (twinkle)
.............
这样的话,执行程序的情况和上面代码是一样的,但是教程上面为什么采用了第一种方法呢??是不是有什么玄机呢?请各位大虾帮忙解惑.......谢谢了

1

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2006-3-20 18:18:00 | 显示全部楼层

Re: 关于nehe教程的一个问题,请大虾帮助解惑

明白了,
那些代码主要是为了保证场景转动中星星永远面朝观察者....
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-23 23:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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