Desidero animare un modello (ad esempio un uomo che cammina) in OpenGL. So che c'è roba come scheletro-animazione (con la matematica difficile), ma per quanto riguarda questo ....Come animare un modello 3d (mesh) in OpenGL?
- creare un modello in Blender
- Creare uno scheletro per quel modello in Blender
- Ora fare un'animazione a piedi in Blender con quel modello e scheletro
- Prendete un po ' "fotogrammi chiave" di quel animazione e esportare ogni "fotogramma chiave" come un unico modello (ad esempio come obj file)
- Fai loader di file oBJ per OpenGL (per ottenere vertici, texture, dati normali e volti)
- Utilizzare un VBO per disegnare quel modello animato in OpenGL (e ottenere alcune idee difficili come cambiare il "fotogramma chiave" corrente/modello della VBO ... forse qualcosa con
glMapBufferRange
Ok, so che questa idea è solo una piccola sceneggiatura, ma vale la pena guardare oltre? Qual è un buon concetto per cambiare i "keyFrame"/modelli nel VBO?
So che problema di memoria, ma con i modelli piccoli (e non troppe animazioni) si potrebbe fare, credo.
Per essere onesti, l'attuazione del presente interpolazione dei fotogrammi chiave su un livello di vertice è probabilmente un sacco di più sforzo, che imple menting di un sistema di animazione scheletrico. L'animazione scheletrica non veniva eseguita nei "vecchi" giorni, perché alla CPU mancava la potenza per eseguire tutte quelle trasformazioni aggiuntive dei vertici. Ma le GPU di oggi scricchiolano quella matrice aggiuntiva e l'interpolazione per la colazione e anche il codice in GLSL è molto meno. – datenwolf
@datenwolf Sono d'accordo con te sulle prestazioni, ma non sono d'accordo sulla facilità di implementazione dell'animazione scheletrica. L'interpolazione verticale è 'per i verts [i] = lerp (t, precedente [i], successivo [i])}' In confronto alla slerping di una gerarchia di quaternioni, con relazioni e lunghezze, (quella parte non male) ma poi devi associare i vertici con pesi ossei. Sono solo molti più dati da gestire. –
thx per la risposta veloce! – user2602528