Tutorial für Animationen unter Direct3D gesucht
-
Falls Du eine fertige Klasse haben willst:
http://www.flipcode.com/articles/article_dx9skinmeshmod.shtml
Hab ich auch benutzt, kann man in < 1h einbauen. Dass es genau das macht was man haben will kann aber in Zusatzarbeit ausarten, so einfach ist das Thema nunmal nicht.
PS: Verwendest Du Punkt- bzw Spotlichter oder nur Direktonale Quellen wie zB Sonnenlicht?
-
malignate schrieb:
http://www.toymaker.info/Games/html/load_x_hierarchy.html
Oder schau dir das an( nicht DX aber sehr leicht zu integrieren )
Danke, das werde ich mehr sehr bald durchlesen. Wer noch solche Links hat, bitte alle her zu mir.
Eine fertige Lib möchte ich nicht verwenden.0x00000001 schrieb:
Falls Du eine fertige Klasse haben willst:
http://www.flipcode.com/articles/article_dx9skinmeshmod.shtml
Hab ich auch benutzt, kann man in < 1h einbauen. Dass es genau das macht was man haben will kann aber in Zusatzarbeit ausarten, so einfach ist das Thema nunmal nicht.
PS: Verwendest Du Punkt- bzw Spotlichter oder nur Direktonale Quellen wie zB Sonnenlicht?
Ich möchte keine fertige Klasse verwenden, aber mal sehen, was ich davon abschaun kann. Ich benutze direktionales und Punktlicht. Wieso ist das wichtig?
-
Wieso willst du keine Libs nehmen?
-
Ich will ja gerade herausfinden, wie man das mit Direct3D selber macht. Zeit habe ich auch mitgebracht, noch etwa 1,5 Monate...
-
Na dann werd ich Dich am Ende der Ferien mal kontakten um zu fragen wie es mit den Punktlichtern gelaufen ist.
Hab meine Skinmeshes erstmal auf Eis gelegt weil ich es nicht geschafft hatte die Weltkoordinate der Vertizen zu berechnen, was für Punktlichter wichtig ist wegen der Abstandsberechnung. In meinem Beispiel haben die immer die homogene Koordinate auf 1 gesetzt, sonst funktionierts nicht richtig.
Naja probier Du das auch mal, ich komm drauf zurück
-
Animationen haben doch garnichts mit Licht zu tun? Wie kommst du denn auf Punktlichter oder ist das ne interne Geschichte unter euch

-
Naja für die Beleuchtung sind primär der Einfallswinkel des Lichts und die Entfernung zur Lichtquelle wichtig. Und wenn das Mesh animiert ist dann ändert sich das ständig, und zwar für jeden Vertex.
Bei einem Punktlicht braucht man eben die endgültige Position der Vertizen in Weltkoordinaten (in denen auch die Lichtposition gegeben ist ), um Abstand und Winkel berechnen zu können.
-
Sag mal gibts von deiner Engine schon ne lauffähige Alpha, die Screenshots sehen ja vielversprechend aus

-
0x00000001 schrieb:
Naja für die Beleuchtung sind primär der Einfallswinkel des Lichts und die Entfernung zur Lichtquelle wichtig. Und wenn das Mesh animiert ist dann ändert sich das ständig, und zwar für jeden Vertex.
Bei einem Punktlicht braucht man eben die endgültige Position der Vertizen in Weltkoordinaten (in denen auch die Lichtposition gegeben ist ), um Abstand und Winkel berechnen zu können.Berechnest du die Ausleuchtung selbst? Egal, ich kümmer mich jetzt mal um die Animation und dann sehe ich mir das nochmal extra mit dem Punktlicht an. Mir fällt jetzt nicht so wirklich ein Grund ein, warum das animiert nicht mehr gehen soll, aber das werden wir ja sehen...
-
0x00000001 schrieb:
Hab meine Skinmeshes erstmal auf Eis gelegt weil ich es nicht geschafft hatte die Weltkoordinate der Vertizen zu berechnen, was für Punktlichter wichtig ist wegen der Abstandsberechnung.
du schaffst es ein mesh zu skinnen aber nicht die weltkoordinate auszurechnen?
ich hab mir nen ferrari gebaut, aber den tanktdeckel nicht gefunden...
du machst mich ganz confused!
rapso->greets();
-
User-- schrieb:
Sag mal gibts von deiner Engine schon ne lauffähige Alpha, die Screenshots sehen ja vielversprechend aus

Ja hab mal eine gemacht, aber nie veröffentlicht weil es vom künstlerischen her nicht so toll war
Ich denk nach den Ferien mach ich mich mal auf die Suche nach Grafikern.rapso schrieb:
du schaffst es ein mesh zu skinnen aber nicht die weltkoordinate auszurechnen?
Ja es ist lächerlich, aber ich muss auch sagen dass ich recht schnell aufgegeben habe. Muss nochmal genauer analysieren was da los ist.
// Aus DX Beispiel o.vPosition = mul( float4(vPosition.xyz, 1.0f), mViewProj );Hier setzen die die w-Komponente der Position gleich 1. Damit ist nach der Projektion alles an seinem richtigen Platz, nur die Beleuchtung ist total verspult weil die Weltkoordinate vorher anscheinden nicht gestimmt hat. Bei direktlichtern macht das irgendwie nichts aus da dort die genaue Position des Vertex unerheblich ist.
@Forum: Hat jemand geskinnte x-meshes mit Positionslichtern am laufen?
-
0x00000001 schrieb:
// Aus DX Beispiel o.vPosition = mul( float4(vPosition.xyz, 1.0f), mViewProj );Hier setzen die die w-Komponente der Position gleich 1. Damit ist nach der Projektion alles an seinem richtigen Platz, nur die Beleuchtung ist total verspult weil die Weltkoordinate vorher anscheinden nicht gestimmt hat. Bei direktlichtern macht das irgendwie nichts aus da dort die genaue Position des Vertex unerheblich ist.
die position der lichtquelle muss w auch 1 haben, wenn du 4d-vectoren voneinander abziehst, so erhällst du einen richtungsvector (der hat w natürlich 0) und dann sollten alle berechnungen problemlos gehen.
rapso->greets();
-
irrlicht ist auch ein gutes engine
-
rapso schrieb:
die position der lichtquelle muss w auch 1 haben, wenn du 4d-vectoren voneinander abziehst, so erhällst du einen richtungsvector (der hat w natürlich 0) und dann sollten alle berechnungen problemlos gehen.
Na so einfach ist es nun auch wieder nicht, wäre ja noch schöner wenn es DARAN gelegen hätte
Ich benutze nur die ersten 3 komponenten der Positionen, die 4te ist auch sinnlos bei Abstandsberechnungen.
Naja hab schon ganz andere Schwierigkeiten überwunden, ich denke wenn ich mir paar Stunden Zeit dafür nehme müsste das Problem zu beheben sein.
-
@Forum: Hat jemand geskinnte x-meshes mit Positionslichtern am laufen?
nein, aber .ms3d files mit eigenem loader, punktlichtern und normalmapping

hat allerdings auch noch ein paar dinge die einzubauen sind...
-
So, die Animationen funktionieren jetzt. Danke für die hilfreichen Links.