Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Suchergebnisse

Suchergebnisse 1-20 von insgesamt 27.

Werbeanzeige

12.04.2007, 16:24

Forenbeitrag von: »lumpinus«

Alphablending mit FP32-Rendertarget

wie schade hab übrigens eine Geforce6600

12.04.2007, 16:11

Forenbeitrag von: »lumpinus«

Alphablending mit FP32-Rendertarget

Hi, ich habe eine bildschirmfüllende Textur mit dem Format D3DFMT_G32R32F als Rendertarget. Also eine normale Fließkommazahl für den roten und den grünen Kanal. Blau und Alpha sind nicht vorhanden. Nur scheinbar funktioniert jetzt kein Alphablending! Als Beispiel was ganz einfaches: Quellcode 1 2 3 4 me3D::SetRS(D3DRS_ALPHABLENDENABLE, TRUE); me3D::SetRS(D3DRS_SRCBLEND, D3DBLEND_ZERO); me3D::SetRS(D3DRS_DESTBLEND, D3DBLEND_ONE); me3D::SetRS(D3DRS_BLENDOP, D3DBLENDOP_ADD); Im Prinzip steht da ja ...

09.11.2006, 13:11

Forenbeitrag von: »lumpinus«

Bone-Animation mit dem Vertex-Shader

Also was ist jetzt schneller?

09.11.2006, 12:54

Forenbeitrag von: »lumpinus«

Bone-Animation mit dem Vertex-Shader

verdammt...der junge hat recht :x

09.11.2006, 12:36

Forenbeitrag von: »lumpinus«

Bone-Animation mit dem Vertex-Shader

Du hast ja vollkommen recht! Aber rechne doch mal bei 16 Joints und 2 Lichtern: Dein Code: EINE WorldViewProjection Matrix: 4 Register 16 4x4 Matrizen: 64 Register 16 3x3 Matrixzen: 48 Reg 2 Lichter: 2 Reg SUMME: 118 Reg Mein Code: 16 4x4 Matrizen: 64 Reg 2 Lichter: 32 Reg SUMME: 96 Reg Also was willst du ?

09.11.2006, 11:43

Forenbeitrag von: »lumpinus«

Bone-Animation mit dem Vertex-Shader

Quellcode 1 2 3 4 m4x4 r0, v0, c[a0.x+10] //position, c[a0.x+1] = Joint Matrix m3x3 r1, v1, c[a0.x+10] //normalvektor m4x4 oPos, r0, c0 //c0 WorldViewProjection Matrix Toll, jetzt hab ja doch wieder zwei 4x4 Matrizen, jedenfalls für die Position. Da kann ich ja gleich die Joint-Matrix mit der WorldViewProjection Matrix vor dem Rendern transformieren. Zwar kann ich dann keine Normalvektoren mehr transformieren (im Shader) aber das mach ich eh nicht weil ich stattdessen alle Lichtquellen in das O...

08.11.2006, 23:38

Forenbeitrag von: »lumpinus«

Bone-Animation mit dem Vertex-Shader

So weit alles nur nur die absolute Jointmatrix beinhaltet natürlich auch Translation. Denn wenn ich wagen wir mal einen Arm mit der inversen absoluten Jointmatrix transformiere, befindet er sich ja relativ zum Objektursprung. Ich will ihn aber an der Schulter haben und da kann ich den drehen wie ich will der bleibt immer in der Nähe vom Objektursprung

08.11.2006, 16:14

Forenbeitrag von: »lumpinus«

Bone-Animation mit dem Vertex-Shader

ich verstehe dich leider immer noch nicht. Vielleicht meinen wir auch immer verschiedene Matrizen. Also noch mal ganz von vorne: -Es gibt eine WorldViewProjection-Matrix die ganze Objekt transformiert. -Wenn ich von einem transformierten Joint spreche, meine ich einen Joint der von seinem Parent transformiert wurde, und das Parent wiederrum von seinem Parent usw. -Desweitern hat jeder Joint eine RELATIVE Matrix, die seine Vertices dann richtig transformiert, wenn sie (die Vertices) relativ zum U...

08.11.2006, 12:27

Forenbeitrag von: »lumpinus«

Bone-Animation mit dem Vertex-Shader

Das ist an sich ne gute Idee Nur, die Vertices speicher ich ja relativ zu ihrem Joint. D.h. ich muss sie im Vertex-Shader zurück zum Modellursprung transformieren (also auch translieren). Würde ich die Vertices von Anfang an absolut (also relativ zum Modellurprung) speichern, wäre die Rotationen der Joints natürlich nicht mehr korrekt.

07.11.2006, 21:07

Forenbeitrag von: »lumpinus«

Bone-Animation mit dem Vertex-Shader

dann müsste ich aber im Vertexshader zwei Matrizen multiplizieren

07.11.2006, 20:25

Forenbeitrag von: »lumpinus«

Bone-Animation mit dem Vertex-Shader

Naja, ich brauch schon eine 4x4 Matrix weil ich ja jeden Vertex auch projezieren muss

07.11.2006, 16:44

Forenbeitrag von: »lumpinus«

Bone-Animation mit dem Vertex-Shader

Ich wandel das ms3d(Milkshape) Format mit einem Konverter in ein eigenes Format um edit: Bone und Joint sind übrigens dasselbe

07.11.2006, 16:26

Forenbeitrag von: »lumpinus«

Bone-Animation mit dem Vertex-Shader

Ja ich nehm D3DX. Ich soll also für jeden Joint jeden einzelnen Vertex per Hand vor dem Rendern transformieren, den Vertexbuffer locken, kopieren und dann jeden Joint mit einem Draw-Call rendern?? Na wenn du meinst dass das schneller ist... Aber auch jeden Joint einzeln mit Vertex Shader rendern muss lamer als mein Ansatz sein, weil ich erstens für jeden Joint einen Drawcall hab und für jeden Joint noch die zwei Matrizen übertragen muss.

07.11.2006, 15:48

Forenbeitrag von: »lumpinus«

Bone-Animation mit dem Vertex-Shader

Hallo zusammen! Ich implementiere gerade eine Skinned-Mesh (also ein 3D-Modell mit Bones) in meiner Engine. Nun ist es ja am schnellsten wenn man das ganze Modell mit einem Draw-Call rendert. Das bedeutet ich weise jedem Vertex im Vertexformat eine BoneId zu, und im Vertexshader gelange ich dann über diese Id mit relativer Adressierung an die korrekte Matrix. Dabei gibt es für jeden Joint zwei Matrizen: -Transformationsmatrix für die Positionsvektoren -Transformationsmatrix für die Normalenvekto...

09.10.2006, 11:49

Forenbeitrag von: »lumpinus«

Wie einen Normalvektor in einem Dreieck interpolieren?

Interessant. Direkt um die Ecke geh ich zur Schule (Michael Gym).

07.10.2006, 11:45

Forenbeitrag von: »lumpinus«

Wie einen Normalvektor in einem Dreieck interpolieren?

Alles klar jetzt. Einige Punkte waren außerhalb des Dreiecks. Deshalb die negativen Werte. Vielen Dank nochmal!

07.10.2006, 11:38

Forenbeitrag von: »lumpinus«

Wie einen Normalvektor in einem Dreieck interpolieren?

Das funktioniert nicht richtig. Ich bekomme für s sowohl positive als auch negative Werte. Außerdem ist t immer unbestimmt, weil der Nenner (siehe Blatt) immer null ist. Ist ja auch logisch, denn das Punktprodukt zwischen zwei Vektoren die senkrecht zueinander stehen ist ja immer null. Oder liege ich da falsch dass in deiner Rechnung N der Normalenvektor des Dreiecks ist? Also das normalisierte Kreuzprodukt zwischen z.B. AB und AC. edit: Ich seh gerade du hast dich in der letzten Zeile vertan. S...

06.10.2006, 22:29

Forenbeitrag von: »lumpinus«

Wie einen Normalvektor in einem Dreieck interpolieren?

moment, die Funktion benötigt doch die zwei baryzentrischen Koordinaten (f, g). Aus dem DirectX-SDK entnehme ich dass die Funktion nicht anderes tut als deine Formel zu wrappen. Außerdem sagst du dass die Kooardiantenachsen, an den zwei anliegenden Kanten verlaufen sollen. Aber wenn da kein 90° Winkel ist, wäre es doch verzerrt, und könnte nicht einfach mit einer Rotation und Translation erstellt werden.

Werbeanzeige