|
| | SLLightRect (SLAssetManager *assetMgr, SLScene *s, SLfloat width=1, SLfloat height=1, SLbool hasMesh=true) |
| |
| | ~SLLightRect () override |
| |
| void | init (SLScene *s) |
| |
| bool | hitRec (SLRay *ray) override |
| |
| void | statsRec (SLNodeStats &stats) override |
| | SLLightSpot::statsRec updates the statistic parameters. More...
|
| |
| void | drawMesh (SLSceneView *sv) override |
| |
| void | createShadowMap (float lightClipNear=0.1f, float lightClipFar=20.0f, SLVec2f size=SLVec2f(8, 8), SLVec2i texSize=SLVec2i(1024, 1024)) override |
| |
| void | createShadowMapAutoSize (SLCamera *camera, SLVec2i texSize=SLVec2i(1024, 1024), int numCascades=0) 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 | width (const SLfloat w) |
| |
| void | height (const SLfloat h) |
| |
| void | samples (SLVec2i samples) |
| |
| void | samplesXY (SLint x, SLint y) |
| |
| SLfloat | width () const |
| |
| SLfloat | height () const |
| |
| SLCol4f | ambient () override |
| | Return normally _ambientColor * _ambientPower. More...
|
| |
| SLCol4f | diffuse () override |
| | Returns normally _diffuseColor * _diffusePower. More...
|
| |
| SLCol4f | specular () override |
| | Returns normally _specularColor * _specularPower. More...
|
| |
| SLVec4f | positionWS () const override |
| |
| SLVec3f | spotDirWS () override |
| |
| | 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...
|
| |
Light node class for a rectangular light source.
SLLightRect is a node that renders in OpenGL a light rectangle object and applies the OpenGL light settings through the SLLight class. The light rectangle is defined with its width and height and lies initially centered in the x-y-plane. The light shines as a spotlight with 90 degrees cutoff angle towards the negative z-axis.
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.