Tutorial für Animationen unter Direct3D gesucht
-
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.