Opened 16 months ago
Last modified 11 months ago
#6714 new defect
Some models trigger black screen issues.
Reported by: | Stan | Owned by: | |
---|---|---|---|
Priority: | Must Have | Milestone: | Alpha 27 |
Component: | Core engine | Keywords: | |
Cc: | Patch: |
Description (last modified by )
To spot them out you can use
-
source/graphics/ModelDef.cpp
65 65 for (size_t i = 0; i < numBones; ++i) 66 66 boneMatrix[i] = boneMatrix[i] * inverseBindBoneMatrix[i]; 67 67 for (size_t i = 0; i < numverts; ++i) 68 result += SkinPoint(verts[i], boneMatrix .data());68 result += SkinPoint(verts[i], boneMatrix); 69 69 } 70 70 m_MaxBoundsPerAnimDef[animIndex] = result; 71 71 } 72 72 73 73 CVector3D CModelDef::SkinPoint(const SModelVertex& vtx, 74 const CMatrix3D newPoseMatrices[])74 const std::vector<CMatrix3D>& newPoseMatrices) 75 75 { 76 76 CVector3D result (0, 0, 0); 77 77 78 78 for (int i = 0; i < SVertexBlend::SIZE && vtx.m_Blend.m_Bone[i] != 0xff; ++i) 79 79 { 80 ENSURE(vtx.m_Blend.m_Bone[i] < newPoseMatrices.size()); 80 81 result += newPoseMatrices[vtx.m_Blend.m_Bone[i]].Transform(vtx.m_Coords) * vtx.m_Blend.m_Weight[i]; 81 82 } 82 83 … … 450 451 451 452 for (size_t i = 0; i < mdef->m_NumVertices; ++i) 452 453 { 453 mdef->m_pVertices[i].m_Coords = SkinPoint(mdef->m_pVertices[i], &bindPose[0]);454 mdef->m_pVertices[i].m_Coords = SkinPoint(mdef->m_pVertices[i], bindPose); 454 455 mdef->m_pVertices[i].m_Norm = SkinNormal(mdef->m_pVertices[i], &bindPose[0]); 455 456 } 456 457 } -
source/graphics/ModelDef.h
204 204 * @return new world-space vertex coordinates 205 205 */ 206 206 static CVector3D SkinPoint(const SModelVertex& vtx, 207 const CMatrix3D newPoseMatrices[]);207 const std::vector<CMatrix3D>& newPoseMatrices); 208 208 209 209 /** 210 210 * Transform the given vertex's normal from the bind pose into the new pose.
Currently affected actor (Maybe more):
- actor|props/structures/celts/merchant_sail_folded.xml
- actor|props/structures/romans/trireme_fore_sail.xml
Might be related to #1012.
Not sure how to fix it in Blender.
Potential temporary solution: Delete the actor.
Change History (6)
comment:1 by , 16 months ago
Description: | modified (diff) |
---|
comment:2 by , 16 months ago
comment:4 by , 16 months ago
Milestone: | Alpha 27 → Alpha 28 |
---|---|
Priority: | Release Blocker → Must Have |
Keeping this open until we have proper validation.
Note:
See TracTickets
for help on using tickets.
In artist terms this means: