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 29.

Werbeanzeige

16.09.2011, 16:22

Forenbeitrag von: »Ludwig«

Skinning eines md5mesh auf der gpu

ich muss nach langer Pause dieses Thema leider nocheinmal reaktivieren : ( Zitat von »dot« CPU Berechnet neue absolute Matrix für jeden Bone (JointTransform = InverseBindPoseAbsolute * Absolute) GPU berechnet im VertexShader Quellcode 1 (Vertex * JointTransform[BoneIndex0] * Weight[BoneIndex0] + Vertex * JointTransform[BoneIndex1] * Weight[BoneIndex1] + ... ) * WorldViewProjection was geschrieben wurde funktioniert ohne Probleme! Nur steht in der Literatur immer die Formel V = Absolute * Inverse...

07.04.2011, 15:51

Forenbeitrag von: »Ludwig«

Spherical Blend Skinning

hat den hier keiner irgendetwas in der Richtung gemacht? Ich weiss nämlich nicht ob ich die Center of Rotation brauche. In Game Programming Gems 4 ist ein Artikel über hardware Skinning with Quaternions dort ist keine Rede von COR.

04.04.2011, 14:32

Forenbeitrag von: »Ludwig«

Spherical Blend Skinning

Hallo, ich befasse mich mit Skinning und hänge beim "Spherical Blend Skinning" fest. Mein "Linear Blend Skinning" (mit Matrizen) funktioniert ohne probleme, auch das umwandeln der Matrizen in quaternionen und das interpolieren mit SLERP läuft. Nur wie geht es dann weiter? In den Papern die ich gelesen habe steht das es beim SBS wichtig ist den center of roation mit hilfe des "singular value decomposition" für jedes?! Vertize zu finden. Die Formel die ich zu dem Thema gegoogelt habe ist : x = inv...

23.02.2011, 21:40

Forenbeitrag von: »Ludwig«

HLSL Shader existiert laut PIX nicht

Hallo, ich versuche schon seit einigen Tagen einen VertexShader ans laufen zu bekommen der mir mein Skinning übernimmt. Ich teste mich langsam vorran aber bin jetzt an einem Punkt an dem es einfach nicht weiter geht. Im boneMatrixArray sind zu testzwecken alle Matrizen gleich und zwar sind es WorldViewProjectionMatrizen. Der Untere HLSL code funktionier, wenn ich jetzt aber die Zeile so abänder, existiert laut PIX kein VertexShader C-/C++-Quelltext 1 output.position = mul( float4( input.position...

16.02.2011, 15:50

Forenbeitrag von: »Ludwig«

Skinning eines md5mesh auf der gpu

danke erstmal! wenn ich das Modelformat jetzt erstmal außen vor lasse. Mal angenommen ich habe ein Model wo jedes Vertize nur einen Bone als Einfluss hat. 1) die Bonematrizen werden absolut zu den Parents an den Shader übergeben? 2) die Vertizes liegen relativ zu den Bones im VertexBuffer ? 3) wenn ich die Vertizes absolut vorliegen habe bekomme ich diese mit der inversen der absoluten Bonematix in Form von Punkt 2 ? 4) auf dem shader würde dann "nur" relatives Vertize mit absoluter Bonematirx m...

15.02.2011, 16:46

Forenbeitrag von: »Ludwig«

Skinning eines md5mesh auf der gpu

ja, das was du schreibst ist mir mehr oder weniger klar. Mein Problem besteht darin das ein md5Mesh aber pro Vertice mehrere xyz Koordinaten und Gewichtungen hat. vert [vertIndex] ( [texU] [texV] ) [weightIndex] [weightElem] passend dazu : weight [weightIndex] [jointIndex] [weightValue] ( [xPos] [yPos] [zPos] ) daher kann ich die Daten nicht einfach im Shader verarbeiten. Daher suche ich eine Möglichkeit um die Daten in die benötigte Form zu bringen. Zitat von »dot« Die Inverse davon transformie...

15.02.2011, 15:42

Forenbeitrag von: »Ludwig«

Skinning eines md5mesh auf der gpu

Hallo, ich hoffe, dass mir hier einer helfen kann mein Problem mit dem md5 Modelformat zu lösen. Ich kann ein Md5 Model normal laden und auch (ohne Animation) anzeigen. Soweit so gut, nur stehe ich jetzt vor dem Problem, dass die Daten für ein Softwareskinning auf der cpu ausgelegt sind ich dieses haber im VertexSader machen möchte. Es gibt für jede Gewichtung der Bones eigene xyz Koordinaten woraus dann die Finalen Vertizes berechnet werden. Die Bones sind in der Bindpose im Objectspace aber da...

09.02.2011, 17:44

Forenbeitrag von: »Ludwig«

Effekte verursachen extremen Framedrop

Ahhh , dumm von mir Lade den Effekt jetzt einmal und speicher "LPD3DXEFFECT effect" in einem Array danke

09.02.2011, 15:30

Forenbeitrag von: »Ludwig«

Effekte verursachen extremen Framedrop

Hallo, ich habe versucht in mein kleines Programm eine Effektdatei einzubinden. Diese wir auch geladen und die Einstellungen werden korrekt wiedergegeben. Das Problem ist das ich ohne Effektdatei 1500 fps habe und mit um die 10 fps. C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 LPD3DXEFFECT effect; if( FAILED ( D3DXCreateEffectFromFile( d3dDevice, L"renderStats.FX", NULL, NULL, 0, NULL, &effect, NULL ) ) ) //Fehler...

17.01.2011, 14:18

Forenbeitrag von: »Ludwig«

das richtige Keyframe finden

Hallo, ich versuche gerade zu verstehen wie ich bei einer Animation das richtige Keyframe herausfinden kann. Nach dem laden der Modeldatei (md5) habe ich ja die Framerate woraus ich bestimmen kann zu welchem Zeitpunkt welches Keyframe kommen muss, aber wie wende ich diese Information richtig an? Wenn ich ganz simpel eine Abfrage mache ob der Zeitpunkt des Keyframes überschritten ist weiß ich ja nicht an welcher Stelle ich bei der Interpolation bin [0 ,1]. Ich hoffe man versteht was ich meine Ber...

01.02.2010, 16:31

Forenbeitrag von: »Ludwig«

Verständnisfrage culling & dann rendern

danke für die super Erklärungen, das hilft mir weiter! Nur tritt dann in meinem Kopf (technisch nicht medizinisch ) das nächste Problem auf : Wenn ich eine Liste habe in der nach z.B. Texturen sortiert ist (alle Polygone die die gleiche Textur haben) habe und diese render müsste ich doch wieder für jedes Polygon einen renderCall machen oder den Indexbuffer neu füllen, da ich ja nicht sagen kann ob die Polygone mit den gleichen Texturen nebeneinander liegen.

01.02.2010, 15:02

Forenbeitrag von: »Ludwig«

Verständnisfrage culling & dann rendern

Hallo, wie die Überschrift schon sagt habe ich ein Verständnisproblem damit, wie ich die Polygone render, nachdem ich sie auf Sichtbarkeit getestet habe. Ich überprüfe als erstes ob das Poylgon (oder wird das nicht für jedes Polygon gemacht?) sichtbar ist und render es -> dann würde ich für jedes Polygon einen drawCall machen. Das kann also so nicht sehr Performant sein. Oder merke ich mir die Indizes und fülle in jedem Frame den Indexbuffer neu? Wie ist die "gängige" Vorgehensweise beim rendern...

09.12.2009, 16:30

Forenbeitrag von: »Ludwig«

100 Screenshots in der Sekunde

Ok in der Theroie habe ich das verstanden ! :roll: Nur : Mit grabben meinst du auch die Infos (Pixel) mit mit Bitblt kopieren? wenn ich 2 Buffer habe und die mit SRCERASE oder SRCINVERT "bearbeite" verbinde ich doch die Bildinfos oder ist das eine Abfrage ob die Pixel gleich sind , ansonsten werden sie nicht übernommen ? Const SRCERASE = &H440328 ' Kombiniert die invertierten Farben des Zieles mit den Farben der Quelle ' mit Hilfe des AND-Operators Const SRCINVERT = &H660046 ' Kombiniert die Far...

08.12.2009, 15:59

Forenbeitrag von: »Ludwig«

100 Screenshots in der Sekunde

nach lesen vieler Tutorials über das Hooken von D3d bin ich zu dem Ergebniss gekommen das ich Probleme mit anticheat Programmen bekommen werde (VAC) , da hacks ja auch oft dafür verwendet werden. BitBlt scheint auch nicht das richtig zu sein. Gibt es eine andere Möglichkeit an den Zeiger bzw an den Backbuffer zu kommen? Ich will ihn ja nur auslesen und nicht schreiben! danke ludwig

27.11.2009, 17:45

Forenbeitrag von: »Ludwig«

100 Screenshots in der Sekunde

mit den neuen treiber leider nicht mehr... habe mal über die Idee mit dem vergleichen der Zeiger nachgedacht. Wie komme ich am besten an die Buffer? Ich abe mir ein Paar Tuts über das D3d Hooken durchgelesen aber habe noch nicht so den Durchblick.

26.11.2009, 15:44

Forenbeitrag von: »Ludwig«

100 Screenshots in der Sekunde

nachdem du sie umgebaut hast? Die elsa Brille arbeitet normal mit dem DCC Pin welche vom Grafiktreiber angesteuert wird. Da Nvidia aber eine eigene Brille auf dem Markt hat unterstützen die Treiber schon lange diese Art der Syncronisation nicht mehr. Deswegen will ich ja versuchen die Brille anders anzusteuern. Einfach nur per vSync würde ja voraussetzen das du immer mehr fps hast als der vsync über die Leitung schicken kann.

26.11.2009, 08:20

Forenbeitrag von: »Ludwig«

100 Screenshots in der Sekunde

mhh eure ideen sind super werde in der Richtung erstmal weiterlesen ... mein erster Ansatz war es den vsync hardwaremäßig auszulesen und damit zu vergleichen ob sich das Bild verändert hat. Es müssten ja von Stereo Treiber zwei Puffer angelegt sein (werde da auch mal nachforschen) aber ändert sich der Zeiger wenn sich das Bild ändert ? Dachte immer das wäre der gleiche Speicherbereich nur der Inhallt ändert sich. Oder meinst du ich gucke welcher der aktuelle Buffer ist und vergleiche ihn mit dem...

25.11.2009, 23:34

Forenbeitrag von: »Ludwig«

100 Screenshots in der Sekunde

Hi, ich möchte ein kleines Programm schreiben welches einen Screenshot macht und ihn mit den Screenshot den es davor gemacht hat vergleicht. Das ganze müsste ca 100 mal in der Sekunde gemacht werden ohne dabei großartig das System zu belasten! :oops: Nach ein wenig suchen bin ich auf die BitBlt Methode gestoßen. Wie schnell würde das ganze ablaufen? Ist das überhaupt machbar? zur Info : ich will wissen wann ein neues Bild gezeichnet wird um eine Shutterbrille zu Syncen mfg Ludwig

04.11.2009, 18:05

Forenbeitrag von: »Ludwig«

Drehung um die Achsen

ok, das habe ich jetzt gelöst / verstanden (-4,37114e^-008 geht gegen 0) Nur ist das eine Problem gelöst kommt das nächste. Wenn ich mal angenommen um x, dann um y und wieder um x drehe und dann D3DXMatrixRotationAxis aufrufe dreht ich ja um die aktuelle x-Achse und das Ergebnis ist falsch!

28.10.2009, 13:44

Forenbeitrag von: »Ludwig«

Drehung um die Achsen

wie zu erwarten macht er das aber nicht mit yAxis = 0 1 0 und xAxis = 1 0 0 rotation.y = 90 C-/C++-Quelltext 1 2 3 D3DXMatrixRotationAxis(&g_mRotationY, &yAxis, D3DXToRadian(rotation.y)); D3DXVec3TransformCoord(&xAxis, &xAxis, &g_mRotationY); kommt als Ergebnis : (-4,37114e^-008 0 1) heraus ich weiss jetzt aber nicht was an der Matrixberechnung falsch sein kann

Werbeanzeige