社区
游戏开发
帖子详情
关于opengl光源位置的问题,请高手给个例子说明
被现实颠覆的红烧肉
2007-04-09 04:20:36
我的程序使用了gluLookAt函数来指定视角,但是在程序一开始设置的光源位置也会随着这个视角来变化。很是郁闷!!!
有没有办法来固定光源位置,请各位高手指导指导!!!
给个例子说明一下吧,谢谢!!!
...全文
631
8
打赏
收藏
关于opengl光源位置的问题,请高手给个例子说明
我的程序使用了gluLookAt函数来指定视角,但是在程序一开始设置的光源位置也会随着这个视角来变化。很是郁闷!!! 有没有办法来固定光源位置,请各位高手指导指导!!! 给个例子说明一下吧,谢谢!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jamesclarke
2011-05-01
打赏
举报
回复
[Quote=引用 3 楼 zhangci226 的回复:]
如果你在使用模型变换之前设置了光源,也就是使用MODEL_VIEW之前设置光源的话,光源就是在相机坐标系里,接下来你改变模型位置,旋转模型什么的,就可以看光照到模型上阴影的变化。
如果MODEL_VIEW变换后设置光源,光源的位置就要受到模型变换矩阵的影响,这个时候你旋转模型,移动模型,光源的位置会随着一起变化,这样就看不到光照到模型上阴影的变化。
[/Quote]
说的没错。楼主所说的跟着视点动,是因为你设置光源的程序代码位置不对。
1、在每次绘制循环代码之外设置光源,是与视点相关的,因为它在视点坐标系中;
2、在每次绘制循环代码之内,也就是在对MODEL_VIEW进行设置后,并且在glLoadIndentity之后,glFlush或glSwap之前设置,光源就是与世界坐标系相关,它就固定在世界中了。
雅诺1
2011-04-25
打赏
举报
回复
glPushMatrix
peng_weida
2011-03-03
打赏
举报
回复
[Quote=引用 3 楼 zhangci226 的回复:]
如果你在使用模型变换之前设置了光源,也就是使用MODEL_VIEW之前设置光源的话,光源就是在相机坐标系里,接下来你改变模型位置,旋转模型什么的,就可以看光照到模型上阴影的变化。
如果MODEL_VIEW变换后设置光源,光源的位置就要受到模型变换矩阵的影响,这个时候你旋转模型,移动模型,光源的位置会随着一起变化,这样就看不到光照到模型上阴影的变化。
[/Quote]
学习了
caojianhua_nanjing
2011-03-03
打赏
举报
回复
[Quote=引用 3 楼 zhangci226 的回复:]
如果你在使用模型变换之前设置了光源,也就是使用MODEL_VIEW之前设置光源的话,光源就是在相机坐标系里,接下来你改变模型位置,旋转模型什么的,就可以看光照到模型上阴影的变化。
如果MODEL_VIEW变换后设置光源,光源的位置就要受到模型变换矩阵的影响,这个时候你旋转模型,移动模型,光源的位置会随着一起变化,这样就看不到光照到模型上阴影的变化。
[/Quote]
貌似行不通阿。。。还是会随着模型的旋转 光源位置也会跟着动
zombiecry
2009-12-19
打赏
举报
回复
光源的位置也会乘以当前模型视图矩阵,所以要想光源位置不变最好先指定光源位置再绘制物体。
张赐
2009-12-10
打赏
举报
回复
如果你在使用模型变换之前设置了光源,也就是使用MODEL_VIEW之前设置光源的话,光源就是在相机坐标系里,接下来你改变模型位置,旋转模型什么的,就可以看光照到模型上阴影的变化。
如果MODEL_VIEW变换后设置光源,光源的位置就要受到模型变换矩阵的影响,这个时候你旋转模型,移动模型,光源的位置会随着一起变化,这样就看不到光照到模型上阴影的变化。
liangyan86929
2009-12-10
打赏
举报
回复
设置了视点模型变换和投影视口变换后再调用glLoadIdentity();之后设置光源position
Enigmaya
2007-04-15
打赏
举报
回复
每次绘制的时候 重新设置position
opengl宝典,和红皮书都有说道这个问题。找本看看。
SharpGL学习笔记(十二)
光源
例子
:解决
光源
场景中的常见
问题
笔者学到
光源
这一节,遇到的
问题
就比较多了,收集了一些如下所述: (1) 导入的3ds模型,如果没有材质光照效果很奇怪.如下图 (2) 导入的3ds模型,有材质,灯光效果发暗,材质偏...
OpenGL
实现太阳系模型 —— Juwend
传说当下最流行的图形引擎有两套,其中之一就是Windows平台上最常用的DirectX(而且只能在Microsoft的平台上使用,可以看下百度百科关于DirectX的介绍),而另外一套则是
OpenGL
了,可以用于非常多的平台(可以参看...
OpenGL
使用矩阵堆栈glpushMatrix的原因
题外话:学习
OpenGL
有两个礼拜了,总结下才发现仅仅明白了其基本概念。光是GDI绘图中的窗口、视口以及设备环境的概念,就足足困扰我了一个礼拜,其实明白了只后发现一句话就描述清楚了,根本不像MSDN和google上讲的...
图形世界分裂的两派——理清Direct3D和
OpenGL
的脉络
API(Application Programming Interface)即“应用程序接口”是连接应用程序与操作系统、实现对计算机硬件控制的纽带,Direct3D和
OpenGL
是目前的两大3D图形 API,要在你的3D显卡上进行3D特效的制作、实现都必须通过...
【转】
OpenGL
实现太阳系模型
传说当下最流行的图形引擎有两套,其中之一就是Windows平台上最常用的DirectX(而且只能在Microsoft的平台上使用,可以看下百度百科关于DirectX的介绍),而另外一套则是
OpenGL
了,可以用于非常多的平台(可以参看.....
游戏开发
8,303
社区成员
23,682
社区内容
发帖
与我相关
我的任务
游戏开发
游戏开发相关内容讨论专区
复制链接
扫一扫
分享
社区描述
游戏开发相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章