gpt4 book ai didi

c++ - OpenGL光照

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

我试图找出如何在 OpenGL 中使用光照引擎。我的目标是模拟相机方向的手电筒。

gluLookAt(  x, y, z,
x+lx, y+ly, z+lz,
0.0f, 1.0f, 0.0f);
GLfloat light_position[] = { x+1, y, z+1, 0.0f };
GLfloat light_direction[] = { x+lx,y+ly,z+lz};
GLfloat light_angle[] ={20};
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION,light_direction);
glLightfv(GL_LIGHT0,GL_SPOT_CUTOFF,light_angle);

但是当我执行它时,只显示少量的环境光,完全不像一个方向的光束。我做错了什么?

最佳答案

OpenGL 灯不绘制“光束”,它们只绘制 affect how geometry is lit .

可见的“光束”(就像您在浓雾或薄云等浓密空气中看到强定向光时所看到的)通常被称为“光轴”。这是您希望看到的效果吗?

http://developer.amd.com/media/gpu_assets/Mitchell_LightShafts.pdf


另请记住,旧的 OpenGL 1 照明模型是逐顶点的。如果您将光线照射到平面上,那么要么……

  • segmentation 表面以具有足够的顶点以使光的形状清晰可见,
  • 在着色器中实现逐像素着色。

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

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