查看: 3352|回复: 4

请教:OSG中局部光源的问题

[复制链接]

该用户从未签到

发表于 2009-1-21 15:07:58 | 显示全部楼层 |阅读模式
地面交通工具的模拟程序,用OSG装载FLT格式的Database,为了实现夜间类似车头灯的效果(周围环境都是比较暗的),仅有车头灯照着的地方变亮,汽车处于运动状态。车灯照射的效果出来了,但是却不满足要求,主要的问题表现在:Database每个Face都有 亮,半亮,暗 三个状态,小面积区域还好,遇到较大面积的面时,效果就不好,比如地面,道路等, 比如一个Face的一个小角落,本来应该是车灯照射到的地方,结果整个Face却是一片黑。或者车灯只照到一个Face的大部分时,却整个区域都是亮的,该暗的地方不暗。 请问各位达人针对这种问题有什么解决办法吗?

该用户从未签到

发表于 2009-1-21 15:54:10 | 显示全部楼层
这种情况下,我个人能想到两个解决方案:一是修改模型,把这些需要表现光照的面片进一步细分为小面片;二是使用片元着色器(Fragment Shader),这样得到的效果肯定会更好。您可以根据自己的实际情况酌情考虑

该用户从未签到

 楼主| 发表于 2009-1-21 18:38:22 | 显示全部楼层
谢谢版主达人!第一个方案要分割的面太多,会增加N倍的多边形,个人感觉这个方法不可行。Fragment Shader 是否需要硬件的支持!

该用户从未签到

发表于 2009-1-21 18:53:03 | 显示全部楼层
着色语言需要OpenGL 1.4以上的支持,因此有些时间久一些的显示系统是不可行的。

该用户从未签到

 楼主| 发表于 2009-1-22 14:54:52 | 显示全部楼层
多谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表