gpt4 book ai didi

c++ - 在opengl中创建路灯

转载 作者:行者123 更新时间:2023-11-30 04:30:33 24 4
gpt4 key购买 nike

我正在尝试使用 C++ 在 opengl 中的环境框中创建路灯。我需要为此创建聚光灯,我已经编写了下面的代码,但它不能用作聚光灯。我做错了什么,或者您对我的问题有任何其他解决方案吗?

GLfloat ambientLight[] = {0.7f, 0.2f, 0.2f, 1.0f};
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambientLight);
GLfloat directedLight[] = {0.7f, 0.7f, 0.7f, 1.0f};
GLfloat directedLightPos[] = {-10.0f, 15.0f, 20.0f, 0.0f};
glLightfv(GL_LIGHT0, GL_DIFFUSE, directedLight);
glLightfv(GL_LIGHT0, GL_POSITION, directedLightPos);

谢谢。

最佳答案

如果这是你所有的灯代码,你就遗漏了一些重要的行。您只需定义环境光/漫射光颜色和光位置。

  • 您需要启用光照:glEnable(GL_LIGHTING)
  • 您需要启用您正在使用的灯:例如:glEnable(GL_LIGHT0)
  • 我不确定,但我认为您还需要定义一种 Material ( glMaterial )。
  • 您需要定义光的方向:glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, direction);

另外两个注意事项:

  • 确保法 vector 设置正确,否则看不到结果
  • 如果我没记错的话,固定功能光照仅适用于顶点而不适用于像素。因此,如果您在单个四边形上方有一个光源,您将看不到任何光点。

关于c++ - 在opengl中创建路灯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8636589/

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