Tenho certeza de que mOffsetMatrix transforma o vértice do espaço de malha para o espaço do osso, o que é confirmado por este http://assimp.sourceforge.net/lib_html/structai_bone.html
Mas então eu vi isso, que diz que ele realmente transforma vértices do espaço ósseo em espaço de malha. https://github.com/assimp/assimp/pull/1803
Agora estou muito confuso. Então, o que exatamente o mOffsetMatrix faz?
Respostas:
0 para resposta № 1A documentação está errada. Então, preciso atualizar nosso documento. Vejo edição 1950
0 para resposta № 2
Aqui está a resposta para sua pergunta (vinda de uma solução do bug):
Depende de como você pensa na transformação. Se a matriz multiplicações vêm depois do ponto (ou seja, ponto * transformar com ponto sendo um vetor "row"), então faz sentido dizer que converte de "espaço de malha para o espaço ósseo", como leva um ponto no espaço de malha e produz um ponto no espaço ósseo. Mas ao usar a pré-multiplicação da matriz como o assimp faz (tranform * aponta com o ponto sendo um vetor de "coluna") faz mais sentido pensar nisso como transformar o próprio espaço, do "espaço do osso ao espaço da malha", com que o ponto no espaço da malha pode ser usado.
É por isso que o pôster original está confusoporque eles estão pensando sobre isso de trás para frente, comparado a como o assimet trata a transformação do ponto. Isso provavelmente está levando diretamente à confusão deles com o trabalho a matriz de transformação do osso e pensando que este deve ser o mesmo que mOffsetMatrix, quando na verdade é o inverso.
Isso tudo é especialmente confuso, pois o DirectX usa pós-multiplicação, e o OpenGL usa pré-multiplicação.
Isso tudo dito, espero que alguém possa atualizar odocumentação assim que isso deixa claro para todos. É muito difícil especificar claramente sem uma maneira "oficial" de pensar sobre esse tipo de coisa. Eu nem consigo achar documentado em nenhum lugar como o assimil trata multiplicação de matriz de transformação ... embora a notação de matriz usado na página "Estruturas de Dados" do documento assimp implica pré-multiplicação com vetores de coluna.
Espero que isso ajude você.