DGL
https://delphigl.com/forum/

Vertex Blending im Vertex Shader
https://delphigl.com/forum/viewtopic.php?f=20&t=5698
Seite 1 von 1

Autor:  Speedmaster [ Mo Jul 17, 2006 11:26 ]
Betreff des Beitrags:  Vertex Blending im Vertex Shader

Hi,

Gibt es irgendwo ein paar Anständige Beispiele für Vertex Blending im Vertex Shader unter GLSL?
Bisher habe ich trotz Suche nichts gefunden.

Dabei sollte es auch um Bones gehen u.s.w.

mfg

Speedmaster

Autor:  oc2k1 [ Mi Jul 19, 2006 18:35 ]
Betreff des Beitrags: 

In meinem Kopf...

So ungefähr geht es bei Bones:

Wenn maximal 4 Bones einen einfluuis haben könnnen muss die abhängigkeit mit den attributen übergeben werden: Entweder als texturkoordinaten faken oder besser Als Atribute übergeben.

Die Bonematrizen übergibt man per Uniformvariablen, Wenn man die Matrizen geschickt zusammen packt, dann kommt man mit 8 Float4 vektoren aus und kann bis zu 128 Bones verwenden (OK das ist teorie praktisch sollen 80 möhglich sein)
Im Vertexshader liest mal als erstes aus welcher Bone einfluss auf den aktuellen Vertex hat und ließt anschließen die Gewichtung aus (Besser ist es wenn man den Anteil vor dem Komma für die Bonenummer und den Nachkommateil für die gewichtung benutzt. Das spart Bandbreite...)
Mit hilfe derBonenummer hohl man sich aus den den Uniformvariablen die richtige Matrix und entpackt sie gegebenfalls und tranformiert den Vertex damit. Das ganze mach man für die anderen Bonabhängigkeiten genauso und gewichtet das genze mit hilfe der gewichtung....


Keyframinterpolation ist ein Witz dagegen:

Es wird eine Uniformvariable zwischen 0 und 1 gebraucht, die gewichtung zwischen den Keyframes angibt.
Der erste Satz Vertex und Normalen wird wie gewohnt als VBO übergeben, den zweiten Satz kann man entweder alas 3d Texturkoordinaten tarnen oder als Atribute übergeben. Ganz am anfang muss man nur mit hilfe der Uniformvarable und dem doppelten Vertexdatensatz einen neuen interpolieren und gegebenfall den neuen Normalvektor normalisieren...

Mit suchen wird man auch nicht viel finden. Bei bones könnte man was finden wenn man nach Matrixpaletteskinning sucht. DUmmerweise sind 99% alles Codes noch aus der Zeit der GF3 und somit im bestem Fall in HSL oder CG geschrieben

Autor:  LarsMiddendorf [ Mi Jul 19, 2006 19:09 ]
Betreff des Beitrags: 

Bei Quake4 ist so ein Shader dabei.

Autor:  Speedmaster [ Do Jul 20, 2006 09:16 ]
Betreff des Beitrags: 

Thx für die Antworten, die sind durchaus Hilfreich.

Nur zur Sicherheit:
Wenn ich den 2ten Satz Vertexdaten als Attribute übergebe, dann gebe ich einfach den Pointer an der mir bei "glMapBufferARB();" zurückgegeben wird?

Autor:  oc2k1 [ Do Jul 20, 2006 13:41 ]
Betreff des Beitrags: 

Syntaktisch sollten sich die Attribute fast genauso handhaben lassen wie die anderen VBO Teile. Der Code sollte zumindest ähnlich aussehen...

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/