15 #include <osg/Uniform>
29 class DtTileSpaceLightGrid;
31 class DtGlTextureBufferObject;
34 class TextureApplyAttribute;
35 class TextureBufferObjectApplyAttribute;
51 void update(
const VectorLights& lights,
const osg::State& state);
54 void setMaxLights(
int maxNumLights);
56 static int getTextureStartOffset(
void);
64 osg::Uniform* getEnableLightingUniform()
const;
67 void setAmbientFactor(
float ambientFactor);
70 void setUseGlobalAmbient(
bool useGlobalAmbient);
73 void setDiffuseFactor(
float diffuseFactor);
76 void setUseGlobalDiffuse(
bool useGlobalDiffuse);
79 void setUseHDR(
bool useHDR);
82 void setDirty(
bool isDirty) { myDirty = isDirty; }
85 void setEmissionFactor(
float emissionFactor);
88 bool dirty()
const {
return myDirty; }
90 void releaseGLObjects(
void);
95 virtual bool install(osg::StateSet* stateset);
98 virtual bool uninstall(osg::StateSet* stateset);
102 void setLightPointScale(
double scale);
103 void setDynamicLightScale(
double scale);
104 void setEmissiveTextureScale(
double scale);
105 void setSpecularScale(
double scale);
106 void setShininessScale(
double scale);
108 void setHdrOutputScale(
double scale);
110 osg::Uniform* createUniform(
const std::string& name, osg::Uniform::Type type,
int count=1);
112 void PackLights(
const osg::Matrixd &normalMatrix,
const VectorLights& lights ,
const osg::State& state);
113 void UpdateTextureLightDataGrid(
void);
114 void UpdateTiledShadingData(
const VectorLights& lights,
const osg::State& state);
116 void UpdateTileLightIndexListTexture();
117 void UpdateTileLightGridCountOffsetsTexture();