簡體   English   中英

OPENGL 無法正確設置燈光。 應該通過菜單切換到不同的colors

[英]OPENGL Can't setup the light properly. It should be switched to different colors by menu

如何更改燈光可以改變顏色的代碼?

當我嘗試改變顏色時,它會改變但不是以正確的方式。 例如,當我選擇黃色時,它會變為紫色; 選擇綠色設置淺藍色。

這是我所擁有的:

void initZeroLight()
{
    glEnable(GL_DEPTH_TEST);
    glEnable(GL_COLOR_MATERIAL);
    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);

    GLfloat light_ambient[] = { 0.5, 0.5, 0.5, 1.0 };
    GLfloat light_diffuse[] = { red, blue, green, 1.0 };
    GLfloat light_specular[] = { 1.0, 1.0, 1.0, 1.0 };
    GLfloat light_position[] = { 9.0, .0, 1.0, 1.0 };
    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);
}

void initFirstLight()
{
    glEnable(GL_DEPTH_TEST);
    glEnable(GL_COLOR_MATERIAL);
    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT1);

    GLfloat light_ambient[] = { 0.5, 0.5, 0.5, 1.0 };
    GLfloat light_diffuse[] = { red, green, blue, 1.0 };
    GLfloat light_specular[] = { 1.0, 1.0, 1.0, 1.0 };
    GLfloat light_position[] = { 1.0, 0.0, 1.0, 1.0 };
    GLfloat light_dirrection[] = { 1.0, 1.0, 1.0, 1.0 };
    glLightfv(GL_LIGHT1, GL_AMBIENT, light_ambient);
    glLightfv(GL_LIGHT1, GL_DIFFUSE, light_diffuse);
    glLightfv(GL_LIGHT1, GL_SPECULAR, light_specular);
    glLightfv(GL_LIGHT1, GL_POSITION, light_position);
    glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION, light_dirrection);
}

void Yellow()
{
    red = 1;
    green = 1;
    blue = 0;
    GLfloat light_diffuse[] = { red, blue, green, 1.0 };
    glLightfv(GL_LIGHT1, GL_DIFFUSE, light_diffuse);
}

void Green()
{
    red = 0;
    green = 1;
    blue = 0;
    GLfloat light_diffuse[] = { red, blue, green, 1.0 };
    glLightfv(GL_LIGHT1, GL_DIFFUSE, light_diffuse);
}

我構建時的場景:

在此處輸入圖像描述

 GLfloat light_diffuse[] = { red, blue, green, 1.0 };

不,這不是 RGBA 的意思。 您在這段代碼中至少在 3 個不同的地方交換了藍色和綠色......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM