hello everybody...or rather: hello tom!
i have got a question to toms dx7 dll:
well, i have managed a first little system in my team, and now i have got following problem: if the camera gets inside the volume, the shadows are looking corruptly... have you any idea??
i have got a question to toms dx7 dll:
well, i have managed a first little system in my team, and now i have got following problem: if the camera gets inside the volume, the shadows are looking corruptly... have you any idea??
Function Render(shadows = False) If shadows Then ;Build volumes ClearSurface VolumeSurface sl.ShadowLight = First ShadowLight For sm.ShadowMesh = Each ShadowMesh If sm\casting Then CreateVolume(sm\ent, sl\ent, sl\parallel) Next ;Render Shadow HideEntity ShadowPlane HideEntity VolumeMesh For sm.ShadowMesh = Each ShadowMesh ShowEntity sm\ent Next SetRenderState(Direct3DDevice7, D3DRS_ZWRITEENABLE, True) SetRenderState(Direct3DDevice7, D3DRS_STENCILENABLE, False) SetRenderState(Direct3DDevice7, D3DRS_ALPHABLENDENABLE, False) DeviceClear(Direct3DDevice7, 7, $00008080, 1, 0) CameraClsMode ShadowCam, True, True UpdateWorld RenderWorld CameraClsMode ShadowCam, False, False For sm.ShadowMesh = Each ShadowMesh HideEntity sm\ent Next ShowEntity VolumeMesh SetRenderState(Direct3DDevice7, D3DRS_ZWRITEENABLE, False) SetRenderState(Direct3DDevice7, D3DRS_STENCILENABLE, True) SetRenderState(Direct3DDevice7, D3DRS_STENCILFUNC, D3DCMP_ALWAYS) SetRenderState(Direct3DDevice7, D3DRS_STENCILREF, 1) SetRenderState(Direct3DDevice7, D3DRS_STENCILMASK, $FFFFFFFF) SetRenderState(Direct3DDevice7, D3DRS_STENCILWRITEMASK, $FFFFFFFF) SetRenderState(Direct3DDevice7, D3DRS_CULLMODE, D3DCULL_CCW) SetRenderState(Direct3DDevice7, D3DRS_STENCILZFAIL, D3DSTENCILOP_KEEP) SetRenderState(Direct3DDevice7, D3DRS_STENCILFAIL, D3DSTENCILOP_KEEP) SetRenderState(Direct3DDevice7, D3DRS_STENCILPASS, D3DSTENCILOP_INCR) SetRenderState(Direct3DDevice7, D3DRS_ALPHABLENDENABLE, True) SetRenderState(Direct3DDevice7, D3DRS_SRCBLEND, D3DBLEND_ZERO) SetRenderState(Direct3DDevice7, D3DRS_DESTBLEND, D3DBLEND_ONE) RenderWorld SetRenderState(Direct3DDevice7, D3DRS_STENCILPASS, D3DSTENCILOP_DECR) SetRenderState(Direct3DDevice7, D3DRS_CULLMODE, D3DCULL_CW) RenderWorld SetRenderState(Direct3DDevice7, D3DRS_CULLMODE, D3DCULL_CCW) HideEntity VolumeMesh SetRenderState(Direct3DDevice7, D3DRS_ZWRITEENABLE, True) SetRenderState(Direct3DDevice7, D3DRS_STENCILENABLE, False) SetRenderState(Direct3DDevice7, D3DRS_ALPHABLENDENABLE, False) SetRenderState(Direct3DDevice7, D3DRS_ZENABLE, False) SetRenderState(Direct3DDevice7, D3DRS_STENCILENABLE, True) SetRenderState(Direct3DDevice7, D3DRS_ALPHABLENDENABLE, True) SetRenderState(Direct3DDevice7, D3DRS_SRCBLEND, D3DBLEND_SRCALPHA) SetRenderState(Direct3DDevice7, D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA) SetRenderState(Direct3DDevice7, D3DRS_STENCILREF, 1) SetRenderState(Direct3DDevice7, D3DRS_STENCILFUNC, D3DCMP_LESSEQUAL) SetRenderState(Direct3DDevice7, D3DRS_STENCILPASS, D3DSTENCILOP_REPLACE) ShowEntity ShadowPlane RenderWorld SetRenderState(Direct3DDevice7, D3DRS_ZENABLE, True) SetRenderState(Direct3DDevice7, D3DRS_STENCILENABLE, False) SetRenderState(Direct3DDevice7, D3DRS_ALPHABLENDENABLE, True) HideEntity ShadowPlane SetRenderState(Direct3DDevice7, D3DRS_ALPHABLENDENABLE, False) Else HideEntity ShadowPlane CameraClsMode ShadowCam, True, True RenderWorld EndIf End Function