mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-14 16:14:38 +00:00
reflector classvar cleanups
This commit is contained in:
parent
68da3176c9
commit
f0e5fddde8
2 changed files with 21 additions and 21 deletions
|
|
@ -315,20 +315,20 @@ void CubeReflector::updateReflection( const ReflectParams ¶ms )
|
||||||
const GFXFormat reflectFormat = REFLECTMGR->getReflectFormat();
|
const GFXFormat reflectFormat = REFLECTMGR->getReflectFormat();
|
||||||
|
|
||||||
if ( texResize ||
|
if ( texResize ||
|
||||||
cubemap.isNull() ||
|
mCubemap.isNull() ||
|
||||||
cubemap->getFormat() != reflectFormat )
|
mCubemap->getFormat() != reflectFormat )
|
||||||
{
|
{
|
||||||
cubemap = GFX->createCubemap();
|
mCubemap = GFX->createCubemap();
|
||||||
cubemap->initDynamic( texDim, reflectFormat );
|
mCubemap->initDynamic( texDim, reflectFormat );
|
||||||
}
|
}
|
||||||
|
|
||||||
GFXTexHandle depthBuff = LightShadowMap::_getDepthTarget( texDim, texDim );
|
mDepthBuff = LightShadowMap::_getDepthTarget( texDim, texDim );
|
||||||
|
|
||||||
if ( renderTarget.isNull() )
|
if ( mRenderTarget.isNull() )
|
||||||
renderTarget = GFX->allocRenderToTextureTarget();
|
mRenderTarget = GFX->allocRenderToTextureTarget();
|
||||||
|
|
||||||
GFX->pushActiveRenderTarget();
|
GFX->pushActiveRenderTarget();
|
||||||
renderTarget->attachTexture( GFXTextureTarget::DepthStencil, depthBuff );
|
mRenderTarget->attachTexture( GFXTextureTarget::DepthStencil, mDepthBuff );
|
||||||
|
|
||||||
|
|
||||||
F32 oldVisibleDist = gClientSceneGraph->getVisibleDistance();
|
F32 oldVisibleDist = gClientSceneGraph->getVisibleDistance();
|
||||||
|
|
@ -407,8 +407,8 @@ void CubeReflector::updateFace( const ReflectParams ¶ms, U32 faceidx )
|
||||||
|
|
||||||
GFX->setWorldMatrix(matView);
|
GFX->setWorldMatrix(matView);
|
||||||
GFX->clearTextureStateImmediate(0);
|
GFX->clearTextureStateImmediate(0);
|
||||||
renderTarget->attachTexture( GFXTextureTarget::Color0, cubemap, faceidx );
|
mRenderTarget->attachTexture( GFXTextureTarget::Color0, mCubemap, faceidx );
|
||||||
GFX->setActiveRenderTarget( renderTarget );
|
GFX->setActiveRenderTarget(mRenderTarget);
|
||||||
GFX->clear( GFXClearStencil | GFXClearTarget | GFXClearZBuffer, gCanvasClearColor, 1.0f, 0 );
|
GFX->clear( GFXClearStencil | GFXClearTarget | GFXClearZBuffer, gCanvasClearColor, 1.0f, 0 );
|
||||||
|
|
||||||
SceneRenderState reflectRenderState
|
SceneRenderState reflectRenderState
|
||||||
|
|
@ -427,7 +427,7 @@ void CubeReflector::updateFace( const ReflectParams ¶ms, U32 faceidx )
|
||||||
LIGHTMGR->unregisterAllLights();
|
LIGHTMGR->unregisterAllLights();
|
||||||
|
|
||||||
// Clean up.
|
// Clean up.
|
||||||
renderTarget->resolve();
|
mRenderTarget->resolve();
|
||||||
}
|
}
|
||||||
|
|
||||||
F32 CubeReflector::calcFaceScore( const ReflectParams ¶ms, U32 faceidx )
|
F32 CubeReflector::calcFaceScore( const ReflectParams ¶ms, U32 faceidx )
|
||||||
|
|
@ -746,18 +746,18 @@ void PlaneReflector::setGFXMatrices( const MatrixF &camTrans )
|
||||||
MatrixF relCamTrans = invObjTrans * camTrans;
|
MatrixF relCamTrans = invObjTrans * camTrans;
|
||||||
|
|
||||||
MatrixF camReflectTrans = getCameraReflection( relCamTrans );
|
MatrixF camReflectTrans = getCameraReflection( relCamTrans );
|
||||||
MatrixF camTrans = mObject->getRenderTransform() * camReflectTrans;
|
MatrixF objTrans = mObject->getRenderTransform() * camReflectTrans;
|
||||||
camTrans.inverse();
|
objTrans.inverse();
|
||||||
|
|
||||||
GFX->setWorldMatrix( camTrans );
|
GFX->setWorldMatrix(objTrans);
|
||||||
|
|
||||||
// use relative reflect transform for modelview since clip plane is in object space
|
// use relative reflect transform for modelview since clip plane is in object space
|
||||||
camTrans = camReflectTrans;
|
objTrans = camReflectTrans;
|
||||||
camTrans.inverse();
|
objTrans.inverse();
|
||||||
|
|
||||||
// set new projection matrix
|
// set new projection matrix
|
||||||
gClientSceneGraph->setNonClipProjection( (MatrixF&) GFX->getProjectionMatrix() );
|
gClientSceneGraph->setNonClipProjection( (MatrixF&) GFX->getProjectionMatrix() );
|
||||||
MatrixF clipProj = getFrustumClipProj( camTrans );
|
MatrixF clipProj = getFrustumClipProj(objTrans);
|
||||||
GFX->setProjectionMatrix( clipProj );
|
GFX->setProjectionMatrix( clipProj );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -153,16 +153,16 @@ public:
|
||||||
virtual void unregisterReflector();
|
virtual void unregisterReflector();
|
||||||
virtual void updateReflection( const ReflectParams ¶ms );
|
virtual void updateReflection( const ReflectParams ¶ms );
|
||||||
|
|
||||||
GFXCubemap* getCubemap() const { return cubemap; }
|
GFXCubemap* getCubemap() const { return mCubemap; }
|
||||||
|
|
||||||
void updateFace( const ReflectParams ¶ms, U32 faceidx );
|
void updateFace( const ReflectParams ¶ms, U32 faceidx );
|
||||||
F32 calcFaceScore( const ReflectParams ¶ms, U32 faceidx );
|
F32 calcFaceScore( const ReflectParams ¶ms, U32 faceidx );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
GFXTexHandle depthBuff;
|
GFXTexHandle mDepthBuff;
|
||||||
GFXTextureTargetRef renderTarget;
|
GFXTextureTargetRef mRenderTarget;
|
||||||
GFXCubemapHandle cubemap;
|
GFXCubemapHandle mCubemap;
|
||||||
U32 mLastTexSize;
|
U32 mLastTexSize;
|
||||||
|
|
||||||
class CubeFaceReflector : public ReflectorBase
|
class CubeFaceReflector : public ReflectorBase
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue