DirectX schnelles Rechnen?
-
Hallo zusammen,ich arbeite gerade an einer 3D Engine mit DirectX 9 (ja 11 ist schon raus aber meine Grafikkarte unterstützt das nicht).
Da es in DirectX sehr viele Render States-Sample States...gibt wollte ich mal fragen wie man vielleicht eine gute Einstellung machen kann,damit man eine sehr schnelle Berechnung z.b beim rendern hat.
Ich hab mir mal gedacht ,ich guck mal bei cryengine nach,jedoch steht nirgends was über die technologien und sowas,deshalb frag ich mal hier wie man am besten eine gute Performenc hat und gleichzeitig gute Grafik.
Dankeschön
-
Stani schrieb:
Hallo zusammen,ich arbeite gerade an einer 3D Engine mit DirectX 9 (ja 11 ist schon raus aber meine Grafikkarte unterstützt das nicht).
Klar. Ist natürlich gleich ne echte 3D Engine;)
Stani schrieb:
Da es in DirectX sehr viele Render States-Sample States...gibt wollte ich mal fragen wie man vielleicht eine gute Einstellung machen kann,damit man eine sehr schnelle Berechnung z.b beim rendern hat.
Ich hab mir mal gedacht ,ich guck mal bei cryengine nach,jedoch steht nirgends was über die technologien und sowas,deshalb frag ich mal hier wie man am besten eine gute Performenc hat und gleichzeitig gute Grafik.
Dankeschön
Du setzt nur die RenderStates die du brauchst und wechselst so wenig wie möglich.
-
Stani schrieb:
(ja 11 ist schon raus aber meine Grafikkarte unterstützt das nicht).
Nur der Vollständigkeit halber: D3D11 läuft auch auf D3D9 Hardware
Stani schrieb:
Da es in DirectX sehr viele Render States-Sample States...gibt wollte ich mal fragen wie man vielleicht eine gute Einstellung machen kann,damit man eine sehr schnelle Berechnung z.b beim rendern hat.
Rat mal warum es da so viele gibt...Richtig: Wenns eine ideale Einstellung gäbe bräuchte man die andren alle nicht...
-
dot schrieb:
Stani schrieb:
(ja 11 ist schon raus aber meine Grafikkarte unterstützt das nicht).
Nur der Vollständigkeit halber: D3D11 läuft auch auf D3D9 Hardware
Was passiert eigentlich, wenn man ein Feature Level 9 Device erzeugt und dann reine D3D11 Features (Compute Shader, Tessellation oder sowas) benutzt?
-
Ehrlich gesagt hab ichs noch nicht ausprobiert, aber ich würd mir erwarten dass die entsprechenden Methoden einfach fehlschlagen...
-
Nur der Vollständigkeit halber: D3D11 läuft auch auf D3D9 Hardware
Sry das wusste ich nicht
Ok das mit den Renderstates stimmt,aber wie macht es z.b Cryengine ,dass die ein ganzes Terrain mit tausenden Bäumen ... so schnell rendern können??Gibts da Tricks um z.b Berechnungen durch irgendwelche Hardware technologien schneller zu machen??
-
Stani schrieb:
Ok das mit den Renderstates stimmt,aber wie macht es z.b Cryengine ,dass die ein ganzes Terrain mit tausenden Bäumen ... so schnell rendern können??
Die Leute die an der Cryengine basteln sind Experten mit vielen vielen Jahren Erfahrung die den ganzen lieben Tag lang nix andres machen als sich mit Computergrafik zu beschäftigen. Erwartest du ernsthaft dass man dir das hier jetzt auf ein paar Seiten zusammenfassen kann was die genau tun!? Natürlich gibts millarden von Tricks, einige davon haben die Typen von Crytek überhaupt erst erfunden. 3D-Grafik auf dem Niveau ist dann eben doch sehr viel komplexer als ein paar magische Renderstates reinzuhauen und zurücklehnen. Lern mit Direct3D umzugehen, lies dich in die Techniken ein, lies die Programming Guides, beschäftige dich mit den Details der Hardware, bleib am Ball, ...
Wenn du ein Paar Stichworte willst: Shader (ohne die geht mal gar nix), Batching, Instancing
-
Wenn du ein Paar Stichworte willst: Shader (ohne die geht mal gar nix), Batching, Instancing
Ok danke,sowas wollte ich hören.
-
dot schrieb:
Ehrlich gesagt hab ichs noch nicht ausprobiert, aber ich würd mir erwarten dass die entsprechenden Methoden einfach fehlschlagen...
Hätt ich jetzt auch vermutet. Kannst es ja mal versuchen:D
Lg freeG
-
Ok das mit den Renderstates stimmt,aber wie macht es z.b Cryengine ,dass die ein ganzes Terrain mit tausenden Bäumen ... so schnell rendern können??Gibts da Tricks um z.b Berechnungen durch irgendwelche Hardware technologien schneller zu machen??
Wenn man genau hinschaut, sieht man dass die Level of Detail benutzen...
-
Währe es eigendlich sinvoller die Berechnungen für die 2D Darstellung(ich meine convertierung der Vertices... zu den 2D Bildschirmcoordinaten) durch Shader zu machen,bzw. auch andere Matrizen,Vector Rechnungen damit zu machen,da Shader ja bekanntlich schnell sind?
-
an was fuer einen fall denkst du, bei dem 2d darstellung jegliche performance relevanz hat?
-
Ich meinte eigendlich ,dass man z.b die ganzen Berechnungen für Vertizes ,wie Beleuchtung,Transformation ,Clipping in den Shadern berechnet,der dann einen transformierten Vertex liefert ,der dan an den Rasterizer geschickt wird.
Danke