osg模型发黑
2017-07-16 09:49
761 查看
简述
开发过程中遇到模型发黑。一般情况是光照和模型的法线设置不正确。
(1)osg中光照只会对有法线的模型起作用,而模型经过缩放后法线是不会变得,所以需要手动设置属性,让法线随着模型大小变化而变化。node->getOrCreateStateSet()->setMode(GL_RESCALE_NORMAL, osg::StateAttribute::ON);
(2)有些时候可能是光照的问题,有个笨办法是直接把模型的光照关闭
node->getOrCreateStateSet()->setMode(GL_LIGHTING, osg::StateAttribute::OFF| StateAttribute::OVERRIDE);
(3)如果模型始终是一面发黑一面正常,可能是只有平行光,需要设置个全局光。
开发过程中遇到模型发黑。一般情况是光照和模型的法线设置不正确。
(1)osg中光照只会对有法线的模型起作用,而模型经过缩放后法线是不会变得,所以需要手动设置属性,让法线随着模型大小变化而变化。node->getOrCreateStateSet()->setMode(GL_RESCALE_NORMAL, osg::StateAttribute::ON);
(2)有些时候可能是光照的问题,有个笨办法是直接把模型的光照关闭
node->getOrCreateStateSet()->setMode(GL_LIGHTING, osg::StateAttribute::OFF| StateAttribute::OVERRIDE);
(3)如果模型始终是一面发黑一面正常,可能是只有平行光,需要设置个全局光。
相关文章推荐
- osg线段和模型求交点
- osg中使用MatrixTransform来实现模型的平移/旋转/缩放
- OSG 模型添加(含自己画的模型,已有模型),对添加的模型做平移 缩放等。
- [原][osg][osgEarth]基于qt代码实现:TCP|UDP与飞行模拟软件JSBSim的通信,现实模型飞行!
- OSG中显示模型自带的动画
- 14、osg中通过一个模型,将其中一个模型隐藏掉输出成另一个模型(osg文件)
- 解决osg中不能更改模型颜色问题
- OSG使用更新回调来更改模型
- osg中放大缩小模型
- osg 模型显示不全,闪烁问题
- osg demo20 输出模型所有结点
- OSG 如何在地形上放置模型
- 15、osg中使用LOD设置当模型超过多少米,不显示模型
- osg 打开Internet .ive模型文件问题—IIS
- osg 矩阵转换后,获取矩阵中模型的位置
- 16、osg中使用Imposter设置一个视矩,超过这个视距模型会变为一张动态图
- OSG-简单模型控制
- osg加载模型后使模型居中且以最佳大小显示
- OSG 显示3D模型以及对应模型切层的2D效果
- OSG 如何在地形上放置模型