前一篇文章并没有解决好问题,原因是设置完后,效果不好,最后仔细研究后修改了解决办法:
只保留默认光源,但是默认光源的位置是在右上角,同时设置默认光源的环境光,这样即使这个面没有正对着默认光源也不是暗的,原来试过,设置的都是1.0,1.0,1.0,1.0,导致整个场景都亮的分不清模型边界了,还以为不是设置这个,原来是由于设置的太亮了,结果饶了个大圈子(额外加光源)。
关键代码如下:
<span style="white-space:pre"> </span>// 设置光源
{
// 位置在右上
_viewer->getLight()->setPosition(osg::Vec4(1.0f, 1.0f, 0.0f, 0.0f));
// 环境光
_viewer->getLight()->setAmbient(osg::Vec4(0.6f, 0.6f, 0.6f, 1.0f));
// 漫反射光
_viewer->getLight()->setDiffuse(osg::Vec4(0.2f, 0.2f, 0.2f, 1.0f));
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/108104.html