2017-04-12 2 views
0

ich einige Grundlagen Codierung in SharpDX (VB.net) gerade erst begonnen und ich habe es bereits ein 2D-Dreieck zu machen. Und ich weiß, wie man andere 2D-Sachen rendert, aber ich möchte etwas in 3D schaffen, wo ich die Kamera um einige Würfel drehen kann. Ich habe es versucht, aber es ist mir nicht gelungen, den 3D-Raum in Bildschirmkoordinaten umzuwandeln. Jetzt sind hier meine Fragen:SharpDX Wie man eine 3D-Umgebung Render

  • Wie kann ich eine Matrix für Perspektiveprojektion berechnen?
  • Wie kann ich diese Matrix an meinen Vertex Shader übergeben?
  • Wie kann ich die Kamera um die Objekte rotieren lassen, wenn ich die Maus über den Bildschirm ziehe?

Bitte erklären Sie mir diese Dinge und geben Sie einige Codebeispiele. Ich bin nur ein Anfänger in SharpDX und alles, was ich gefunden habe, war einfach nicht verständlich für mich.

+0

Die Menschen sind immer glücklich zu erklären, aber die Leute auf Stackoverflow nicht in der Regel Codebeispiele für Menschen, nicht kostenlos sowieso schreiben; P – Jaxi

+0

Ich wollte einige kurze Beispiele nicht ein ganzes Projekt XD. Wenn Sie sich in stackoverflow umsehen, werden Sie viele Codebeispiele finden – TimoHo

Antwort

1

Ein paar Dinge, die Sie beim ersten Start tun können.

Erstens gibt es einige große Beispiele, die Sie nutzen können (auch in C#, aber Sie müssen VB), die Sie verwenden können, um daraus zu lernen.

Ich schlage vor, Sie betrachten dies im Sharpdx Repository. Sharpdx direct 3d 11 samples

Innerhalb dieser Beispiele (besonders Dreieck Beispiel), geht es durch die Grundlagen einschließlich Einrichtung des Geräts, die Erstellung von einfachen Ressourcen an Ihre GPU binden und kompilieren den Bytecode. obwohl

Die Proben mit den Effekten Methodik verwendet werden, die veraltet ist und als solche, sobald Sie mit dem Kompilieren Code vertraut zu machen, würde ich raten, weg von diesem Paradigma zu bewegen.

Die fortgeschritteneren Beispiele zeigen Ihnen, wie Sie Ihre Matrizen einzurichten.

Der letzte Punkt, den Sie wissen wollten, ist die Mausbewegung. Ich würde raten, nur einen Blick auf MSDN um Mauszeiger Ereignisse. Sie müssen einen an Ihr Fenster/Steuerelement binden und dann die Deltas lesen. Verwenden Sie diese Deltas, um Ihre Rotation/Bewegung basierend darauf zu erstellen. Schauen Sie in Vector3 (sharpdx), im Grunde müssen Sie dies alles im Vektorraum tun und dann daraus die verschiedenen Translations-/Rotationsmatrizen erstellen.

Hoffe, das ist der Anfang.

+0

Vielen Dank für Ihre Antwort. Ich hoffe, dass ich es schaffen werde :) – TimoHo

+0

Ich bin mir sicher, dass du es wirst! – ErnieDingo

Verwandte Themen