OpenGL 光源投影效果实现
在计算机图形学中,光源投影是一个非常重要的概念。通过模拟光线的投射,可以让场景更加真实,表现出更加逼真的阴影效果。在 OpenGL 中,我们可以通过使用光源投影技术,来实现不同类型的投射效果。
在这里,我们将会介绍三种不同的光源投影实现:点光源投影、平行光源投影和聚光灯投影。下面是一个简单的三种投影技术的代码实现:
//点光源投影
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(cameraPosition.x, cameraPosition.y, cameraPosition.z,
cameraTarget.x, cameraTarget.y, cameraTarget.z,
cameraUpVector.x, cameraUpVector.y, cameraUpVector.z);
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
GLfloat lightPosition[] = {lightPositionX, lightPositionY, lightPositionZ, 1.0f};
glLightfv(GL_LIGHT0, GL_POSITION, lightPosition);
glTranslatef(objectPositionX, objectPositionY, objectPositionZ);
// 绘制物体
//平行光