|
| SLLightDirect (SLAssetManager *assetMgr, SLScene *s, SLfloat arrowLength=0.5f, SLbool hasMesh=true, SLbool doCascadedShadows=false) |
|
| SLLightDirect (SLAssetManager *assetMgr, SLScene *s, SLfloat posx, SLfloat posy, SLfloat posz, SLfloat arrowLength=0.5f, SLfloat ambiPower=1.0f, SLfloat diffPower=10.0f, SLfloat specPower=10.0f, SLbool hasMesh=true, SLbool doCascadedShadows=false) |
|
| ~SLLightDirect () override |
|
void | init (SLScene *s) |
|
bool | hitRec (SLRay *ray) override |
|
void | statsRec (SLNodeStats &stats) override |
| SLLightDirect::statsRec updates the statistic parameters. More...
|
|
void | drawMesh (SLSceneView *sv) override |
|
SLfloat | shadowTest (SLRay *ray, const SLVec3f &L, SLfloat lightDist, SLNode *root3D) override |
|
SLfloat | shadowTestMC (SLRay *ray, const SLVec3f &L, SLfloat lightDist, SLNode *root3D) override |
|
void | createShadowMap (float clipNear=0.1f, float clipFar=20.0f, SLVec2f size=SLVec2f(8, 8), SLVec2i texSize=SLVec2i(1024, 1024)) override |
|
void | createShadowMapAutoSize (SLCamera *camera, SLVec2i texSize=SLVec2i(1024, 1024), int numCascades=4) override |
|
SLCol4f | calculateSunLight (SLfloat standardPower) |
| Calculates the sunlight color depending on the zenith angle. More...
|
|
void | doSunPowerAdaptation (SLbool enabled) |
|
void | sunLightPowerMin (SLfloat minPower) |
|
void | doCascadedShadows (bool b) |
|
SLfloat | radius () const |
|
SLfloat | dirLength () const |
|
SLbool | doSunPowerAdaptation () |
|
SLTexColorLUT * | sunLightColorLUT () |
|
SLbool | doCascadedShadows () const override |
|
SLVec4f | positionWS () const override |
|
SLVec3f | spotDirWS () override |
|
SLCol4f | ambient () override |
| Returns the product of the ambient light color and the ambient light power. More...
|
|
SLCol4f | diffuse () override |
| Returns the product of the diffuse light color and the diffuse light power. More...
|
|
SLCol4f | specular () override |
| Returns the product of the specular light color and the specular light power. More...
|
|
| SLNode (const SLstring &name="Node") |
|
| SLNode (SLMesh *mesh, const SLstring &name="Node") |
|
| SLNode (SLMesh *mesh, const SLVec3f &translation, const SLstring &name) |
|
| ~SLNode () override |
|
virtual void | cull3DRec (SLSceneView *sv) |
|
virtual void | cullChildren3D (SLSceneView *sv) |
|
virtual void | cull2DRec (SLSceneView *sv) |
|
virtual bool | hitRec (SLRay *ray) |
|
virtual void | statsRec (SLNodeStats &stats) |
|
virtual SLNode * | copyRec () |
|
virtual SLAABBox & | updateAABBRec (SLbool updateAlsoAABBinOS) |
|
virtual void | dumpRec () |
|
void | setDrawBitsRec (SLuint bit, SLbool state) |
|
void | setPrimitiveTypeRec (SLGLPrimitiveType primitiveType) |
|
virtual void | addMesh (SLMesh *mesh) |
|
virtual void | drawMesh (SLSceneView *sv) |
| Draws the single mesh. More...
|
|
bool | removeMesh () |
| Returns true if a mesh was assigned and set it to nullptr. More...
|
|
bool | removeMesh (SLMesh *mesh) |
| Returns true if the passed mesh was assigned and sets it to nullptr. More...
|
|
SLint | numChildren () |
|
void | addChild (SLNode *child) |
|
bool | insertChild (SLNode *insertC, SLNode *afterC) |
|
void | deleteChildren () |
|
bool | deleteChild () |
|
bool | deleteChild (SLNode *child) |
|
bool | deleteChild (const SLstring &name) |
|
bool | removeChild (SLNode *child) |
| remove child from vector of children. Removes false if not found, else true. More...
|
|
template<typename T > |
T * | find (const SLstring &name="", SLbool findRecursive=true) |
|
template<typename T > |
T * | findChild (const SLstring &name="", SLbool findRecursive=true) |
|
template<typename T > |
deque< T * > | findChildren (const SLstring &name="", SLbool findRecursive=true, SLbool canContain=false) |
|
deque< SLNode * > | findChildren (const SLMesh *mesh, SLbool findRecursive=true) |
|
deque< SLNode * > | findChildren (SLuint drawbit, SLbool findRecursive=true) |
|
SLVec3f | translationOS () const |
|
SLVec3f | forwardOS () const |
|
SLVec3f | rightOS () const |
|
SLVec3f | upOS () const |
|
SLVec3f | axisXOS () const |
|
SLVec3f | axisYOS () const |
|
SLVec3f | axisZOS () const |
|
SLVec3f | translationWS () const |
|
SLVec3f | forwardWS () const |
|
SLVec3f | rightWS () const |
|
SLVec3f | upWS () const |
|
SLVec3f | axisXWS () const |
|
SLVec3f | axisYWS () const |
|
SLVec3f | axisZWS () const |
|
void | translation (const SLVec3f &pos, SLTransformSpace relativeTo=TS_parent) |
|
void | translation (SLfloat x, SLfloat y, SLfloat z, SLTransformSpace relativeTo=TS_parent) |
|
void | rotation (const SLQuat4f &rot, SLTransformSpace relativeTo=TS_parent) |
|
void | rotation (SLfloat angleDeg, const SLVec3f &axis, SLTransformSpace relativeTo=TS_parent) |
|
void | scaling (SLfloat s) |
|
void | scaling (SLfloat x, SLfloat y, SLfloat z) |
|
void | scaling (const SLVec3f &scaling) |
|
void | lookAt (SLfloat targetX, SLfloat targetY, SLfloat targetZ, SLfloat upX=0, SLfloat upY=1, SLfloat upZ=0, SLTransformSpace relativeTo=TS_world) |
|
void | lookAt (const SLVec3f &target, const SLVec3f &up=SLVec3f::AXISY, SLTransformSpace relativeTo=TS_world) |
|
void | translate (const SLVec3f &vec, SLTransformSpace relativeTo=TS_object) |
|
void | translate (SLfloat x, SLfloat y, SLfloat z, SLTransformSpace relativeTo=TS_object) |
|
void | rotate (const SLQuat4f &rot, SLTransformSpace relativeTo=TS_object) |
|
void | rotate (SLfloat angleDeg, const SLVec3f &axis, SLTransformSpace relativeTo=TS_object) |
|
void | rotate (SLfloat angleDeg, SLfloat x, SLfloat y, SLfloat z, SLTransformSpace relativeTo=TS_object) |
|
void | rotateAround (const SLVec3f &point, SLVec3f &axis, SLfloat angleDeg, SLTransformSpace relativeTo=TS_world) |
|
void | scale (SLfloat s) |
|
void | scale (SLfloat x, SLfloat y, SLfloat z) |
|
void | scale (const SLVec3f &scale) |
|
void | scaleToCenter (SLfloat maxDim) |
|
void | setInitialState () |
|
void | resetToInitialState () |
|
void | parent (SLNode *p) |
|
void | entityID (SLint entityID) |
|
void | om (const SLMat4f &mat) |
|
void | animation (SLAnimation *a) |
|
void | castsShadows (SLbool castsShadows) |
|
virtual void | needUpdate () |
|
void | needWMUpdate () |
|
void | needAABBUpdate () |
|
void | isSelected (bool isSelected) |
|
void | minLodCoverage (SLfloat minLodCoverage) |
|
void | levelForSM (SLubyte lfsm) |
|
void | onUpdateCB (function< void()> callbackFunc) |
|
SLNode * | parent () |
|
SLint | depth () const |
|
SLint | entityID () const |
|
const SLMat4f & | om () |
|
const SLMat4f & | initialOM () |
|
const SLMat4f & | updateAndGetWM () const |
|
const SLMat4f & | updateAndGetWMI () const |
|
SLDrawBits * | drawBits () |
|
SLbool | drawBit (SLuint bit) |
|
SLAABBox * | aabb () |
|
SLAnimation * | animation () |
|
SLbool | castsShadows () |
|
SLMesh * | mesh () |
|
SLVNode & | children () |
|
const SLAnimSkeleton * | skeleton () |
| Returns the first skeleton found in the meshes. More...
|
|
void | updateRec () |
|
virtual void | doUpdate () |
|
bool | updateMeshSkins (const std::function< void(SLMesh *)> &cbInformNodes) |
| Update all skinned meshes recursively. More...
|
|
void | updateMeshAccelStructs () |
|
void | updateMeshMat (std::function< void(SLMaterial *m)> setMat, bool recursive) |
| Updates the mesh material recursively with a material lambda. More...
|
|
void | setMeshMat (SLMaterial *mat, bool recursive) |
| Set the mesh material recursively. More...
|
|
bool | isSelected () |
|
SLfloat | minLodCoverage () |
|
SLubyte | levelForSM () |
|
| SLObject (const SLstring &Name="", const SLstring &url="") |
|
virtual | ~SLObject () |
|
void | name (const SLstring &Name) |
|
void | url (const SLstring &url) |
|
const SLstring & | name () const |
|
const SLstring & | url () const |
|
Public Member Functions inherited from SLEventHandler |
| SLEventHandler () |
|
virtual | ~SLEventHandler () |
|
virtual SLbool | onMouseDown (const SLMouseButton button, const SLint x, const SLint y, const SLKey mod) |
|
virtual SLbool | onMouseUp (const SLMouseButton button, const SLint x, const SLint y, const SLKey mod) |
|
virtual SLbool | onMouseMove (const SLMouseButton button, const SLint x, const SLint y, const SLKey mod) |
|
virtual SLbool | onDoubleClick (const SLMouseButton button, const SLint x, const SLint y, const SLKey mod) |
|
virtual SLbool | onMouseWheel (const SLint delta, const SLKey mod) |
|
virtual SLbool | onTouch2Down (const SLint x1, const SLint y1, const SLint x2, const SLint y2) |
|
virtual SLbool | onTouch2Move (const SLint x1, const SLint y1, const SLint x2, const SLint y2) |
|
virtual SLbool | onTouch2Up (const SLint x1, const SLint y1, const SLint x2, const SLint y2) |
|
virtual SLbool | onTouch3Down (const SLint x1, const SLint y1) |
|
virtual SLbool | onTouch3Move (const SLint x1, const SLint y1) |
|
virtual SLbool | onTouch3Up (const SLint x1, const SLint y1) |
|
virtual SLbool | onKeyPress (const SLKey key, const SLKey mod) |
|
virtual SLbool | onKeyRelease (const SLKey key, const SLKey mod) |
|
virtual SLbool | onRotationPYR (const SLfloat pitchRAD, const SLfloat yawRAD, const SLfloat rollRAD) |
|
void | mouseRotationFactor (SLfloat rf) |
|
SLfloat | mouseRotationFactor () |
|
| SLLight (SLfloat ambiPower=0.1f, SLfloat diffPower=1.0f, SLfloat specPower=1.0f, SLint id=-1) |
|
virtual | ~SLLight ()=default |
|
void | id (const SLint id) |
|
void | isOn (const SLbool on) |
|
void | powers (SLfloat ambiPow, SLfloat diffPow, SLfloat specPow, const SLCol4f &ambiDiffSpecCol=SLCol4f::WHITE) |
| Sets the ambient, diffuse and specular powers all with the same color. More...
|
|
void | ambiDiffPowers (SLfloat ambiPow, SLfloat diffPow, const SLCol4f &ambiDiffCol=SLCol4f::WHITE) |
| Sets the ambient and diffuse powers with the same color. More...
|
|
void | ambiDiffColor (const SLCol4f &ambiDiffCol) |
| Sets the same color to the ambient and diffuse colors. More...
|
|
void | ambientColor (const SLCol4f &ambi) |
|
void | ambientPower (const SLfloat ambPow) |
|
void | diffuseColor (const SLCol4f &diff) |
|
void | diffusePower (const SLfloat diffPow) |
|
void | specularColor (const SLCol4f &spec) |
|
void | specularPower (const SLfloat specPow) |
|
void | spotExponent (const SLfloat exp) |
|
void | spotCutOffDEG (SLfloat cutOffAngleDEG) |
|
void | kc (SLfloat kc) |
|
void | kl (SLfloat kl) |
|
void | kq (SLfloat kq) |
|
void | attenuation (const SLfloat kConstant, const SLfloat kLinear, const SLfloat kQuadratic) |
|
void | createsShadows (SLbool createsShadows) |
|
void | shadowMap (SLShadowMap *shadowMap) |
|
void | doSmoothShadows (SLbool doSS) |
|
void | smoothShadowLevel (SLuint ssLevel) |
|
void | shadowMinBias (SLfloat minBias) |
|
void | shadowMaxBias (SLfloat maxBias) |
|
SLint | id () const |
|
SLbool | isOn () const |
|
SLCol4f | ambientColor () |
|
SLfloat | ambientPower () const |
|
SLCol4f | diffuseColor () |
|
SLfloat | diffusePower () const |
|
SLCol4f | specularColor () |
|
SLfloat | specularPower () const |
|
SLfloat | spotCutOffDEG () const |
|
SLfloat | spotCosCut () const |
|
SLfloat | spotExponent () const |
|
SLfloat | kc () const |
|
SLfloat | kl () const |
|
SLfloat | kq () const |
|
SLbool | isAttenuated () const |
|
SLfloat | attenuation (SLfloat dist) const |
|
SLbool | createsShadows () const |
|
SLShadowMap * | shadowMap () |
|
SLbool | doSoftShadows () const |
|
SLuint | softShadowLevel () const |
|
SLfloat | shadowMinBias () const |
|
SLfloat | shadowMaxBias () const |
|
virtual SLbool | doCascadedShadows () const |
|
virtual SLCol4f | ambient ()=0 |
| Return normally _ambientColor * _ambientPower. More...
|
|
virtual SLCol4f | diffuse ()=0 |
| Returns normally _diffuseColor * _diffusePower. More...
|
|
virtual SLCol4f | specular ()=0 |
| Returns normally _specularColor * _specularPower. More...
|
|
virtual SLVec4f | positionWS () const =0 |
|
virtual SLVec3f | spotDirWS ()=0 |
|
virtual SLfloat | shadowTest (SLRay *ray, const SLVec3f &L, SLfloat lightDist, SLNode *root3D)=0 |
|
virtual SLfloat | shadowTestMC (SLRay *ray, const SLVec3f &L, SLfloat lightDist, SLNode *root3D)=0 |
|
virtual void | createShadowMap (float lightClipNear=0.1f, float lightClipFar=20.0f, SLVec2f size=SLVec2f(8, 8), SLVec2i texSize=SLVec2i(1024, 1024))=0 |
|
virtual void | createShadowMapAutoSize (SLCamera *camera, SLVec2i texSize=SLVec2i(1024, 1024), int numCascades=0)=0 |
|
virtual void | renderShadowMap (SLSceneView *sv, SLNode *root) |
| SLLight::renderShadowMap renders the shadow map of the light. More...
|
|
SLLightDirect class for a directional light source.
SLLightDirect is a node and a light that can have a sphere mesh with a line for its direction representation. For directional lights the position vector is in infinite distance. We use its homogeneous component w as zero as the directional light flag. The spot direction is used in the shaders for the light direction.
If a light node is added to the scene it stays fix in the scene.
If a light node is added to the camera it moves with the camera.
See the scene examples for Per-Vertex-Blinn or Per-Pixel-Blinn lighting where all light node types are used.
All light nodes inherited from SLLight work automatically together with the automatically generated shader in SLGLProgramGenerated.