Frage

Ich will loslegen tun einige game development using Microsoft XNA.Teil, der Shader-Entwicklung, aber ich habe keine Ahnung, wie, um loszulegen.Ich weiß, dass nVidia FX Composer ist ein großes Werkzeug zu entwickeln, mit Shadern, aber ich habe nicht viel nützlichen und aktualisierten Inhalten, wie Sie tatsächlich loslegen.

Was tutorials würden Sie empfehlen?

War es hilfreich?

Lösung

Entwicklung von Shadern in XNA (die offensichtlich DirectX verwendet) erfordert die Kenntnis der HLSL oder shader Montage.Ich würde empfehlen, vertraut mit der ehemaligen vor dem Tauchen in die letztere.

Bevor Sie das schreiben von Shadern, ist es eine gute Idee, um solides Verständnis der shader-pipeline, und Versuch, um Ihren Verstand herum, was möglich ist, wenn mit programmierbaren Shadern.Wenn Sie vertraut sind mit dem Leben eines pixels (von der Quelle der Daten alle Weg durch auf dem Bildschirm), dann verstehen Beispiele von Shadern wird viel einfacher.

Nächsten Versuch zu Unternehmen, Sie zu schreiben Sie Ihre eigene HLSL, die das tut, was die Feste T&L pipeline verwendet, um zu tun, nur um Sie zu erhalten Hände schmutzig.Dies ist das äquivalent zu "Hallo Welt" - Programm in vertex/pixel-shader-Welt.Wenn Sie in der Lage, das zu tun, und Sie verstehen, was Sie geschrieben haben sind Sie bereit zu gehen auf die noch mehr Spaß.

Als nächsten Schritt möchten Sie vielleicht, um zu simulieren basic sepcular Beleuchtung in einem der Shader, von einer einzigen Lichtquelle.Dann können Sie diese anpassen, die Spur verwenden mehrere Lichter.Spielen Sie mit Farben, und die Bewegung der Lichter.Dies wird Ihnen helfen, vertraut mit der Verwendung der shader-Konstanten.

Wenn Sie ein paar basic-Shader zusammen, die Sie sollten versuchen, es so zu machen, dass Sie Ihr Spiel/engine verwendet mehrere/verschiedene Shader auf verschiedene Objekte.Starten Sie hinzufügen einige andere bits wie basic bump oder normal maps.

Wenn Sie auf dieser Bühne, die Welt ist Ihre Auster.Sie können beginnen, Tauchen Sie ein in einige funky effectcs, und sogar erwägen Sie die Verwendung der GPU für mehr als es ursprünglich beabsichtigt war.

Für diejenigen, die ein wenig weiter Fortgeschritten, es gibt ein paar gute Bücher, die kostenlos online, die haben einige großartige Informationen von Nvidia hier und hier.

Vergessen Sie nicht, dass es eine ausgezeichnete Reihe von Büchern genannt ShaderX umfasst einige awesome shader Zeug.Es gibt 1, 2, 3, 4, 5 und 6 bereits im Druck, und 7 bald ist es soweit.

Viel Glück.Wenn man einige Shader gehen, ich würde lieben, Sie zu sehen :)

Andere Tipps

Ich möchte nur noch einmal betonen, wie großartig die GPU Gems Bücher sind - eine wirklich fantastische Ressource für alle ernst-Grafik-Entwicklung.

OJ hat im Grunde summiert wirklich guten Prozess des Lernens, ich würde nur hinzufügen, dass ein gutes Fundament in der geometrischen Mathematik (Vektoren/Matrizen als minimum), darf nicht unterschätzt werden - aber es ist nicht so schwer wie Menschen machen manchmal aus.Lernen, was ein dot product, cross product, normalen-Vektor und matrix multiplizieren Sie sind und tun, ist ein guter Erster Schritt sein :).Versuchen Sie zu verstehen, was genau passiert ist zwischen Welt/Ansicht/Projektion-Clips/Platz auf dem Bildschirm, was die Perspektive teilen, etc.

Als ich begann zu lernen, ist eine gute übung ist, um tatsächlich zu implementieren, die gesamte T&L pipeline-in-software, komplett mit clipping - /Keulen etc.Das ist ein langer Prozess und kann nicht scheinen, lohnt sich, wie ich sicher bin Sie wollen nur Tauchen Sie ein in die lustige Sachen, aber mit einem richtigen Verständnis dessen, was Los ist wirklich nützlich und wird sich lohnen, wenn Sie immer laufen in mehr heimtückisch und schwer zu diagnostizieren Fehler.

Versuchen Sie, nicht ins abseits gedrängt werden, mit tools wie den FX Komponist zunächst, Sie sind nützlich für das prototyping, aber eine solide Grundlage in den Grundlagen wird viel mehr Wert auf lange Sicht.

Eine der besten Möglichkeiten, um loszulegen mit Shadern zu Lesen ist, Introduction to 3D Game Programming with DirectX 9.0 c Shader-Ansatz von Frank Luna.Der Autor stellt zunächst die DirectX und die HLSL und dann gradualy zeigt die macht der shader.Er beginnt mit sehr einfachen Shader aber am Ende des Buches wissen Sie, wie Sie erstellen Sie Beleuchtung, Schatten, Partikel-Systeme, etc.Tolles Buch.

OJ empfohlen, dass Sie Lesen Sie die ShaderX Serie, aber das Zeug, es ist nicht für Anfänger geeignet, so wird es nicht helfen, eine Menge wenn Sie machen Ihre ersten Schritte.

Ich habe auch einen Artikel veröffentlicht, der hier über die besten Bücher, die Sie erhalten, Sie begann mit Spiel-Entwicklung.

Ich würde join the Lob gegeben OJ - wirklich eine gute Antwort.Noch einmal haben Sie das grundlegende Verständnis können Sie eine Menge lernen und schnell indem du eines der folgenden zwei großartige Werkzeuge:

Sobald Sie das tun, gehen, um Ihre Projekt-Bibliotheken und stöbern Sie durch Beispiele, beginnend mit den grundlegenden Schattierung und sich bewegende Schatten, normal-mapping, Materialien, Effekte und alles, was Sie interessant finden.nehmen Sie ein Projekt starten, verändern die algorithmen, die nach Meinung einiger Ziele, die Sie setzen und sehen, wie Sie es bekommen.Sie werden feststellen, dass viele der Beispiele, die sind sehr Fortgeschritten und Sie wird öffnen Ihre Horizonte.

Spaß haben

Während eine Menge gute Ratschläge, ist bereits gegeben, wenn Sie einen harten job bekommen Ihren Geist rund um die Schritte, Mental Mill bietet eine visuelle Möglichkeit für den Bau-Shader (der Künstler-Edition gebündelt ist kostenlos mit Fx Komponist -- selbst auch noch kostenlos!).

Während Sie wären besser dran, langfristige erlernen der HLSL-code direkt, Mental Mill generieren können diese Fx-Dateien für Sie (so können Sie einen Blick auf die änderungen).Beachten Sie, wie alle code-Generatoren, es ist ein wenig Ausführlicher ist, als Sie wahrscheinlich tun, wenn Sie verstehen, HLSL!

Die visual Fortschreiten der Effekte, von einer Methode zu einer anderen, ist sehr beeindruckend!

SAMS ' s XNA Unleashed von Chad Carter ist ein guter Ausgangspunkt für XNA und nimmt wenig wissen über die Spiele-Entwicklung Praktiken oder harte Mathematik, bevor Sie beginnen.Es hat zwei Kapitel über basic-und advanced-Shader.

Wie nebenbei, halten Sie ein Auge auf Google für WPF-Shader-tutorials, die es heute verwendet die gleiche Technologie, damit Kunden Shader in WPF-Anwendungen und tutorials, die ich glaube, sind weitgehend kompatibel mit XNA.

Ich habe nicht verwendet XNA oder DirectX.Aber, um zu wissen, die Grundlagen der shader-Programmierung mit Cg, die Cg Tutorial ist das beste Buch, das ich gefunden habe.

Sie sollten auch einen Blick auf RenderMonkey.Es ist ein gutes Werkzeug.Soweit die Bücher gehen, check out XNA 2.0 Game Programming Rezepte von Riemer Grootjans ...tolles Buch.

Einen schnellen Gedanken auf visual shader-Editoren.Diese Art von Editoren sind eine sehr lustige Sache, um mit zu spielen, aber ich würde wirklich empfehlen, mit Stock, arbeiten mit text-basierten HLSL (es sowohl RM und FXC die Arbeit zu tun).Ich arbeite als game dev und haben ein paar shader-Systeme (die in Battlefield 2 und Farcry 2, zum Beispiel) und, um ehrlich zu sein, habe festgestellt, dass HLSL ist mehr Wert als jede Grafik-shader-Netzwerk zu Datum.

Es gibt Dinge, wie nach dem Ablauf der Ausführung, das Debuggen der shader oder in der Lage, schnell zu iterieren, testen, Fällen, die Ihnen einen Einblick, das ist ziemlich unmöglich, den Weg durch ein visuelles tool.

Ich habe visual shader Bauherren selbst, und wie ich Sie mag, und eines Tages, als Schattierung ist nicht performance-kritisch, wie es heute ist, Sie könnte das richtige Werkzeug für den job.

..wenn meine Vermutung ist, dass wir sehen, deferred lighting und wahrscheinlich die Vollversion der software gerendert werden, bevor dieser Tag kommt ;)

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