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!

Werbeanzeige

1

06.11.2009, 12:07

Gesucht: Gutes HLSL Tutorial

Hallo

Ich suche nach einem guten (deutschen) tutorial das sowohl HLSL als auch deren benutzung mit DirectX9.0c beschreibt. Bisher musste ich mich immer durch tausende von Links durchschlagen und meine momentanigen Shader sind alles andere als ordentlich geschrieben.

Deswegen möchte ich mein Wissen erweitern bzw auf einen neueren stand bringen und wenns geht auch HLSL verstehen.

2

06.11.2009, 15:24

Also zum Thema Shader find ich diese Tutorialreihe ganz gut:
(ist leider nicht Deutsch, aber trotz dem Ziemlich gut.)

http://www.riemers.net/eng/Tutorials/XNA…rting_point.php

Sprache der Shader: HLSL

Ich denk mal, den C# Code, der in der Anwendung ist kann man auch gut auf C++ beziehen.

3

06.11.2009, 17:59

Da ich meinen ersten Kontakt mit der Spieleprogrammierung mit XNA hatte, fällt es mir nicht schwer das ganze auf C++ und Direct3D zu übertragen, jedoch geht Riemer nicht genau auf alle Sachen ein.

C-/C++-Quelltext

1
2
3
4
5
struct VertexToPixel
{
    float4 Position     : POSITION;
    float4 Color        : COLOR0;
};


Ich verstehe z.B. nicht warum er für die Positionen einen float4 benutzt. Für mich ist es wiedersprüchlich das man in der Vertex Declaration und auch in den VertexBuffern einen Vector3 benutzt, aber im Shader selbst einen "Vector4" erwartet.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

4

06.11.2009, 18:38

So widersprüchlich es dir erscheinen mag, die 4. Komponente hat schon ihren Sinn. Die D3D Renderpipeline nutzt homogene Koordinaten. Netterweise verlangt DirectX von dir nur Positionen mit 3 Komponenten und impliziert für die 4. einfach eine 1.

5

06.11.2009, 21:45

Danke, jetzt hab ich es verstanden ;)

Werbeanzeige