]> git.lizzy.rs Git - irrlicht.git/blobdiff - include/IMeshSceneNode.h
Add back lighting system
[irrlicht.git] / include / IMeshSceneNode.h
index d4f6fff381481074663a5882e5f636be45a4c862..e4b3b05a29fd6e2555df008e351bda012dcc9b6c 100644 (file)
@@ -12,6 +12,7 @@ namespace irr
 namespace scene\r
 {\r
 \r
+class IShadowVolumeSceneNode;\r
 class IMesh;\r
 \r
 \r
@@ -37,6 +38,31 @@ public:
        /** \return Pointer to mesh which is displayed by this node. */\r
        virtual IMesh* getMesh(void) = 0;\r
 \r
+       /** The shadow can be rendered using the ZPass or the zfail\r
+       method. ZPass is a little bit faster because the shadow volume\r
+       creation is easier, but with this method there occur ugly\r
+       looking artifacts when the camera is inside the shadow volume.\r
+       These error do not occur with the ZFail method, but it can\r
+       have trouble with clipping to the far-plane (it usually works\r
+       well in OpenGL and fails with other drivers).\r
+       \param shadowMesh: Optional custom mesh for shadow volume.\r
+       \param id: Id of the shadow scene node. This id can be used to\r
+       identify the node later.\r
+       \param zfailmethod: If set to true, the shadow will use the\r
+       zfail method, if not, zpass is used.\r
+       \param infinity: Value used by the shadow volume algorithm to\r
+       scale the shadow volume. For zfail shadow volumes on some drivers\r
+       only suppport finite shadows, so camera zfar must be larger than\r
+       shadow back cap,which is depending on the infinity parameter).\r
+       Infinity value also scales by the scaling factors of the model.\r
+       If shadows don't show up with zfail then try reducing infinity.\r
+       If shadows are cut-off then try increasing infinity.\r
+       \return Pointer to the created shadow scene node. This pointer\r
+       should not be dropped. See IReferenceCounted::drop() for more\r
+       information. */\r
+       virtual IShadowVolumeSceneNode* addShadowVolumeSceneNode(const IMesh* shadowMesh=0,\r
+               s32 id=-1, bool zfailmethod=true, f32 infinity=1000.0f) = 0;\r
+\r
        //! Sets if the scene node should not copy the materials of the mesh but use them in a read only style.\r
        /** In this way it is possible to change the materials of a mesh\r
        causing all mesh scene nodes referencing this mesh to change, too.\r