JBTALKS.CC
标题:
GLUT 有人会吗? light position 问题.
[打印本页]
作者:
~Zero
时间:
2009-10-19 02:33 PM
标题:
GLUT 有人会吗? light position 问题.
OpenGL 的 GLUT 有人会吗?
我的问题是, lightsource 都是 relative to eye 的, 有什么办法可以弄到 light source 是固定在 scene 里面的吗?
下面是 C code, 不过我都只是用到 GLUT 的 API 而已, C++ programmer 应该也看得懂.
static void resize(......) {
......
......
gluLookAt (4.0, 5.0, 10.0,
0.0, 2.5, 0.0,
0.0, 1.0, 0.0);
/* 第一行是 eye position x, y, z,
第二行是 look at position x, y, z
第三行是 物体 up vector*/
}
const GLfloat light_position[] = { 0.0f, 0.0f, 1.0f, 1.0f };
int main(......) {
......
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHTING);
......
glutMainLoop();
}
复制代码
以这样的 light position 来放, light source 永远都是在 eye 前面,
如果我把 eye position 换去别的地方, light source 也跟着一起走了.
我想把 light source 固定在场景里面, 例如一个桌灯,
当 eye position 改掉了的时候, light source 也还是固定在同样的地方.
我现在是要把两个 key (左跟右) bind 成 rotate scene, 有两个方法,
一个方法是 rotate eye 的位置, 这样的话 light source 会跟着眼睛跑;
另一个是方法 rotate 整个 scene, 这样的话 light source 会固定 relative to eye position, 场景换了 light source 没换.
有什么方法吗?
欢迎光临 JBTALKS.CC (https://www.jbtalks.cc/)
Powered by Discuz! X2.5