gpt4 book ai didi

c++ - OpenGL + GLUT 聚光灯

转载 作者:行者123 更新时间:2023-11-28 02:40:53 25 4
gpt4 key购买 nike

我在创建漂亮的聚光灯时遇到了一些麻烦。到目前为止,我的光照属性是这样的:

    /* Spot light */
glEnable(GL_LIGHT1);
GLfloat ambientColor[] = {0.0f, 0.0f, 0.0f, 1.0f};
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambientColor);

//Light
GLfloat lightColor0[] = {0.7f, 0.7f, 0.7f,0.0f};
GLfloat lightPos0[] = {0.0f, 3.0f, 0.8f, 0.0};
glLightfv(GL_LIGHT1, GL_SPECULAR, lightColor0);
glLightfv(GL_LIGHT1, GL_DIFFUSE, lightColor0);
glLightfv(GL_LIGHT1, GL_POSITION, lightPos0);

glLightf(GL_LIGHT1, GL_SPOT_CUTOFF, 15.0);
GLfloat spot_direction[] = { 0.0, -1.0, 0.0 };
glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION, spot_direction);
glLightf(GL_LIGHT1, GL_CONSTANT_ATTENUATION, 1.0);
glLightf(GL_LIGHT1, GL_SPOT_EXPONENT, 2.0);

我得到了某种“聚光灯”……至少,它位于我的场景上方并照在物体上,但它不是(据我所知)以圆锥形出现某种方式。
这是我要创建的场景

Target Scene

这就是我到目前为止所得到的Result so far
我知道我的纹理也有点问题,如果有人也能帮忙解决这个问题,那就太好了!

最佳答案

你的解决方案就在这里

C++ Opengl - lighting using spotlight

您需要位置变量的最后一个值为 1.0 才能使灯光成为聚光灯。

关于c++ - OpenGL + GLUT 聚光灯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26032332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com