Frage

Hey Jungs, würde Ich mag ein Licht / Laser-Show-Editor und Simulator entwickeln, und dies natürlich werde ich einige Grafiken lernen, zu programmieren. Ich denke über die Verwendung von C # und XNA.

Ich habe mich nur gefragt, was Aspekte der Grafik Programmierung ich auf das Projekt gegeben Forschung oder Schwerpunkt sollte ich arbeite. Ich bin neu in Grafiken Programmierung so dass ich weiß nicht viel darüber, aber ich zum Beispiel etwas vorstellen, dass ich in aussehen würde, könnte ( vielleicht? ) volumetrische Beleuchtung sein.

Zum Beispiel, was wäre ein praktischer Weg, um Rendern einen ‚Laser‘ zu gehen unterschiedlichen Breite / Farbe? Ich habe irgendwo gelesen, um nur einen Zylinder zu ziehen und einen Shader für sie gelten, ich möchte bestätigen, dass dies der richtige Weg ist.

Da dies scheint wie ein großes Projekt, dachte ich über Anfahren von Lichtquellen zu schaffen und sie Eigenschaften zu geben, damit ich sie leicht manipulieren kann. Ich habe (mis) gelesen, dass nur eine bestimmte Menge von Licht zu einem bestimmten Zeitpunkt gemacht werden kann, glaube ich acht. Ist dies nur für Umgebungsbeleuchtung gelten? Angesichts diese mögliche Einschränkung, und die Tatsache, dass die meisten Lichter werde ich gerichtet sein verwenden, wie Kopf-Lampen oder Lasern, was wäre eine andere Art und Weise sein, diese zu machen? Ist das, was volumetrische Beleuchtung wäre?

Ich möchte nur einige Dinge zu bekommen, bevor ich in sie tauchen löschen. Da ich wahrscheinlich nicht die beste Verwendung von Wörtern gemacht hat zu diesem ich bin neu, so dass, wenn etwas nicht sinnvoll ist, lassen Sie es mich wissen. Dank und sorry für meine Unwissenheit.

War es hilfreich?

Lösung

Die Antwort auf diese hängt von der Ebene der Komplexität, dass Sie in Ihrer Anzeige Simulation benötigen. Computergrafik ist letztlich eine Simulation des Transports von Licht; dass Simulation kann so hoch entwickelt sein als der Anteil des Laserlichts abgelenkt durch Partikel in der Atmosphäre in den Blickpunkt des Betrachters, oder so einfach wie das Zeichnen einer Linie zu berechnen. Versuchen Sie, den Zylinder Effekt und sehen, ob es für Ihr Projekt funktioniert. Wenn Sie etwas anspruchsvollere, Blick in Shader-Programmierung (mit Nvidia Cg, zum Beispiel), und volumetrische Schattierung, wie Sie erwähnten; auch Glüheffekte Nachverarbeitung kann nützlich sein. Für OpenGL, glaube ich, eine Grenze von 8 gibt es? Lichtquellen in einer Szene, aber man könnte möglicherweise diese Grenze umgehen, indem Sie Ihre eigene Schattierung Logik zu tun.

Andere Tipps

Nun, wenn es nur für Licht zeigen Simulationen ich mir vorstellen würde Ihr viele individuelle Lichteffekte müssen gehen - so unabhängig davon, ob Sie sich entscheiden, XNA oder gerade DirectX Ihre beste Wette zu verwenden, würde durch das Lernen Shader-Sprachen, um zu starten und wie verschiedene Lichteffekte zu programmieren, sie zu benutzen. Sobald Sie die Art des Lasers reproduzieren kann die Beleuchtung Sie wollen, dann können Sie mit den Polygonen experimentieren Sie die Laser darzustellen verwenden möchten. (Ich habe den Zylinder Methode in einigen meiner Arbeit für persönliche Zwecke verwendet, aber ich bin nicht sicher, wie gut gerade Zylinder Ihrem Zweck passen).

Obwohl die schneller, ich glaube, seine besten nicht zu verwenden Vanille-Hardware Beleuchtung wegen seiner Grenzen. Pixel-Shadern mit Ihnen Aufgabe helfen. Auch können Sie OpenGL gewählt, weil die Portabilität und seine Klarheit in Rendering-Methoden. Ich arbeitete an Direct3D für mehrere Jahre vor dem OpenGL wechseln. OpenGL-Funktionen und Zustände sind leichter zu erlernen und Rendering-Methoden (wie Multi-Pass-Rendering) ist viel klarer. Wenn Sie möchten, um Code auf C # (was ich für diese Aufgaben empfehlen dont), können Sie CsGL Bibliothek den Zugriff auf OpenGL-Funktionen verwendet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top