Write morph tangents as Vector3's in OgreImporter.
Fixed example particle system description files using wrong attribute name for sorting. Clarified vertex weight threshold for bone hitbox calculation.
This commit is contained in:
Родитель
090eb3aafa
Коммит
da953b8aa7
|
@ -6,7 +6,7 @@
|
|||
<activetime value="2" />
|
||||
<inactivetime value="0" />
|
||||
<emissionrate value="13.333" />
|
||||
<sorting enable="true" />
|
||||
<sorted enable="true" />
|
||||
<rotationspeed min="-60" max="60" />
|
||||
<direction min="-0.15 1 -0.15" max="0.15 1 0.15" />
|
||||
<velocity min="1" max="1.3" />
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<activetime value="0.1" />
|
||||
<inactivetime value="0" />
|
||||
<emissionrate value="50" />
|
||||
<sorting enable="true" />
|
||||
<sorted enable="true" />
|
||||
<direction min="-1 0 -1" max="1 1 1" />
|
||||
<velocity min="0.5" max="1" />
|
||||
<particlesize value="0.25 0.25" />
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<activetime value="0.2" />
|
||||
<inactivetime value="0" />
|
||||
<emissionrate value="50" />
|
||||
<sorting enable="true" />
|
||||
<sorted enable="true" />
|
||||
<direction min="-1 0.5 -1" max="1 1 1" />
|
||||
<velocity min="2" max="3" />
|
||||
<particlesize value="0.6 0.6" />
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<activetime value="0.1" />
|
||||
<inactivetime value="0" />
|
||||
<emissionrate value="50" />
|
||||
<sorting enable="true" />
|
||||
<sorted enable="true" />
|
||||
<direction min="-1 0 -1" max="1 1 1" />
|
||||
<velocity min="0.5" max="1" />
|
||||
<particlesize value="0.25 0.25" />
|
||||
|
|
|
@ -1015,7 +1015,7 @@ Like with skeletal animations, there are two ways to play back node animations:
|
|||
|
||||
The ParticleEmitter class derives from BillboardSet to implement a particle system that updates automatically.
|
||||
|
||||
The particle system's properties can be set through a XML description file, see \ref ParticleEmitter::Load "Load()".
|
||||
The particle system's properties can also be set through a XML description file, see \ref ParticleEmitter::Load "Load()".
|
||||
|
||||
Most of the parameters can take either a single value, or minimum and maximum values to allow for random variation. See below for all supported parameters:
|
||||
|
||||
|
|
|
@ -610,6 +610,7 @@ void BuildBoneCollisionInfo(OutModel& model)
|
|||
for (unsigned k = 0; k < bone->mNumWeights; ++k)
|
||||
{
|
||||
float weight = bone->mWeights[k].mWeight;
|
||||
// Require skinning weight to be sufficiently large before vertex contributes to bone hitbox
|
||||
if (weight > 0.33f)
|
||||
{
|
||||
aiVector3D vertexBoneSpace = bone->mOffsetMatrix * mesh->mVertices[bone->mWeights[k].mVertexId];
|
||||
|
|
|
@ -450,6 +450,7 @@ void LoadMesh(const String& inputFileName, bool generateTangents, bool splitSubM
|
|||
{
|
||||
subGeometryLodLevel.boneWeights_[vertex].Push(assign);
|
||||
|
||||
// Require skinning weight to be sufficiently large before vertex contributes to bone hitbox
|
||||
if (assign.weight_ > 0.33f)
|
||||
{
|
||||
// Check distance of vertex from bone to get bone max. radius information
|
||||
|
|
|
@ -180,7 +180,7 @@ struct ModelMorph
|
|||
if (elementMask & MASK_NORMAL)
|
||||
dest.WriteVector3(j->second_.normal_);
|
||||
if (elementMask & MASK_TANGENT)
|
||||
dest.WriteVector4(j->second_.tangent_);
|
||||
dest.WriteVector3(Vector3(j->second_.tangent_.x_, j->second_.tangent_.y_, j->second_.tangent_.z_));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче