mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-12 07:04:36 +00:00
Merge branch 'GarageGames/development' into ueberengine-dev-3.10
Conflicts: Engine/source/app/version.h Engine/source/terrain/terrData.cpp
This commit is contained in:
commit
186604eb76
974 changed files with 121718 additions and 233088 deletions
|
|
@ -1067,8 +1067,12 @@ void TerrainAdditiveFeatGLSL::processPix( Vector<ShaderComponent*> &componentLis
|
|||
const MaterialFeatureData &fd )
|
||||
{
|
||||
Var *color = NULL;
|
||||
Var *normal = NULL;
|
||||
if (fd.features[MFT_DeferredTerrainDetailMap])
|
||||
{
|
||||
color = (Var*) LangElement::find( getOutputTargetVarName(ShaderFeature::RenderTarget1) );
|
||||
normal = (Var*) LangElement::find( getOutputTargetVarName(ShaderFeature::DefaultTarget) );
|
||||
}
|
||||
else
|
||||
color = (Var*) LangElement::find( getOutputTargetVarName(ShaderFeature::DefaultTarget) );
|
||||
|
||||
|
|
@ -1080,6 +1084,8 @@ void TerrainAdditiveFeatGLSL::processPix( Vector<ShaderComponent*> &componentLis
|
|||
|
||||
meta->addStatement( new GenOp( " clip( @ - 0.0001 );\r\n", blendTotal ) );
|
||||
meta->addStatement( new GenOp( " @.a = @;\r\n", color, blendTotal ) );
|
||||
if (normal)
|
||||
meta->addStatement(new GenOp(" @.a = @;\r\n", normal, blendTotal));
|
||||
|
||||
output = meta;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1165,8 +1165,12 @@ void TerrainAdditiveFeatHLSL::processPix( Vector<ShaderComponent*> &componentLis
|
|||
const MaterialFeatureData &fd )
|
||||
{
|
||||
Var *color = NULL;
|
||||
Var *normal = NULL;
|
||||
if (fd.features[MFT_DeferredTerrainDetailMap])
|
||||
{
|
||||
color = (Var*) LangElement::find( getOutputTargetVarName(ShaderFeature::RenderTarget1) );
|
||||
normal = (Var*) LangElement::find( getOutputTargetVarName(ShaderFeature::DefaultTarget) );
|
||||
}
|
||||
else
|
||||
color = (Var*) LangElement::find( getOutputTargetVarName(ShaderFeature::DefaultTarget) );
|
||||
|
||||
|
|
@ -1179,6 +1183,8 @@ void TerrainAdditiveFeatHLSL::processPix( Vector<ShaderComponent*> &componentLis
|
|||
meta->addStatement( new GenOp( " clip( @ - 0.0001 );\r\n", blendTotal ) );
|
||||
meta->addStatement( new GenOp( " @.a = @;\r\n", color, blendTotal ) );
|
||||
|
||||
if (normal)
|
||||
meta->addStatement(new GenOp(" @.a = @;\r\n", normal, blendTotal));
|
||||
|
||||
output = meta;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,11 +49,11 @@ const U32 TerrCell::smTriCount = TerrCell::smPBSize / 3; // 33
|
|||
|
||||
|
||||
TerrCell::TerrCell()
|
||||
: mMaterials( 0 ),
|
||||
: mTriCount( 0 ),
|
||||
mHasEmpty( false ),
|
||||
mMaterial( NULL ),
|
||||
mIsInteriorOnly( false ),
|
||||
mTriCount( 0 ),
|
||||
mHasEmpty( false )
|
||||
mMaterials( 0 ),
|
||||
mIsInteriorOnly( false )
|
||||
{
|
||||
dMemset( mChildren, 0, sizeof( mChildren ) );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,8 +69,8 @@ Vector<String> _initSamplerNames()
|
|||
const Vector<String> TerrainCellMaterial::mSamplerNames = _initSamplerNames();
|
||||
|
||||
TerrainCellMaterial::TerrainCellMaterial()
|
||||
: mCurrPass( 0 ),
|
||||
mTerrain( NULL ),
|
||||
: mTerrain( NULL ),
|
||||
mCurrPass( 0 ),
|
||||
mPrePassMat( NULL ),
|
||||
mReflectMat( NULL )
|
||||
{
|
||||
|
|
@ -152,11 +152,17 @@ void TerrainCellMaterial::_updateDefaultAnisotropy()
|
|||
} // for ( U32 m=0; m < pass.materials.size(); m++ )
|
||||
|
||||
// Set the updated stateblock.
|
||||
desc.setCullMode( GFXCullCCW );
|
||||
pass.stateBlock = GFX->createStateBlock( desc );
|
||||
|
||||
//reflection
|
||||
desc.setCullMode( GFXCullCW );
|
||||
pass.reflectionStateBlock = GFX->createStateBlock(desc);
|
||||
|
||||
// Create the wireframe state blocks.
|
||||
GFXStateBlockDesc wireframe( desc );
|
||||
wireframe.fillMode = GFXFillWireframe;
|
||||
wireframe.setCullMode( GFXCullCCW );
|
||||
pass.wireframeStateBlock = GFX->createStateBlock( wireframe );
|
||||
|
||||
} // for ( U32 p=0; i < (*iter)->mPasses.size(); p++ )
|
||||
|
|
@ -548,8 +554,8 @@ bool TerrainCellMaterial::_createPass( Vector<MaterialInfo*> *materials,
|
|||
// MFT_TerrainAdditive feature to lerp the
|
||||
// output normal with the previous pass.
|
||||
//
|
||||
//if ( prePassMat )
|
||||
//desc.setColorWrites( true, true, false, false );
|
||||
if ( prePassMat )
|
||||
desc.setColorWrites( true, true, true, false );
|
||||
}
|
||||
|
||||
// We write to the zbuffer if this is a prepass
|
||||
|
|
@ -668,15 +674,17 @@ bool TerrainCellMaterial::_createPass( Vector<MaterialInfo*> *materials,
|
|||
if ( prePassMat )
|
||||
desc.addDesc( RenderPrePassMgr::getOpaqueStenciWriteDesc( false ) );
|
||||
|
||||
// Shut off culling for prepass materials (reflection support).
|
||||
if ( prePassMat )
|
||||
desc.setCullMode( GFXCullNone );
|
||||
desc.setCullMode( GFXCullCCW );
|
||||
pass->stateBlock = GFX->createStateBlock(desc);
|
||||
|
||||
pass->stateBlock = GFX->createStateBlock( desc );
|
||||
//reflection stateblock
|
||||
desc.setCullMode( GFXCullCW );
|
||||
pass->reflectionStateBlock = GFX->createStateBlock(desc);
|
||||
|
||||
// Create the wireframe state blocks.
|
||||
GFXStateBlockDesc wireframe( desc );
|
||||
wireframe.fillMode = GFXFillWireframe;
|
||||
wireframe.setCullMode( GFXCullCCW );
|
||||
pass->wireframeStateBlock = GFX->createStateBlock( wireframe );
|
||||
|
||||
return true;
|
||||
|
|
@ -776,6 +784,8 @@ bool TerrainCellMaterial::setupPass( const SceneRenderState *state,
|
|||
|
||||
if ( sceneData.wireframe )
|
||||
GFX->setStateBlock( pass.wireframeStateBlock );
|
||||
else if ( state->isReflectPass( ))
|
||||
GFX->setStateBlock( pass.reflectionStateBlock );
|
||||
else
|
||||
GFX->setStateBlock( pass.stateBlock );
|
||||
|
||||
|
|
|
|||
|
|
@ -108,6 +108,7 @@ protected:
|
|||
|
||||
GFXStateBlockRef stateBlock;
|
||||
GFXStateBlockRef wireframeStateBlock;
|
||||
GFXStateBlockRef reflectionStateBlock;
|
||||
|
||||
GFXShaderConstHandle *modelViewProjConst;
|
||||
GFXShaderConstHandle *worldViewOnly;
|
||||
|
|
|
|||
|
|
@ -180,24 +180,24 @@ ImplementEnumType(baseTexFormat,
|
|||
EndImplementEnumType;
|
||||
|
||||
TerrainBlock::TerrainBlock()
|
||||
: mSquareSize( 1.0f ),
|
||||
mCastShadows( true ),
|
||||
mScreenError( 16 ),
|
||||
mDetailsDirty( false ),
|
||||
mLayerTexDirty( false ),
|
||||
mLightMap( NULL ),
|
||||
: mLightMap( NULL ),
|
||||
mLightMapSize( 256 ),
|
||||
mMaxDetailDistance( 0.0f ),
|
||||
mCell( NULL ),
|
||||
mCRC( 0 ),
|
||||
mBaseTexSize( 1024 ),
|
||||
mBaseTexFormat( TerrainBlock::JPG ),
|
||||
mBaseMaterial( NULL ),
|
||||
mDefaultMatInst( NULL ),
|
||||
mMaxDetailDistance( 0.0f ),
|
||||
mBaseTexScaleConst( NULL ),
|
||||
mBaseTexIdConst( NULL ),
|
||||
mDetailsDirty( false ),
|
||||
mLayerTexDirty( false ),
|
||||
mBaseTexSize( 1024 ),
|
||||
mBaseTexFormat( TerrainBlock::PNG ),
|
||||
mCell( NULL ),
|
||||
mBaseMaterial( NULL ),
|
||||
mDefaultMatInst( NULL ),
|
||||
mSquareSize( 1.0f ),
|
||||
mPhysicsRep( NULL ),
|
||||
mZoningDirty( false ),
|
||||
mScreenError( 16 ),
|
||||
mCastShadows( true ),
|
||||
mZoningDirty( false )
|
||||
mUpdateBasetex ( true )
|
||||
{
|
||||
mTypeMask = TerrainObjectType | StaticObjectType | StaticShapeObjectType;
|
||||
|
|
|
|||
|
|
@ -45,9 +45,9 @@ template<> ResourceBase::Signature Resource<TerrainFile>::signature()
|
|||
|
||||
|
||||
TerrainFile::TerrainFile()
|
||||
: mNeedsResaving( false ),
|
||||
: mSize( 256 ),
|
||||
mFileVersion( FILE_VERSION ),
|
||||
mSize( 256 )
|
||||
mNeedsResaving( false )
|
||||
{
|
||||
mLayerMap.setSize( mSize * mSize );
|
||||
dMemset( mLayerMap.address(), 0, mLayerMap.memSize() );
|
||||
|
|
|
|||
|
|
@ -57,11 +57,11 @@ ConsoleDocClass( TerrainMaterial,
|
|||
"@ingroup enviroMisc\n");
|
||||
|
||||
TerrainMaterial::TerrainMaterial()
|
||||
: mSideProjection( false ),
|
||||
mDiffuseSize( 500.0f ),
|
||||
: mDiffuseSize( 500.0f ),
|
||||
mDetailSize( 5.0f ),
|
||||
mDetailStrength( 1.0f ),
|
||||
mDetailDistance( 50.0f ),
|
||||
mSideProjection( false ),
|
||||
mMacroSize( 200.0f ),
|
||||
mMacroStrength( 0.7f ),
|
||||
mMacroDistance( 500.0f ),
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
#include "terrain/terrData.h"
|
||||
#endif
|
||||
|
||||
enum TerrConstants
|
||||
enum TerrConstants : U32
|
||||
{
|
||||
MaxClipPlanes = 8, ///< left, right, top, bottom - don't need far tho...
|
||||
//MaxTerrainMaterials = 256,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue