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:
Lasse Öörni 2013-06-16 18:24:31 +00:00
Родитель 090eb3aafa
Коммит da953b8aa7
8 изменённых файлов: 8 добавлений и 6 удалений

Просмотреть файл

@ -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_));
}
}
}