Man that's unfortunate what you mentioned why is this stuff broken now :/
Also I post my custom vertex Descriptor below.
Code: Select all
video::IVertexDescriptor* vertexDescriptor = driver->addVertexDescriptor("Skinning");
vertexDescriptor->addAttribute("inPosition", 3, video::EVAS_POSITION, video::EVAT_FLOAT, 0);
vertexDescriptor->addAttribute("inTexCoord0", 2, video::EVAS_TEXCOORD0, video::EVAT_FLOAT, 0);
vertexDescriptor->addAttribute("inNormal", 3, video::EVAS_NORMAL, video::EVAT_FLOAT, 0);
vertexDescriptor->addAttribute("inTangent", 3, video::EVAS_TANGENT, video::EVAT_FLOAT, 0);
vertexDescriptor->addAttribute("inBinormal", 3, video::EVAS_BINORMAL, video::EVAT_FLOAT, 0);
vertexDescriptor->addAttribute("inBlendWeight", 4, video::EVAS_BLEND_WEIGHTS, video::EVAT_FLOAT, 0);
vertexDescriptor->addAttribute("inBlendIndex", 4, video::EVAS_BLEND_INDICES, video::EVAT_FLOAT, 0);
// convert vertices's.
for (u32 i = 0; i < skinMesh->getMeshBufferCount(); ++i)
smgr->getMeshManipulator()->convertVertices<SSkinningVertex>(skinMesh->getMeshBuffer(i), vertexDescriptor, false),
smgr->getMeshManipulator()->createTangents<video::S3DVertexTangents>(skinMesh->getMesh(0)->getMeshBuffer(i), vertexDescriptor, false);
skinMesh->updateNormalsWhenAnimating(true);
skinMesh->setHardwareSkinning(true); // Value has been changed
//////////////// rest of code flows from here