游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2258|回复: 4

对灯光的坐标困惑!!

[复制链接]

6

主题

22

帖子

22

积分

注册会员

Rank: 2

积分
22
QQ
发表于 2010-7-6 22:33:00 | 显示全部楼层 |阅读模式
小弟初学OpenGL
一直没弄明白灯光的坐标问题
我用glut在原点画了个圆
然后把摄像机推到了z轴3的位置
设置了一个灯光 位置是z轴2
不是应该从屏幕看灯光是从摄像机的方向照过来的吗?。。怎么却是从背后  = =?
把灯光的z轴位置改成负数才和摄像机一个方向 为啥? 不解。。

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2010-7-7 13:32:00 | 显示全部楼层

Re: 对灯光的坐标困惑!!

zero龙: 对灯光的坐标困惑!!
我用glut在原点画了个圆
然后把摄像机推到了z轴3的位置
设置了一个灯光 位置是z轴2

先把摄像机推到了z轴3的位置
然后设置了一个灯光 位置是z轴2
最后在原点画个球

6

主题

22

帖子

22

积分

注册会员

Rank: 2

积分
22
QQ
 楼主| 发表于 2010-7-7 14:59:00 | 显示全部楼层

Re:对灯光的坐标困惑!!

这样? 还是一样呢 灯光z要设置成负的才在正面 [em7]

//初始化代码
    glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    glEnable(GL_DEPTH_TEST);
    glEnable(GL_LIGHTING);
    glShadeModel(GL_SMOOTH);
    glEnable(GL_MULTISAMPLE);
   
    glViewport(0, 0, WINDOW_WIDTH, WINDOW_HEIGHT);
   
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(40.0, WINDOW_WIDTH / WINDOW_HEIGHT, 1.0, 100.0);
   
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    gluLookAt(0.0, 0.0, 3.0,
              0.0, 0.0, 0.0,
              0.0, 1.0, 0.0);
   
    GLfloat light0_pos[] = {0.0f, 0.0f, -2.0f, 0.0f};
    GLfloat light0_diffuse[] = {0.4f, 0.4f, 0.4f, 1.0f};
   
    glLightfv(GL_LIGHT0, GL_POSITION, light0_pos);
    glLightfv(GL_LIGHT0, GL_DIFFUSE, light0_diffuse);
   
    glEnable(GL_LIGHT0);
   


//渲染代码
    glClear(GL_COLOR_BUFFER_BIT);
    glutSolidSphere(1.0, 100, 100);
    glFlush();

6

主题

22

帖子

22

积分

注册会员

Rank: 2

积分
22
QQ
 楼主| 发表于 2010-7-7 15:30:00 | 显示全部楼层

Re:对灯光的坐标困惑!!

那啥偶找到问题了  = = 但原因不解啊!!
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);
改成了
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);
就好了。。。深度测试和灯光又关系???

6

主题

22

帖子

22

积分

注册会员

Rank: 2

积分
22
QQ
 楼主| 发表于 2010-7-7 15:35:00 | 显示全部楼层

Re:对灯光的坐标困惑!!

还有用GLUT_DOUBLE圆上面很多孔 0 0?着咋回事
GLUT_SINGLE就没问题 而且用GLUT_DOUBLE 把glFlush()改成glutSwapBuffers()
圆闪下就没了= = ???
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-8 10:20

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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