#include <point_light_named.h>
Inheritance diagram for NL3D::CPointLightNamed:

Nevrax France
Definition at line 48 of file point_light_named.h.
Public Types | |
| typedef TTransformList::iterator | ItTransformList |
| typedef NLMISC::CSTLBlockList< CTransform * > | TTransformList |
| The list of model this light influence. | |
| enum | TType { PointLight = 0, SpotLight, AmbientLight } |
Public Member Functions | |
| CPointLightNamed () | |
| Constructor. | |
| NLMISC::CRGBA | getDefaultAmbient () const |
| Get the Default ambient color of the light. | |
| NLMISC::CRGBA | getDefaultDiffuse () const |
| Get the Default diffuse color of the light. | |
| NLMISC::CRGBA | getDefaultSpecular () const |
| Get the Default specular color of the light. | |
| NLMISC::CRGBA | getUnAnimatedDiffuse () const |
| get the unanimated diffuse (used for Landscape) | |
| void | serial (NLMISC::IStream &f) |
| Get the ambient color of the light. | |
| void | setDefaultAmbient (NLMISC::CRGBA ambient) |
| Set the Default ambient color of the light. Default to Black. | |
| void | setDefaultDiffuse (NLMISC::CRGBA diffuse) |
| Set the Default diffuse color of the light. Default to White. | |
| void | setDefaultSpecular (NLMISC::CRGBA specular) |
| Set the Default specular color of the light. Default to White. | |
| void | setLightFactor (NLMISC::CRGBA nAnimatedFactor, NLMISC::CRGBA nUnAnimatedFactor) |
| void | setLightFactor (NLMISC::CRGBA nFactor) |
Render tools. | |
| ItTransformList | appendLightedModel (CTransform *model) |
| append a model to the list. called by CLightingManager. | |
| float | computeLinearAttenuation (const CVector &pos, float precomputedDist, float modelRadius=0) const |
| float | computeLinearAttenuation (const CVector &pos) const |
| Compute a linear attenuation from a point according to attenuation and spot setup. Return [0,1]. | |
| void | removeLightedModel (ItTransformList it) |
| remove a model from the list. called by CTransform. | |
| void | resetLightedModels () |
| Dirt all models this light influence. | |
| void | setupDriverLight (CLight &light, uint8 factor) |
| setup the CLight with current pointLight state. factor is used to modulate the colors. | |
| void | setupDriverLightUserAttenuation (CLight &light, uint8 factor) |
Render tools. | |
| ItTransformList | appendLightedModel (CTransform *model) |
| append a model to the list. called by CLightingManager. | |
| float | computeLinearAttenuation (const CVector &pos, float precomputedDist, float modelRadius=0) const |
| float | computeLinearAttenuation (const CVector &pos) const |
| Compute a linear attenuation from a point according to attenuation and spot setup. Return [0,1]. | |
| void | removeLightedModel (ItTransformList it) |
| remove a model from the list. called by CTransform. | |
| void | resetLightedModels () |
| Dirt all models this light influence. | |
| void | setupDriverLight (CLight &light, uint8 factor) |
| setup the CLight with current pointLight state. factor is used to modulate the colors. | |
| void | setupDriverLightUserAttenuation (CLight &light, uint8 factor) |
Light setup | |
| NLMISC::CRGBA | getAmbient () const |
| Get the ambient color of the light. | |
| float | getAttenuationBegin () const |
| get the begin radius of the attenuation. | |
| float | getAttenuationEnd () const |
| get the end radius of the attenuation. | |
| NLMISC::CRGBA | getDiffuse () const |
| Get the diffuse color of the light. | |
| const CVector & | getPosition () const |
| Get the position in WorldSpace. | |
| NLMISC::CRGBA | getSpecular () const |
| Get the specular color of the light. | |
| float | getSpotAngleBegin () const |
| get the begin radius of the SpotAngles. | |
| float | getSpotAngleEnd () const |
| get the end radius of the SpotAngles. | |
| const CVector & | getSpotDirection () const |
| get the spot Direction | |
| TType | getType () const |
| Get the ambient color of the light. | |
| void | setAmbient (NLMISC::CRGBA ambient) |
| Set the ambient color of the light. Default to Black. | |
| void | setColor (NLMISC::CRGBA color) |
| Set the diffuse and specular color of the light to the same value. don't modify _Ambient. | |
| void | setDiffuse (NLMISC::CRGBA diffuse) |
| Set the diffuse color of the light. Default to White. | |
| void | setPosition (const CVector &v) |
| Set the position in WorldSpace. | |
| void | setSpecular (NLMISC::CRGBA specular) |
| Set the specular color of the light. Default to White. | |
| void | setType (TType type) |
| set/get the type of the light. | |
| void | setupAttenuation (float attenuationBegin, float attenuationEnd) |
| void | setupSpotAngle (float spotAngleBegin, float spotAngleEnd) |
| void | setupSpotDirection (const CVector &dir) |
Static Public Member Functions | |
| void | purge () |
Data Fields | |
| std::string | AnimatedLight |
| Animation used by this light. | |
| uint32 | LightGroup |
| Group of the light. | |
Private Attributes | |
| NLMISC::CRGBA | _DefaultAmbient |
| NLMISC::CRGBA | _DefaultDiffuse |
| NLMISC::CRGBA | _DefaultSpecular |
| sint | _IdInInfluenceList |
| NLMISC::CRGBA | _UnAnimatedDiffuse |
Friends | |
| class | CLightInfluenceInterpolator |
|
|
Definition at line 74 of file point_light.h. Referenced by NL3D::CPointLight::appendLightedModel(), and NL3D::CPointLight::removeLightedModel(). |
|
|
The list of model this light influence.
Definition at line 73 of file point_light.h. |
|
|
Definition at line 76 of file point_light.h.
00077 {
00078 // The light is a point.
00079 PointLight= 0,
00080
00081 // The light is a spotlight with a cone.
00082 SpotLight,
00083
00084 // The light is an Ambient PointLight in an Ig.
00085 AmbientLight
00086 };
|
|
|
Constructor.
Definition at line 35 of file point_light_named.cpp. References _DefaultAmbient, _DefaultDiffuse, _DefaultSpecular, _UnAnimatedDiffuse, NL3D::CPointLight::getAmbient(), NL3D::CPointLight::getDiffuse(), and NL3D::CPointLight::getSpecular().
00036 {
00037 // copy setup from current
00038 _DefaultAmbient= getAmbient();
00039 _DefaultDiffuse= getDiffuse();
00040 _DefaultSpecular= getSpecular();
00041 _UnAnimatedDiffuse= getDiffuse();
00042 }
|
|
|
append a model to the list. called by CLightingManager.
Definition at line 409 of file point_light.cpp. References NL3D::CPointLight::_LightedModels, and NL3D::CPointLight::ItTransformList. Referenced by NL3D::CLightingManager::computeModelLightContributions().
00410 {
00411 // append the entry in the list
00412 _LightedModels.push_back(model);
00413 ItTransformList it= _LightedModels.end();
00414 it--;
00415 return it;
00416 }
|
|
||||||||||||||||
|
Compute a linear attenuation from a point and precomputed distance according to attenuation and spot setup. Return [0,1]
Definition at line 273 of file point_light.cpp. References NL3D::CPointLight::_AttenuationBegin, NL3D::CPointLight::_AttenuationEnd, NL3D::CPointLight::_CosSpotAngleEnd, NL3D::CPointLight::_OOCosSpotAngleDelta, NL3D::CPointLight::_OODeltaAttenuation, NL3D::CPointLight::_SpotDirection, NLMISC::clamp(), and NLMISC::sqr().
00274 {
00275 float gAtt;
00276
00277 // Attenuation Distance
00278 if(_AttenuationEnd==0)
00279 gAtt= 1;
00280 else
00281 {
00282 float distMinusRadius= dist - modelRadius;
00283 if(distMinusRadius<_AttenuationBegin)
00284 gAtt= 1;
00285 else if(distMinusRadius<_AttenuationEnd)
00286 {
00287 gAtt= (_AttenuationEnd - distMinusRadius) * _OODeltaAttenuation;
00288 }
00289 else
00290 gAtt= 0;
00291 }
00292
00293 // Spot Attenuation
00294 if(_Type== SpotLight)
00295 {
00296 float spotAtt;
00297
00298 // Compute unnormalized direction
00299 CVector dir= pos - _Position;
00300 // get cosAngle(dir, SpotDirection):
00301 float cosAngleDirSpot= (dir*_SpotDirection) / dist;
00302
00303 // Modify with modelRadius. NB: made Only for big models.
00304 if(modelRadius>0)
00305 {
00306 // If the pointLight is in the model, consider no spotAtt
00307 if(modelRadius > dist)
00308 spotAtt= 1;
00309 else
00310 {
00311 // compute the angle of the cone made by the model sphere and the pointLightCenter.
00312 float cosAngleSphere= modelRadius / sqrtf( sqr(dist) + sqr(modelRadius) );
00313 /* If this one is smaller than cosAngleDirSpot, it's mean that the angle of this cone is greater than the
00314 angleDirSpot, hence a part of the sphere "ps" exist such that _SportDirection*(ps-_Position).normed() == 1
00315 => no spotAttenuation
00316 */
00317 if(cosAngleSphere < cosAngleDirSpot)
00318 spotAtt= 1;
00319 else
00320 {
00321 // Must compute cos( AngleDirSpot-AngleSphere )
00322 float sinAngleSphere= sqrtf(1 - sqr(cosAngleSphere));
00323 float sinAngleDirSpot= sqrtf(1 - sqr(cosAngleDirSpot));
00324 float cosDelta= cosAngleSphere * cosAngleDirSpot + sinAngleSphere * sinAngleDirSpot;
00325
00326 // spot attenuation on the exterior of the sphere
00327 spotAtt= (cosDelta - _CosSpotAngleEnd) * _OOCosSpotAngleDelta;
00328 }
00329 }
00330 }
00331 else
00332 {
00333 // spot attenuation
00334 spotAtt= (cosAngleDirSpot - _CosSpotAngleEnd) * _OOCosSpotAngleDelta;
00335 }
00336
00337 // modulate
00338 clamp(spotAtt, 0.f, 1.f);
00339 gAtt*= spotAtt;
00340 }
00341
00342 return gAtt;
00343 }
|
|
|
Compute a linear attenuation from a point according to attenuation and spot setup. Return [0,1].
Definition at line 267 of file point_light.cpp. Referenced by NL3D::CLightingManager::computeModelLightContributions(), NL3D::CPatch::generateTileVegetable(), NL3D::CZoneLighter::processZonePointLightRT(), NL3D::CZoneLighter::CPointLightRT::testRaytrace(), NL3D::CInstanceLighter::CPointLightRT::testRaytrace(), and NL3D::CTransform::traverseLight().
00268 {
00269 return computeLinearAttenuation(pos, (pos - _Position).norm() );
00270 }
|
|
|
Get the ambient color of the light.
Definition at line 129 of file point_light.h. Referenced by NL3D::CLightContribution::computeCurrentAmbient(), NL3D::CLightingManager::computeModelLightContributions(), CPointLightNamed(), NL3D::CPointLightUser::getAmbient(), and NL3D::CSurfaceLightGrid::getStaticLightSetup().
00129 {return _Ambient;}
|
|
|
get the begin radius of the attenuation.
Definition at line 141 of file point_light.h. References NL3D::CPointLight::_AttenuationBegin. Referenced by NL3D::CZoneLighter::addStaticPointLight(), NL3D::CInstanceLighter::addStaticPointLight(), NL3D::CPatchDLMPointLight::compile(), NL3D::CLightingManager::computeModelLightContributions(), NL3D::CPointLightUser::getAttenuationBegin(), and NL3D::CPSLight::step().
00141 {return _AttenuationBegin;}
|
|
|
get the end radius of the attenuation.
Definition at line 143 of file point_light.h. References NL3D::CPointLight::_AttenuationEnd. Referenced by NL3D::CLightingManager::addDynamicLight(), NL3D::CZoneLighter::addStaticPointLight(), NL3D::CInstanceLighter::addStaticPointLight(), NL3D::CPatchDLMPointLight::compile(), NL3D::CZoneLighter::compilePointLightRT(), NL3D::CInstanceLighter::compilePointLightRT(), NL3D::CLightingManager::computeModelLightContributions(), NL3D::CPointLightUser::getAttenuationEnd(), NL3D::CZoneLighter::CPredPointLightToPoint::operator()(), NL3D::CInstanceLighter::CPredPointLightToPoint::operator()(), and NL3D::CPSLight::step().
00143 {return _AttenuationEnd;}
|
|
|
Get the Default ambient color of the light.
Definition at line 71 of file point_light_named.h. References _DefaultAmbient.
00071 {return _DefaultAmbient;}
|
|
|
Get the Default diffuse color of the light.
Definition at line 73 of file point_light_named.h. References _DefaultDiffuse.
00073 {return _DefaultDiffuse;}
|
|
|
Get the Default specular color of the light.
Definition at line 75 of file point_light_named.h. References _DefaultSpecular.
00075 {return _DefaultSpecular;}
|
|
|
Get the diffuse color of the light.
Definition at line 131 of file point_light.h. Referenced by NL3D::CPatchDLMPointLight::compile(), NL3D::CLightingManager::computeModelLightContributions(), NL3D::CShadowMapManager::computeShadowColors(), NL3D::CShadowMapManager::computeShadowDirection(), CPointLightNamed(), NL3D::CPointLightUser::getDiffuse(), NL3D::CSkeletonModel::renderCLod(), serial(), NL3D::CPSLight::step(), and NL3D::CParticleSystemModel::traverseRender().
00131 {return _Diffuse;}
|
|
|
Get the position in WorldSpace.
Definition at line 116 of file point_light.h. Referenced by NL3D::CLightingManager::addDynamicLight(), NL3D::CZoneLighter::addStaticPointLight(), NL3D::CInstanceLighter::addStaticPointLight(), NL3D::CPatchDLMPointLight::compile(), NL3D::CZoneLighter::compilePointLightRT(), NL3D::CInstanceLighter::compilePointLightRT(), NL3D::CLightingManager::computeModelLightContributions(), NL3D::CShadowMapManager::computeShadowDirection(), NL3D::CPatch::generateTileVegetable(), NL3D::CSkeletonModel::renderCLod(), and NL3D::CTransform::traverseLight().
00116 {return _Position;}
|
|
|
Get the specular color of the light.
Definition at line 133 of file point_light.h. Referenced by CPointLightNamed(), and NL3D::CPointLightUser::getSpecular().
00133 {return _Specular;}
|
|
|
get the begin radius of the SpotAngles.
Definition at line 151 of file point_light.h. References NL3D::CPointLight::_SpotAngleBegin. Referenced by NL3D::CPatchDLMPointLight::compile(), and NL3D::CPointLightUser::getSpotAngleBegin().
00151 {return _SpotAngleBegin;}
|
|
|
get the end radius of the SpotAngles.
Definition at line 153 of file point_light.h. References NL3D::CPointLight::_SpotAngleEnd. Referenced by NL3D::CPatchDLMPointLight::compile(), and NL3D::CPointLightUser::getSpotAngleEnd().
00153 {return _SpotAngleEnd;}
|
|
|
get the spot Direction
Definition at line 161 of file point_light.h. References NL3D::CPointLight::_SpotDirection. Referenced by NL3D::CPatchDLMPointLight::compile(), and NL3D::CPointLightModel::traverseLight().
00161 {return _SpotDirection;}
|
|
|
Get the ambient color of the light.
Definition at line 138 of file point_light.cpp. Referenced by NL3D::CPatchDLMPointLight::compile(), NL3D::CZoneLighter::compilePointLightRT(), NL3D::CInstanceLighter::compilePointLightRT(), NL3D::CLightingManager::computeModelLightContributions(), NL3D::CPointLightUser::isSpotlight(), NL3D::CInstanceLighter::processIGPointLightRT(), NL3D::CZoneLighter::CPointLightRT::testRaytrace(), NL3D::CInstanceLighter::CPointLightRT::testRaytrace(), and NL3D::CPointLightModel::traverseLight().
00139 {
00140 return _Type;
00141 }
|
|
|
get the unanimated diffuse (used for Landscape)
Definition at line 78 of file point_light_named.h. References _UnAnimatedDiffuse. Referenced by NL3D::CVegetableLightEx::computeCurrentColors().
00078 {return _UnAnimatedDiffuse;}
|
|
|
Definition at line 424 of file point_light.cpp. References NL3D::CPointLight::_LightedModelListMemory, and NLMISC::CBlockMemory< CTransform *, false >::purge().
00425 {
00426 _LightedModelListMemory.purge();
00427 }
|
|
|
remove a model from the list. called by CTransform.
Definition at line 418 of file point_light.cpp. References NL3D::CPointLight::_LightedModels, and NL3D::CPointLight::ItTransformList. Referenced by NL3D::CTransform::resetLighting().
00419 {
00420 // delete the entry in the list.
00421 _LightedModels.erase(it);
00422 }
|
|
|
Dirt all models this light influence.
Definition at line 393 of file point_light.cpp. References NL3D::CPointLight::_LightedModels, nlassert, and NL3D::CTransform::resetLighting(). Referenced by NL3D::CPointLightModel::traverseLight(), and NL3D::CPointLight::~CPointLight().
00394 {
00395 // For each transform, resetLighting him.
00396 while(_LightedModels.begin() != _LightedModels.end() )
00397 {
00398 CTransform *model= *_LightedModels.begin();
00399 // reset lighting
00400 model->resetLighting();
00401
00402 // NB: the transform must erase him from this list.
00403 nlassert( _LightedModels.begin() == _LightedModels.end() || *_LightedModels.begin() != model );
00404 }
00405 }
|
|
|
Get the ambient color of the light.
Reimplemented from NL3D::CPointLight. Definition at line 73 of file point_light_named.cpp. References _DefaultAmbient, _DefaultDiffuse, _DefaultSpecular, _UnAnimatedDiffuse, NL3D::CPointLight::getDiffuse(), NLMISC::IStream::isReading(), NLMISC::IStream::serial(), NLMISC::IStream::serialVersion(), and sint.
00074 {
00075 sint ver = f.serialVersion(1);
00076
00077 // Serialize parent.
00078 CPointLight::serial(f);
00079
00080 // Serialize my data
00081 f.serial(AnimatedLight);
00082 f.serial(_DefaultAmbient);
00083 f.serial(_DefaultDiffuse);
00084 f.serial(_DefaultSpecular);
00085
00086 if (ver>=1)
00087 f.serial(LightGroup);
00088
00089 // read: and copy default _UnAnimatedDiffuse
00090 if(f.isReading())
00091 {
00092 _UnAnimatedDiffuse= getDiffuse();
00093 }
00094 }
|
|
|
Set the ambient color of the light. Default to Black.
Definition at line 120 of file point_light.h. Referenced by NL3D::CPointLightUser::setAmbient(), and setLightFactor().
00120 {_Ambient=ambient;}
|
|
|
Set the diffuse and specular color of the light to the same value. don't modify _Ambient.
Definition at line 126 of file point_light.h. Referenced by NL3D::CPointLightUser::setColor(), and NL3D::CPSLight::step().
00126 {_Diffuse= _Specular= color;}
|
|
|
Set the Default ambient color of the light. Default to Black.
Definition at line 64 of file point_light_named.h. References _DefaultAmbient.
00064 {_DefaultAmbient=ambient;}
|
|
|
Set the Default diffuse color of the light. Default to White.
Definition at line 66 of file point_light_named.h. References _DefaultDiffuse.
00066 {_DefaultDiffuse=diffuse;}
|
|
|
Set the Default specular color of the light. Default to White.
Definition at line 68 of file point_light_named.h. References _DefaultSpecular.
00068 {_DefaultSpecular=specular;}
|
|
|
Set the diffuse color of the light. Default to White.
Definition at line 122 of file point_light.h. Referenced by NL3D::CPointLightUser::setDiffuse(), and setLightFactor().
00122 {_Diffuse=diffuse;}
|
|
||||||||||||
|
modulate the default color setup with nFactor, and set to the current setup. give 2 params the second is the "not animated" factor. used for Landscape. Definition at line 53 of file point_light_named.cpp. References _DefaultAmbient, _DefaultDiffuse, _DefaultSpecular, _UnAnimatedDiffuse, NLMISC::CRGBA::modulateFromColor(), NL3D::CPointLight::setAmbient(), NL3D::CPointLight::setDiffuse(), and NL3D::CPointLight::setSpecular().
00054 {
00055 CRGBA col;
00056 // setup current ambient.
00057 col.modulateFromColor(_DefaultAmbient, nAnimatedFactor);
00058 setAmbient(col);
00059 // setup current diffuse.
00060 col.modulateFromColor(_DefaultDiffuse, nAnimatedFactor);
00061 setDiffuse(col);
00062 // setup current specular.
00063 col.modulateFromColor(_DefaultSpecular, nAnimatedFactor);
00064 setSpecular(col);
00065
00066 // special UnAnimatedDiffuse
00067 col.modulateFromColor(_DefaultDiffuse, nUnAnimatedFactor);
00068 _UnAnimatedDiffuse= col;
00069 }
|
|
|
modulate the default color setup with nFactor, and set to the current setup. NB: getUnAnimatedDiffuse() == getDiffuse() Definition at line 46 of file point_light_named.cpp.
00047 {
00048 setLightFactor(nFactor, nFactor);
00049 }
|
|
|
Set the position in WorldSpace.
Definition at line 114 of file point_light.h. References v. Referenced by NL3D::CPointLightModel::traverseLight().
00114 {_Position= v;}
|
|
|
Set the specular color of the light. Default to White.
Definition at line 124 of file point_light.h. Referenced by setLightFactor(), and NL3D::CPointLightUser::setSpecular().
00124 {_Specular=specular;}
|
|
|
set/get the type of the light.
Definition at line 134 of file point_light.cpp. References type. Referenced by NL3D::CPointLightUser::enableSpotlight().
00135 {
00136 _Type= type;
00137 }
|
|
||||||||||||
|
setup the attenuation of the light. if (0,0) attenuation is disabled. clamp(attenuationBegin,0 , +oo) and calmp(attenuationEnd, attenuationBegin, +oo) Definition at line 144 of file point_light.cpp. References NL3D::CPointLight::_AttenuationBegin, NL3D::CPointLight::_AttenuationEnd, and NL3D::CPointLight::computeAttenuationFactors(). Referenced by NL3D::CPointLightUser::setupAttenuation(), and NL3D::CPSLight::step().
00145 {
00146 // set values.
00147 attenuationBegin= max(attenuationBegin, 0.f);
00148 attenuationEnd= max(attenuationEnd, attenuationBegin);
00149 _AttenuationBegin= attenuationBegin;
00150 _AttenuationEnd= attenuationEnd;
00151
00152 // update factors.
00153 computeAttenuationFactors();
00154
00155 }
|
|
||||||||||||
|
setup the CLight with current pointLight state. factor is used to modulate the colors.
Definition at line 346 of file point_light.cpp. References NL3D::CPointLight::_SpotDirection, NL3D::CPointLight::_SpotExponent, NLMISC::CRGBA::modulateFromuiRGBOnly(), NL3D::CLight::setupPointLight(), NL3D::CLight::setupSpotLight(), uint, and uint8.
00347 {
00348 // expand 0..255 to 0..256, to avoid loss of precision.
00349 uint ufactor= factor + (factor>>7); // add 0 or 1.
00350
00351 // modulate with factor
00352 CRGBA ambient, diffuse, specular;
00353 ambient.modulateFromuiRGBOnly(_Ambient, ufactor);
00354 diffuse.modulateFromuiRGBOnly(_Diffuse, ufactor);
00355 specular.modulateFromuiRGBOnly(_Specular, ufactor);
00356
00357 // setup the pointLight
00358 if(_Type == SpotLight )
00359 {
00360 light.setupSpotLight(ambient, diffuse, specular, _Position, _SpotDirection,
00361 _SpotExponent, float(NLMISC::Pi/2) ,
00362 _ConstantAttenuation, _LinearAttenuation, _QuadraticAttenuation);
00363 }
00364 // PointLight or AmbientLight
00365 else
00366 {
00367 light.setupPointLight(ambient, diffuse, specular, _Position, CVector::Null,
00368 _ConstantAttenuation, _LinearAttenuation, _QuadraticAttenuation);
00369 }
00370 }
|
|
||||||||||||
|
setup the CLight with current pointLight state. Don't use driver Attenuation and use software one setuped with an additional userAttenuation
Definition at line 374 of file point_light.cpp. References NLMISC::CRGBA::modulateFromuiRGBOnly(), NL3D::CLight::setupPointLight(), uint, and uint8.
00375 {
00376 // expand 0..255 to 0..256, to avoid loss of precision.
00377 uint ufactor= factor + (factor>>7); // add 0 or 1.
00378
00379 // modulate with factor
00380 CRGBA ambient, diffuse, specular;
00381 ambient.modulateFromuiRGBOnly(_Ambient, ufactor);
00382 diffuse.modulateFromuiRGBOnly(_Diffuse, ufactor);
00383 specular.modulateFromuiRGBOnly(_Specular, ufactor);
00384
00385 // setup the pointLight, disabling attenuation.
00386 // NB: setup a pointLight even if it is a SpotLight because already attenuated
00387 light.setupPointLight(ambient, diffuse, specular, _Position, CVector::Null,
00388 1, 0, 0);
00389 }
|
|
||||||||||||
|
setup the spot AngleBegin and AngleEnd that define spot attenuation of the light. Usefull only if SpotLight NB: clamp(angleBegin, 0, PI); clamp(angleEnd, angleBegin, PI); Default is PI/4, PI/2 Definition at line 159 of file point_light.cpp. References NL3D::CPointLight::_SpotAngleBegin, NL3D::CPointLight::_SpotAngleEnd, NLMISC::clamp(), NL3D::CPointLight::computeSpotAttenuationFactors(), and NLMISC::Pi. Referenced by NL3D::CPointLightUser::setupSpotAngle().
00160 {
00161 clamp(spotAngleBegin, 0.f, float(Pi));
00162 clamp(spotAngleEnd, spotAngleBegin, float(Pi));
00163 _SpotAngleBegin= spotAngleBegin;
00164 _SpotAngleEnd= spotAngleEnd;
00165
00166 // update factors.
00167 computeSpotAttenuationFactors();
00168 }
|
|
|
setup the spot Direction. Usefull only if SpotLight. Normalized internally Default is (0, 1, 0) Definition at line 172 of file point_light.cpp. References NL3D::CPointLight::_SpotDirection, and NLMISC::CVector::normalize(). Referenced by NL3D::CPointLightModel::traverseLight().
00173 {
00174 _SpotDirection= dir;
00175 _SpotDirection.normalize();
00176 }
|
|
|
Definition at line 98 of file point_light_named.h. |
|
|
Definition at line 102 of file point_light_named.h. Referenced by CPointLightNamed(), getDefaultAmbient(), serial(), setDefaultAmbient(), and setLightFactor(). |
|
|
Definition at line 103 of file point_light_named.h. Referenced by CPointLightNamed(), getDefaultDiffuse(), serial(), setDefaultDiffuse(), and setLightFactor(). |
|
|
Definition at line 104 of file point_light_named.h. Referenced by CPointLightNamed(), getDefaultSpecular(), serial(), setDefaultSpecular(), and setLightFactor(). |
|
|
Definition at line 99 of file point_light_named.h. Referenced by NL3D::CLightInfluenceInterpolator::interpolate(). |
|
|
Definition at line 107 of file point_light_named.h. Referenced by CPointLightNamed(), getUnAnimatedDiffuse(), serial(), and setLightFactor(). |
|
|
Animation used by this light.
Definition at line 52 of file point_light_named.h. Referenced by NL3D::CPointLightNamedSort::operator<(). |
|
|
Group of the light.
Definition at line 55 of file point_light_named.h. Referenced by NL3D::CPointLightNamedSort::operator<(). |
1.3.6