osg帖子摘抄--阴影

1. osg对一个大场景中的树添加阴影的问题

具体是这样的!我已经获得了一个建好的场景模型,里面有树木还有房子,当然还有地形(草地)。之前别人建模的时候没有加阴影贴图的。现在我的任务是在原来的场景模型下给树木加上阴影
我目前的做法是首先通过节点访问把我需要加阴影的那些树的节点找到,比如说就一棵树!然后对这个节点进行setNodeMask(),同样用这种方法把地形的节点也找到,也setNodeMask(),然后把整个大场景模型加光源,阴影技法用的是ShadowMap,可是没有什么反应。不知道大家有没有什么建议,或者我这种方法本来就有问题。非常感谢!!!

setNodeMask这件事没什么问题,产生实时阴影这个想法有问题。因为大场景的实时阴影计算在目前来看依然很难(不是OSG的问题,而是技术发展的问题)。您不如直接在3dsmax烘焙阴影贴图最简单


2.阴影与OverlayNode的区别

OverlayNode演示了RTT(渲染到纹理)的一种应用,即,把某个子场景绘制到另一个对象的纹理上。阴影的实现也可以用到RTT技术,不过具体的实现方法还是有很多不同的

3. 

阴影的锯齿一般有两种:
persp alias是投影的远近关系产生的,可以用lispsm来改善
proj alias是因为光照方向与物体表面正好平行导致采样数不够而产生的,实践中基本无解
当然直接提升shadow texture的分辨率是通用的解决方案,只是不能无度而已;一些tiled的方案也可以考虑
最后,大一统的阴影算法是不存在的,如果您想在自己的场景里取得较好的效果,请从模型,美术,布置,坐标精度等多方面考虑

4. 参与阴影的节点一定要放在ShadowedScene节点下


5. 地形阴影问

 
 m_Model->setNodeMask(CastsShadowTraversalMask);
 m_Model->setNodeMask(ReceivesShadowTraversalMask);
 osg::ref_ptr<osgShadow::ShadowedScene> shadowedScene = new osgShadow::ShadowedScene();
 shadowedScene->setReceivesShadowTraversalMask(ReceivesShadowTraversalMask);
 shadowedScene->setCastsShadowTraversalMask(CastsShadowTraversalMask);


 osg::ref_ptr<osgShadow::ShadowTexture> st = new osgShadow::ShadowTexture();
 shadowedScene->setShadowTechnique(st);
 shadowedScene->addChild(m_Model);

代码如上,对地形增加光照阴影,希望地形既是投影者也是被投影者,怎么没有效果呢?

搞出来了,原来我的法线都设定的同一个向上的值,现在用smooth使用了后才成功,可惜速度慢了点









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
osg55-osg.dll是一个动态链接库文件,通常是用于运行OpenSceneGraph开源图形引擎的一部分。当系统在运行时发现缺少这个文件时,通常会出现错误提示,例如"osg55-osg.dll缺少"或"找不到osg55-osg.dll"。这种情况下,我们可以尝试以下解决方法: 1. 重新安装应用程序:首先,如果报错是由特定应用程序引起的,可以尝试将其完全卸载,然后重新下载并重新安装该应用程序。这将确保所有文件都被正确地安装和部署。 2. 检查回收站:有时,我们可能意外地删除了这个dll文件,然后我们可以从回收站中恢复它。如果找到了该文件,请右键点击并选择还原。 3. 从备份中恢复:如果我们以前备份过整个系统或相关文件,我们可以尝试从备份中恢复缺少的osg55-osg.dll文件。 4. 从可信来源下载:如果我们确定这个文件确实缺失,并且没有其他可行的解决方法,我们可以尝试从可信的来源下载和安装缺失的osg55osg.dll文件。要确保下载的dll文件版本与我们的系统兼容。 5. 运行系统文件检查:Windows用户可以使用系统文件检查工具,命令为"sfc /scannow",此工具将扫描系统中的问题,并自动修复或还原缺失或损坏的文件。 总之,当发现"osg55-osg.dll缺少"的错误时,我们可以尝试重新安装相关应用程序,检查回收站或从备份中恢复缺失的文件。如果这些方法都不起作用,可以尝试下载并安装可信的版本兼容的osg55-osg.dll文件,或者运行系统文件检查来修复系统错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值