Merge pull request #794 from Azaezel/alpha40/convexShapeShaderStandardization

set convexshape to use a standard vertex type
This commit is contained in:
Brian Roberts 2022-05-29 22:53:13 -05:00 committed by GitHub
commit 925f6ebe41
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 13 deletions

View file

@ -1205,11 +1205,15 @@ void ConvexShape::_updateMaterial()
//update our custom surface materials
for (U32 i = 0; i<mSurfaceTextures.size(); i++)
{
mSurfaceTextures[i]._setMaterial(mSurfaceTextures[i].getMaterial());
//If we already have the material inst and it hasn't changed, skip
if (mSurfaceTextures[i].materialInst &&
mSurfaceTextures[i].getMaterialAsset()->getMaterialDefinitionName() == mSurfaceTextures[i].materialInst->getMaterial()->getName())
mSurfaceTextures[i].getMaterialAsset()->getMaterialDefinitionName() == mSurfaceTextures[i].materialInst->getMaterial()->getName() &&
mSurfaceTextures[i].materialInst->getVertexFormat() == getGFXVertexFormat<VertexType>())
continue;
SAFE_DELETE(mSurfaceTextures[i].materialInst);
Material* material = mSurfaceTextures[i].getMaterialResource();
if (material == nullptr)
@ -1227,8 +1231,10 @@ void ConvexShape::_updateMaterial()
}
}
_setMaterial(getMaterial());
// If the material name matches then don't bother updating it.
if (mMaterialInst && getMaterialAsset()->getMaterialDefinitionName() == mMaterialInst->getMaterial()->getName())
if (mMaterialInst && getMaterialAsset()->getMaterialDefinitionName() == mMaterialInst->getMaterial()->getName() &&
mMaterialInst->getVertexFormat() == getGFXVertexFormat<VertexType>())
return;
SAFE_DELETE( mMaterialInst );
@ -1240,12 +1246,6 @@ void ConvexShape::_updateMaterial()
mMaterialInst = material->createMatInstance();
//GFXStateBlockDesc desc;
//desc.setCullMode( GFXCullNone );
//desc.setBlend( false );
//mMaterialInst->addStateBlockDesc( desc );
FeatureSet features = MATMGR->getDefaultFeatures();
//features.addFeature( MFT_DiffuseVertColor );
@ -1436,10 +1436,12 @@ void ConvexShape::_updateGeometry( bool updateCollision )
for (S32 k = 0; k < 3; k++)
{
pVert->normal = face.normal;
pVert->tangent = face.tangent;
pVert->color = faceColor;
pVert->T = face.tangent;
pVert->B = mCross(face.normal,face.tangent);
//pVert->color = faceColor;
pVert->point = pointList[facePntMap[triangles[j][k]]];
pVert->texCoord = face.texcoords[triangles[j][k]];
pVert->texCoord2 = pVert->texCoord;
pVert++;
vc++;

View file

@ -77,9 +77,6 @@ GFXDeclareVertexFormat( ConvexVert )
class PhysicsBody;
// Define our vertex format here so we don't have to
// change it in multiple spots later
typedef ConvexVert VertexType;
class ConvexShape : public SceneObject
{
@ -100,6 +97,10 @@ public:
// the otherwise excessively deep scoping we had.
// eg. ConvexShape::Face::Triangle ...
// Define our vertex format here so we don't have to
// change it in multiple spots later
typedef GFXVertexPNTTB VertexType;
struct Edge
{
U32 p0;