Directional lighting fix

getLights modified to use points rather than triangles based on the configuration.

This fixes point lights (with directional disabled) on AMD
This commit is contained in:
Richard Harrison 2020-08-07 12:04:04 +02:00 committed by Automatic Release Builder
parent 2fe60c9635
commit ab8795f6dc

View File

@ -280,9 +280,18 @@ SGLightFactory::getLights(const SGDirectionalLightBin& lights)
//stateSet->setRenderBinDetails(POINT_LIGHTS_BIN, "DepthSortedBin"); //stateSet->setRenderBinDetails(POINT_LIGHTS_BIN, "DepthSortedBin");
//stateSet->setMode(GL_LIGHTING, osg::StateAttribute::OFF); //stateSet->setMode(GL_LIGHTING, osg::StateAttribute::OFF);
static SGSceneFeatures* sceneFeatures = SGSceneFeatures::instance();
bool useTriangles = sceneFeatures->getEnableTriangleDirectionalLights();
osg::DrawArrays* drawArrays; osg::DrawArrays* drawArrays;
drawArrays = new osg::DrawArrays(osg::PrimitiveSet::TRIANGLES, if (useTriangles)
0, vertices->size()); drawArrays = new osg::DrawArrays(osg::PrimitiveSet::TRIANGLES,
0, vertices->size());
else
drawArrays = new osg::DrawArrays(osg::PrimitiveSet::POINTS,
0, vertices->size());
geometry->addPrimitiveSet(drawArrays); geometry->addPrimitiveSet(drawArrays);
return geometry; return geometry;
} }