diff options
| author | Tofu Linden <tofu.linden@lindenlab.com> | 2010-01-28 16:20:06 -0800 | 
|---|---|---|
| committer | Tofu Linden <tofu.linden@lindenlab.com> | 2010-01-28 16:20:06 -0800 | 
| commit | c3b37faba3cba425d749345a978ddec16bbd1338 (patch) | |
| tree | c27fe118f517f0f3de8781e23c30cdecd6d45dc9 /indra | |
| parent | 5a34cf1af83314774f11b0d24279794794bc9147 (diff) | |
first dribble of directional lights for shaderless path.
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/pipeline.cpp | 19 | 
1 files changed, 16 insertions, 3 deletions
| diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index d66662ed49..bced8a8e07 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -4596,8 +4596,22 @@ void LLPipeline::setupHWLights(LLDrawPool* pool)  			glLightf (gllight, GL_CONSTANT_ATTENUATION,   0.0f);  			glLightf (gllight, GL_LINEAR_ATTENUATION,     atten);  			glLightf (gllight, GL_QUADRATIC_ATTENUATION,  quad); -			glLightf (gllight, GL_SPOT_EXPONENT,          0.0f); -			glLightf (gllight, GL_SPOT_CUTOFF,            180.0f); +			if (light->getLightTexture()) // directional (spot-)light +			{ +				LLVector3 spotparams = light->getSpotLightParams(); +				LLQuaternion quat = light->getRenderRotation(); +				LLVector3 at_axis(0,0,-1); // todo: verify against deferred +				at_axis *= quat; +				llinfos << "SPOT!!!!!!! fov: " << spotparams.mV[0] << " focus: " << spotparams.mV[1] << " dir: " << at_axis << llendl; +				glLightfv(gllight, GL_SPOT_DIRECTION, at_axis.mV); +				glLightf (gllight, GL_SPOT_EXPONENT,  0.0f); // fixme - focus +				glLightf (gllight, GL_SPOT_CUTOFF,    22.0f); // fixme - fov +			} +			else // omnidirectional (point) light +			{ +				glLightf (gllight, GL_SPOT_EXPONENT, 0.0f); +				glLightf (gllight, GL_SPOT_CUTOFF,   180.0f); +			}  			cur_light++;  			if (cur_light >= 8)  			{ @@ -4613,7 +4627,6 @@ void LLPipeline::setupHWLights(LLDrawPool* pool)  		glLightfv(gllight, GL_AMBIENT,  LLColor4::black.mV);  		glLightfv(gllight, GL_SPECULAR, LLColor4::black.mV);  	} -  	if (gAgent.getAvatarObject() &&  		gAgent.getAvatarObject()->mSpecialRenderMode == 3)  	{ | 
