mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-14 08:04:40 +00:00
Merge pull request #928 from BeamNG/renderparticlemanager_sampler_names
Change RenderParticleMgr for use sampler names
This commit is contained in:
commit
98926b1ae1
2 changed files with 16 additions and 4 deletions
|
|
@ -438,13 +438,13 @@ void RenderParticleMgr::renderInstance(ParticleRenderInst *ri, SceneRenderState
|
||||||
GFX->setShader( mParticleShader );
|
GFX->setShader( mParticleShader );
|
||||||
GFX->setShaderConstBuffer( mParticleShaderConsts.mShaderConsts );
|
GFX->setShaderConstBuffer( mParticleShaderConsts.mShaderConsts );
|
||||||
|
|
||||||
GFX->setTexture( 0, ri->diffuseTex );
|
GFX->setTexture( mParticleShaderConsts.mSamplerDiffuse->getSamplerRegister(), ri->diffuseTex );
|
||||||
|
|
||||||
// Set up the prepass texture.
|
// Set up the prepass texture.
|
||||||
if ( mParticleShaderConsts.mPrePassTargetParamsSC->isValid() )
|
if ( mParticleShaderConsts.mPrePassTargetParamsSC->isValid() )
|
||||||
{
|
{
|
||||||
GFXTextureObject *texObject = mPrepassTarget ? mPrepassTarget->getTexture(0) : NULL;
|
GFXTextureObject *texObject = mPrepassTarget ? mPrepassTarget->getTexture(0) : NULL;
|
||||||
GFX->setTexture( 1, texObject );
|
GFX->setTexture( mParticleShaderConsts.mSamplerPrePassTex->getSamplerRegister(), texObject );
|
||||||
|
|
||||||
Point4F rtParams( 0.0f, 0.0f, 1.0f, 1.0f );
|
Point4F rtParams( 0.0f, 0.0f, 1.0f, 1.0f );
|
||||||
if ( texObject )
|
if ( texObject )
|
||||||
|
|
@ -477,7 +477,7 @@ void RenderParticleMgr::renderInstance(ParticleRenderInst *ri, SceneRenderState
|
||||||
// Set offscreen texture
|
// Set offscreen texture
|
||||||
Point4F rtParams;
|
Point4F rtParams;
|
||||||
GFXTextureObject *particleSource = mNamedTarget.getTexture();
|
GFXTextureObject *particleSource = mNamedTarget.getTexture();
|
||||||
GFX->setTexture( 0, particleSource );
|
GFX->setTexture( mParticleCompositeShaderConsts.mSamplerColorSource->getSamplerRegister(), particleSource );
|
||||||
if(particleSource)
|
if(particleSource)
|
||||||
{
|
{
|
||||||
ScreenSpace::RenderTargetParameters(particleSource->getSize(), mNamedTarget.getViewport(), rtParams);
|
ScreenSpace::RenderTargetParameters(particleSource->getSize(), mNamedTarget.getViewport(), rtParams);
|
||||||
|
|
@ -486,7 +486,7 @@ void RenderParticleMgr::renderInstance(ParticleRenderInst *ri, SceneRenderState
|
||||||
|
|
||||||
// And edges
|
// And edges
|
||||||
GFXTextureObject *texObject = mEdgeTarget ? mEdgeTarget->getTexture() : NULL;
|
GFXTextureObject *texObject = mEdgeTarget ? mEdgeTarget->getTexture() : NULL;
|
||||||
GFX->setTexture( 1, texObject );
|
GFX->setTexture( mParticleCompositeShaderConsts.mSamplerEdgeSource->getSamplerRegister(), texObject );
|
||||||
if(texObject)
|
if(texObject)
|
||||||
{
|
{
|
||||||
ScreenSpace::RenderTargetParameters(texObject->getSize(), mEdgeTarget->getViewport(), rtParams);
|
ScreenSpace::RenderTargetParameters(texObject->getSize(), mEdgeTarget->getViewport(), rtParams);
|
||||||
|
|
@ -557,6 +557,11 @@ bool RenderParticleMgr::_initShader()
|
||||||
mParticleShaderConsts.mAlphaScaleSC = mParticleShader->getShaderConstHandle( "$alphaScale" );
|
mParticleShaderConsts.mAlphaScaleSC = mParticleShader->getShaderConstHandle( "$alphaScale" );
|
||||||
mParticleShaderConsts.mFSModelViewProjSC = mParticleShader->getShaderConstHandle( "$fsModelViewProj" );
|
mParticleShaderConsts.mFSModelViewProjSC = mParticleShader->getShaderConstHandle( "$fsModelViewProj" );
|
||||||
mParticleShaderConsts.mPrePassTargetParamsSC = mParticleShader->getShaderConstHandle( "$prePassTargetParams" );
|
mParticleShaderConsts.mPrePassTargetParamsSC = mParticleShader->getShaderConstHandle( "$prePassTargetParams" );
|
||||||
|
|
||||||
|
//samplers
|
||||||
|
mParticleShaderConsts.mSamplerDiffuse = mParticleShader->getShaderConstHandle("$diffuseMap");
|
||||||
|
mParticleShaderConsts.mSamplerPrePassTex = mParticleShader->getShaderConstHandle("$prepassTex");
|
||||||
|
mParticleShaderConsts.mSamplerParaboloidLightMap = mParticleShader->getShaderConstHandle("$paraboloidLightMap");
|
||||||
}
|
}
|
||||||
|
|
||||||
shaderData = NULL;
|
shaderData = NULL;
|
||||||
|
|
@ -572,6 +577,8 @@ bool RenderParticleMgr::_initShader()
|
||||||
{
|
{
|
||||||
mParticleCompositeShaderConsts.mShaderConsts = mParticleCompositeShader->allocConstBuffer();
|
mParticleCompositeShaderConsts.mShaderConsts = mParticleCompositeShader->allocConstBuffer();
|
||||||
mParticleCompositeShaderConsts.mScreenRect = mParticleCompositeShader->getShaderConstHandle( "$screenRect" );
|
mParticleCompositeShaderConsts.mScreenRect = mParticleCompositeShader->getShaderConstHandle( "$screenRect" );
|
||||||
|
mParticleCompositeShaderConsts.mSamplerColorSource = mParticleCompositeShader->getShaderConstHandle( "$colorSource" );
|
||||||
|
mParticleCompositeShaderConsts.mSamplerEdgeSource = mParticleCompositeShader->getShaderConstHandle( "$edgeSource" );
|
||||||
mParticleCompositeShaderConsts.mEdgeTargetParamsSC = mParticleCompositeShader->getShaderConstHandle( "$edgeTargetParams" );
|
mParticleCompositeShaderConsts.mEdgeTargetParamsSC = mParticleCompositeShader->getShaderConstHandle( "$edgeTargetParams" );
|
||||||
mParticleCompositeShaderConsts.mOffscreenTargetParamsSC = mParticleCompositeShader->getShaderConstHandle( "$offscreenTargetParams" );
|
mParticleCompositeShaderConsts.mOffscreenTargetParamsSC = mParticleCompositeShader->getShaderConstHandle( "$offscreenTargetParams" );
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -110,6 +110,9 @@ protected:
|
||||||
GFXShaderConstHandle *mPrePassTargetParamsSC;
|
GFXShaderConstHandle *mPrePassTargetParamsSC;
|
||||||
GFXShaderConstHandle *mAlphaFactorSC;
|
GFXShaderConstHandle *mAlphaFactorSC;
|
||||||
GFXShaderConstHandle *mAlphaScaleSC;
|
GFXShaderConstHandle *mAlphaScaleSC;
|
||||||
|
GFXShaderConstHandle *mSamplerDiffuse;
|
||||||
|
GFXShaderConstHandle *mSamplerPrePassTex;
|
||||||
|
GFXShaderConstHandle *mSamplerParaboloidLightMap;
|
||||||
|
|
||||||
} mParticleShaderConsts;
|
} mParticleShaderConsts;
|
||||||
|
|
||||||
|
|
@ -118,6 +121,8 @@ protected:
|
||||||
GFXShaderConstBufferRef mShaderConsts;
|
GFXShaderConstBufferRef mShaderConsts;
|
||||||
GFXShaderConstHandle *mSystemDepth;
|
GFXShaderConstHandle *mSystemDepth;
|
||||||
GFXShaderConstHandle *mScreenRect;
|
GFXShaderConstHandle *mScreenRect;
|
||||||
|
GFXShaderConstHandle *mSamplerColorSource;
|
||||||
|
GFXShaderConstHandle *mSamplerEdgeSource;
|
||||||
GFXShaderConstHandle *mEdgeTargetParamsSC;
|
GFXShaderConstHandle *mEdgeTargetParamsSC;
|
||||||
GFXShaderConstHandle *mOffscreenTargetParamsSC;
|
GFXShaderConstHandle *mOffscreenTargetParamsSC;
|
||||||
} mParticleCompositeShaderConsts;
|
} mParticleCompositeShaderConsts;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue