如何在不在 OpenSceneGraph 中设置 material 的情况下在 osg::Geometry 上设置光泽度
How can I set shininess on an osg::Geometry without setting a material in OpenSceneGraph
我有一个 osg::Geometry,我曾经在其状态集上设置一个 material,我通过 osg::Material::setShininess() 使它闪亮。问题是现在我需要在整个几何图形中设置各种颜色。我尝试使用几何体的颜色数组来执行此操作,但除非我停止在几何体的状态集上设置 material,否则该方法不起作用。
我理解这里的逻辑,material 应该覆盖颜色数组,但我很好奇现在我无法设置 [=18] 是否还有其他方法可以使几何体闪亮=] 在其状态集上?
我在 OSG 论坛上问了同样的问题(8 月份不工作,这是我在 SO 上问这个问题的唯一原因,因为这不是问 OSG 问题的好地方...)
如果您将 material 的颜色模式设置为 AMBIENT_AND_DIFFUSE,您仍然可以使用颜色数组并设置反光度。
pMaterial->setColorMode(osg::Material::AMBIENT_AND_DIFFUSE)
OSG论坛原回答:
我有一个 osg::Geometry,我曾经在其状态集上设置一个 material,我通过 osg::Material::setShininess() 使它闪亮。问题是现在我需要在整个几何图形中设置各种颜色。我尝试使用几何体的颜色数组来执行此操作,但除非我停止在几何体的状态集上设置 material,否则该方法不起作用。
我理解这里的逻辑,material 应该覆盖颜色数组,但我很好奇现在我无法设置 [=18] 是否还有其他方法可以使几何体闪亮=] 在其状态集上?
我在 OSG 论坛上问了同样的问题(8 月份不工作,这是我在 SO 上问这个问题的唯一原因,因为这不是问 OSG 问题的好地方...)
如果您将 material 的颜色模式设置为 AMBIENT_AND_DIFFUSE,您仍然可以使用颜色数组并设置反光度。
pMaterial->setColorMode(osg::Material::AMBIENT_AND_DIFFUSE)
OSG论坛原回答: