mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-19 20:24:49 +00:00
commit
d7042fb6c3
|
|
@ -355,7 +355,7 @@ bool ParticleData::protectedSetSizes( void *object, const char *index, const cha
|
|||
U32 i;
|
||||
|
||||
if (!index)
|
||||
i = 0;
|
||||
return (val >= 0.f && val <= MaxParticleSize);
|
||||
else
|
||||
i = dAtoui(index);
|
||||
|
||||
|
|
@ -371,7 +371,7 @@ bool ParticleData::protectedSetTimes( void *object, const char *index, const cha
|
|||
U32 i;
|
||||
|
||||
if (!index)
|
||||
i = 0;
|
||||
return (val >= 0.f && val <= 1.f);
|
||||
else
|
||||
i = dAtoui(index);
|
||||
|
||||
|
|
|
|||
|
|
@ -1825,22 +1825,22 @@ void ParticleEmitter::setupOriented( Particle *part,
|
|||
lVerts->point = start + crossDir;
|
||||
lVerts->color = partCol;
|
||||
// Here and below, we copy UVs from particle datablock's texCoords (oriented)
|
||||
lVerts->texCoord = part->dataBlock->texCoords[0];
|
||||
lVerts->texCoord = part->dataBlock->texCoords[1];
|
||||
++lVerts;
|
||||
|
||||
lVerts->point = start - crossDir;
|
||||
lVerts->color = partCol;
|
||||
lVerts->texCoord = part->dataBlock->texCoords[1];
|
||||
lVerts->texCoord = part->dataBlock->texCoords[2];
|
||||
++lVerts;
|
||||
|
||||
lVerts->point = end - crossDir;
|
||||
lVerts->color = partCol;
|
||||
lVerts->texCoord = part->dataBlock->texCoords[2];
|
||||
lVerts->texCoord = part->dataBlock->texCoords[3];
|
||||
++lVerts;
|
||||
|
||||
lVerts->point = end + crossDir;
|
||||
lVerts->color = partCol;
|
||||
lVerts->texCoord = part->dataBlock->texCoords[3];
|
||||
lVerts->texCoord = part->dataBlock->texCoords[0];
|
||||
++lVerts;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6158,7 +6158,10 @@ U32 Player::packUpdate(NetConnection *con, U32 mask, BitStream *stream)
|
|||
stream->writeFlag(!(mask & NoWarpMask));
|
||||
}
|
||||
// Ghost need energy to predict reliably
|
||||
stream->writeFloat(getEnergyLevel() / mDataBlock->maxEnergy,EnergyLevelBits);
|
||||
if (mDataBlock->maxEnergy > 0.f)
|
||||
stream->writeFloat(getEnergyLevel() / mDataBlock->maxEnergy, EnergyLevelBits);
|
||||
else
|
||||
stream->writeFloat(0.f, EnergyLevelBits);
|
||||
return retMask;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -230,6 +230,9 @@ bool ProjectedShadow::_updateDecal( const SceneRenderState *state )
|
|||
lightCount++;
|
||||
}
|
||||
|
||||
if (mShapeBase)
|
||||
fade *= mShapeBase->getFadeVal();
|
||||
|
||||
lightDir.normalize();
|
||||
|
||||
// No light... no shadow.
|
||||
|
|
|
|||
|
|
@ -290,6 +290,12 @@ bool MatInstance::init( const FeatureSet &features,
|
|||
//----------------------------------------------------------------------------
|
||||
bool MatInstance::reInit()
|
||||
{
|
||||
if (!mVertexFormat)
|
||||
{
|
||||
mIsValid = false;
|
||||
return mIsValid;
|
||||
}
|
||||
|
||||
SAFE_DELETE(mProcessedMaterial);
|
||||
deleteAllHooks();
|
||||
mIsValid = processMaterial();
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
#include "materials/materialFeatureTypes.h"
|
||||
#include "materials/materialFeatureData.h"
|
||||
|
||||
#include "terrain/terrFeatureTypes.h"
|
||||
|
||||
void EyeSpaceDepthOutHLSL::processVert( Vector<ShaderComponent*> &componentList,
|
||||
const MaterialFeatureData &fd )
|
||||
|
|
@ -85,7 +85,12 @@ void EyeSpaceDepthOutHLSL::processPix( Vector<ShaderComponent*> &componentList,
|
|||
LangElement *depthOutDecl = new DecOp( depthOut );
|
||||
|
||||
meta->addStatement( new GenOp( "#ifndef CUBE_SHADOW_MAP\r\n" ) );
|
||||
meta->addStatement( new GenOp( " @ = dot(@, (@.xyz / @.w));\r\n", depthOutDecl, vEye, wsEyeVec, wsEyeVec ) );
|
||||
|
||||
if (fd.features.hasFeature(MFT_TerrainBaseMap))
|
||||
meta->addStatement(new GenOp(" @ =min(0.9999, dot(@, (@.xyz / @.w)));\r\n", depthOutDecl, vEye, wsEyeVec, wsEyeVec));
|
||||
else
|
||||
meta->addStatement(new GenOp(" @ = dot(@, (@.xyz / @.w));\r\n", depthOutDecl, vEye, wsEyeVec, wsEyeVec));
|
||||
|
||||
meta->addStatement( new GenOp( "#else\r\n" ) );
|
||||
|
||||
Var *farDist = (Var*)Var::find( "oneOverFarplane" );
|
||||
|
|
|
|||
Loading…
Reference in a new issue