osg模型发黑

来源:互联网 发布:淘宝开店所需资料 编辑:程序博客网 时间:2024/04/17 02:33

简述

    开发过程中遇到模型发黑。一般情况是光照和模型的法线设置不正确。

    (1)osg中光照只会对有法线的模型起作用,而模型经过缩放后法线是不会变得,所以需要手动设置属性,让法线随着模型大小变化而变化。node->getOrCreateStateSet()->setMode(GL_RESCALE_NORMAL, osg::StateAttribute::ON);

    (2)有些时候可能是光照的问题,有个笨办法是直接把模型的光照关闭

    node->getOrCreateStateSet()->setMode(GL_LIGHTING, osg::StateAttribute::OFF| StateAttribute::OVERRIDE);

    (3)如果模型始终是一面发黑一面正常,可能是只有平行光,需要设置个全局光。


原创粉丝点击