Facebook Sharer
选择您要替换的背景颜色:
【农历新年】背景图片:
个性化设定
 注册  找回密码
查看: 1597|回复: 0
打印 上一主题 下一主题

GLUT 有人会吗? light position 问题.

[复制链接]

31

主题

0

好友

1228

积分

黄金长老

Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8

跳转到指定楼层
1#
发表于 2009-10-19 02:33 PM |只看该作者 |倒序浏览
OpenGL 的 GLUT 有人会吗?

我的问题是, lightsource 都是 relative to eye 的, 有什么办法可以弄到 light source 是固定在 scene 里面的吗?

下面是 C code, 不过我都只是用到 GLUT 的 API 而已, C++ programmer 应该也看得懂.
  1. static void resize(......) {
  2.       ......
  3.       ......
  4.       gluLookAt (4.0, 5.0, 10.0,
  5.                           0.0, 2.5, 0.0,
  6.                           0.0, 1.0, 0.0);
  7.        /* 第一行是 eye position x, y, z,
  8.           第二行是 look at position x, y, z
  9.           第三行是 物体 up vector*/
  10. }

  11. const GLfloat light_position[] = { 0.0f, 0.0f, 1.0f, 1.0f };

  12. int main(......) {
  13.       ......
  14.       glLightfv(GL_LIGHT0, GL_POSITION, light_position);
  15.       glEnable(GL_LIGHT0);
  16.       glEnable(GL_LIGHTING);
  17.       ......
  18.       glutMainLoop();
  19. }
复制代码


以这样的 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 没换.

有什么方法吗?




收藏收藏0
您需要登录后才可以回帖 登录 | 注册

JBTALKS.CC |联系我们 |隐私政策 |Share

GMT+8, 2024-10-26 05:20 AM , Processed in 0.113370 second(s), 26 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Ultra High-performance Dedicated Server powered by iCore Technology Sdn. Bhd.
Domain Registration | Web Hosting | Email Hosting | Forum Hosting | ECShop Hosting | Dedicated Server | Colocation Services
本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved
合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部