游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1557|回复: 2

求教 2个光源怎样使用

[复制链接]

4

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2006-4-17 13:01:00 | 显示全部楼层 |阅读模式
我建立了2个光源如下
GLfloat LightAmbient[]= { 0.8f, 0.8f, 0.0f, 1.0f };      //环境光参数
GLfloat LightDiffuse[]= { 0.8f, 0.8f, 0.0f, 1.0f };      //漫射光参数
GLfloat LightSpecular[]= { 1.0f, 1.0f, 1.0f, 1.0f };     //镜面反射光参数
GLfloat LightPosition[]= { 00.0f, 9.0f,-1000.0f, 1.0f};  //光源位置
glLightfv(GL_LIGHT0, GL_AMBIENT, LightAmbient);          //设置环境光
glLightfv(GL_LIGHT0, GL_DIFFUSE, LightDiffuse);          //设置漫射光
glLightfv(GL_LIGHT0, GL_POSITION,LightPosition);         //设置光源位置

GLfloat LightAmbient1[]= { 0.1f, 0.1f, 0.1f, 0.1f };     //环境光参数
GLfloat LightDiffuse1[]= { 0.1f, 0.1f, 0.1f, 0.1f };     //漫射光参数
GLfloat LightPosition1[]= { 00.0f, 9.0f,1000.0f, 1.0f }; //光源位置
glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient);          //设置环境光
glLightfv(GL_LIGHT1, GL_DIFFUSE, LightDiffuse);          //设置漫射光
glLightfv(GL_LIGHT1, GL_POSITION,LightPosition);         //设置光源位置

然后每次绘制的时候有如下判断,按输入起用某个光源
if(m_bDay)
{
    glDisable(GL_LIGHT1);
    glDisable(GL_LIGHTING);
    glEnable(GL_LIGHT0); // 启用光源
    glEnable(GL_LIGHTING);
}
else
{
    glDisable(GL_LIGHT0);
    glDisable(GL_LIGHTING);
    glEnable(GL_LIGHT1); // 启用光源
    glEnable(GL_LIGHTING);
}
但是无论m_bDay的输入如何,都是GL_LIGHT0在起作用,呵,就是那个偏黄色的光在照。
请问,我这样 “定义光源”、“使用光源”有错误的地方吗?
         错误在哪呢?
         有更好的方法用2个光源吗?
先谢谢了!

4

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2006-4-17 14:33:00 | 显示全部楼层

Re:求教 2个光源怎样使用

啊,不好意思,写错了,设置LIGHT1的时候还是用了LIGHT0的数据

4

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2006-5-29 13:17:00 | 显示全部楼层

Re:求教 2个光源怎样使用

对啊,你把第一个光源的参数继续用在了第二个光源上面。两个光源一模一样的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 15:31

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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