#1 08.01.2006 18:46:01

Carsten
ProMember
Ort: Braunschweig
Registriert: 05.01.2006
Beiträge: 220
Web-Seite

[Shader] Einstieg in Vertex-/Pixel-Shader

Hier stand eine ältere Version des Tutorials, auf dem die Diskussion aufbaut.

artzuk: Im Laufe der Zeit wurde das Tutorial immer wieder angepasst. Deshalb passen manche Posts nicht mehr wirklich, aber wir haben uns entschieden, trotzdem diesen Thread nicht in einen seperaten Tutorial- und Diskussionsthread zu teilen.

Wenn Jemand Fragen hat, kann er sie gerne hier stellen


---------------------------------------------------------------------------------

[Shader] Einstieg in Vertex-/Pixel-Shader

Mit gleichem Inhalt auch als pdf-Datei erhältlich: http://www.zusi.de/delphi/shadertutorial.pdf


Einstieg in Vertex-/Pixel-Shader
Dieses kleine Tutorial soll eine Lücke schließen, die mir beim Einarbeiten in das Shader-Thema aufgefallen ist. So findet man zwar im www eine Menge über den ganz grundlegenden Ansatz der Shadertechnik und auch eine Menge über diverse ausgeführte Shader und Effekte, was mir aber völlig fehlte, war der Zwischenschritt - also z.B. die ersten konkreten Schritte für ein einfaches Testprogramm.

Was macht ein Shader?
Ein Shader ersetzt die normale fixed-function-pipeline (FFP). Ein Vertexshader manipuliert dabei die Vertextransformation (also bis das Dreieck als 2D-Obekt auf den Backbuffer gezeichnet wird), ein Pixelshader manipuliert das Ausfüllen der Dreicksfläche. Man kann aber nur entweder die FFP benutzen oder einen Shader und muß sich dann beim Shader auch um die gesamte Transformation kümmern. Weitere Grundlagen z.B. im Tutorial bei zfx: http://www.zfx.info/Tutorials.php?ID=71

Die verschiedenen Möglichkeiten, einen Shader zum Einsatz zu bringen
A.) Assembler:
Ursprünglich gab es Shader nur als Assemblercode. Dabei gibt es folgende Möglichkeiten, den Assembler-Code zu verwenden:
1.) Man erstellt den Code in externem Text-File und lädt und compiliert ihn zur Laufzeit mit dem Befehl D3DXAssembleShaderFromFile (dann müssen also die Assemblerdateien mit an den Nutzer ausgeliefert werden)
2.) Man kann auch die Dateien bereits vorher kompilieren und liefert dann die kompilierten Dateien an den Nutzer aus. Zum Kompilieren werden die Kommandozeilen-Tools psa.exe und vsa.exe (für PixelShader und VertexShader) mit dem DirectX-SDK ausgeliefert. Damit kann der Nutzer nicht mehr ohne weiteres sehen, was im Shader steckt und das Kompilieren zur Laufzeit entfällt.

Statt die Information aus einer Datei zu lesen, gibt es auch entsprechende Möglichkeiten, die Shader aus dem Speicher zu laden. Nicht kompilierten Code kann man auch im Programm als string definieren und zur Laufzeit kompilieren lassen (und spart sich so das separate File).

B.) HLSL:
Mit DirectX 9 wurde zusätzlich die High-Level-Shader-Language (HLSL) eingeführt, also eine Hochsprache für Shader-Programmierung. Diese setzt auf den Assembleransatz auf erspart den etwas anstrengenden Umgang mit Assembler-Code.
Der HLSL-Code ist C-ähnlich und wird in einem .fx-File gespeichert. Der mit dem Direct-SDK ausgelieferte EffectEditor kann diesen Code direkt visualisieren. Da für die Visualisierung Texturen und 3D-Objekte benötigt werden, kann man diese im HLSL-Code angeben. Diese Dateien werden aber ausschließlich zum Testen vom Editor geladen. Im späteren Programmablauf sind die Dateiangaben bedeutungslos.
nVidia und ATI bieten auch je einen Editor für HLSL an (RenderMonkey von ATI und fxComposer von nVidia).

In einem fx-File können diverse "Techniques" untergebracht werden, von denen man dann zur Laufzeit die jeweils gewünschte auswählt. Folgende Möglichkeiten der Programmeinbindung gibt es:
1.) Die fx-Files werden "roh" ausgeliefert und zur Laufzeit mit dem Befehl D3DXCompileShaderFromFile geladen und kompiliert
2.) Die fx-Files werden vorher kompiliert und dann mit dem Befehl D3DXCreateEffectFromFile geladen. Zum Kompilieren gibt es das Kommandozeilen-Tool fxc.exe aus dem DirectX-SDK, das man z.B. so aufruft:  fxc /T fx_2_0 <Textfile.fx>, es wird dann ein fxo-File erzeugt.

Ein einfaches Beispiel
Als einfachster Fall soll der bekannte Tiger aus dem SDK einmal mit der FFP und einmal mit Shadern gerendert werden. Anhand dieses Beispiels wird auch das Prinzip der Shadereinbindung deutlich. Es wird dabei die einfachere und vermutlich auch zukunftssichere Methode per HLSL benutzt.

Zunächst die klassiche Methode mit FFP:

Code: delphi

  // Transformations-Matrizen setzen
  g_pd3ddevice.settransform(d3dts_world, matworld);
  g_pd3ddevice.settransform(d3dts_view, matview);
  g_pd3ddevice.settransform(d3dts_projection, matproj);

  g_pd3ddevice.clear(0, nil, d3dclear_target or d3dclear_zbuffer, d3dcolor_xrgb(0,0,255), 1.0, 0);

  if succeeded(g_pd3ddevice.beginscene) then
  begin
    i:= 0;
    while(i < g_dwnummaterials) do
    begin
      // Material und Texturen setzen
      g_pd3ddevice.setmaterial(g_pmeshmaterials[i]);
      g_pd3ddevice.settexture(0, g_pmeshtextures[i]);

      // Das Mesh zeichnen
      g_pmesh.drawsubset(i);

      inc(i);
    end;

    g_pd3ddevice.endscene;
  end;

  g_pd3ddevice.present(nil, nil, 0, nil);



Den Shader programmieren

Jetzt wird erstmal ein Shader gebraucht, der die normale FFP-Funktion übernimmt. Der Vertex-Shader soll also die Vertices an ihren Ort transformieren und der Pixelshader die Textur auftragen.

Da gibt es zunächst die Liste der Techniques und ihrer passes, so eine Art Hauptprogramm des Shaders. Unser Shader hat nur die Technique "tec0" und diese einen pass "p0":

Code: delphi

technique tec0 
{ 
   pass p0 
   { 
      VertexShader = compile vs_1_1 RenderVS(); 
      PixelShader = compile ps_1_1 RenderPS(); 
   } 
}

Hier werden also über die Schlüsselworte VertexShader und PixelShader die zu benutzenden Shader und ihre Version (vs_1_1, ps_1_1) definiert. Nun zu den aufgerufenen Funktionen RenderVS und RenderPS:

Code: delphi

vs_output rendervs( vs_input in ) 
{ 
   VS_OUTPUT Out; 

   Out.vPosition = mul( float4(In.vPos,1), (float4x4)matWVP ); 
   Out.vDiffuse = In.vDif; 
   Out.vTexCoord0 = In.vTex0; 

   return Out;
}

Die Funktion RenderVS erhält als Input einen Wert vom Typ VS_INPUT und gibt den Typ VS_OUTPUT zurück. Diese Typen müssen vorher definiert worden sein. VS_OUTPUT ist ein Record, das die Position (wird als 4D-Wert gespeichert), Farbe und Texturkoordinate eines Backbuffer-Punktes enthält. Die in Großbuchstaben geschriebenen Bezeichner sind Schlüsselworte für die Verwendung der Vertexshader:

Code: delphi

struct vs_output 
{ 
   float4 vPosition : POSITION; 
   float4 vDiffuse : COLOR0; 
   float2 vTexCoord0: TEXCOORD0; 
}; 


Der Eingangswert "In" ist ein Record, der dem Vertexformat entspricht, hier als Position + Farbe + Texturkoordinate. „In“ muß hier groß geschrieben werden, um Konflikte mit dem reservierten „in“ zu vermeiden (wie auch bei C wird groß-/Kleinschreibung beachtet!):

Code: delphi

struct vs_input 
{ 
   float3 vPos : POSITION; 
   float4 vDif : COLOR0; 
   float2 vTex0: TEXCOORD0; 
}; 


Nun aber zurück zur Funktion RenderVS: Diese hat die Aufgabe, den Eingangswert (also einen Vertex unseres Meshes) auf den Backbuffer zu transformieren. Dazu braucht sie aber eine Angabe über die Transformationsvorschrift. In unserem Fall soll eine Transformation analog zur FFP benutzt werden, also der Punkt mit der World-, View- und Projection-Matrix multipliziert werden. Also erzeugen wir eine nach außen sichtbare Variable mit Namen matWVP, in die das Anwendungsprogramm die Matrix schreiben kann.

Code: delphi

float4x4 matwvp: worldviewprojection;


Mit dem Kommando

Code: delphi

out.vposition = mul( float4(in.vpos,1), (float4x4)matwvp ); 

wird der Input-Parameter In.vPos mit der Matrix matWVP multipliziert und ist damit korrekt transformiert. Der Farb- und Texturwert des Inputs sollen einfach unverändert übernommen werden:

Code: delphi

out.vdiffuse = in.vdif; 
out.vtexcoord0 = in.vtex0; 


Damit ist die Vertextransformation schon abgeschlossen. Das Ergebnis wird anschließend als Input für den Pixelshader benutzt.

Kommen wir also zu der in der Technique aufgerufenen Pixelshader-Funktion:

Code: delphi

ps_output renderps( vs_output in ) 
{ 
   PS_OUTPUT Out; 

   Out.RGBA = tex2D( SamplerT0, In.vTexCoord0 ); 

   return Out;
} 


Die Funktion RenderPS erhält als Input einen Wert vom Typ VS_OUTPUT (logisch, muß ja das Ergebnis des Vertexshaders weiterverarbeiten) und gibt den Typ PS_OUTPUT zurück. Dieser muß noch definiert werden, was recht schnell geht - ist ja schließlich nur ein Farbwert auf dem Backpuffer:

Code: delphi

struct ps_output 
{ 
   float4 RGBA: COLOR0; 
}; 


Werfen wir noch einen Blick auf die Operation, die der Pixelshader ausführt:

Code: delphi

out.rgba = tex2d( samplert0, in.vtexcoord0 );

Die Funktion tex2D holt einen Texturwert an der mit In.vTexCoord0 übergebenen Koordinate aus der mit SamplerT0 definierten Textur. In.vTexCoord0 sollte klar sein, das ist die entsprechend interpolierte Texturkoordinate für den jeweiligen Pixel. SamplerT0 muß noch definiert werden:

Code: delphi

sampler samplert0 = sampler_state 
{ 
   Texture = <t0>; 
   MipFilter = LINEAR; 
   MagFilter = ANISOTROPIC; 
   MinFilter = ANISOTROPIC; 
}; 


SamplerT0 besteht also aus einer Textur mit Namen "t0" (ohne die Klammern um t0 kann es zu Problemen
kommen), die das Programm setzen kann (und muß) und Angaben zu den Texturfiltern. Mit diesen Angaben liefert der Pixelshader also den entsprechend gefilterten Textur-Farbwert an der jeweiligen Texturkoordinate zurück.

Einbindung ins Programm

Diese Shader-Kommandos sollen nun aus dem Programm angesteuert werden. Es muß zunächst beim Erstellen der Device-Objects zusätzlich der Shader erstellt werden:

Code: delphi

d3dxcreateeffectfromfile(g_pd3ddevice, pchar('test.fx'), nil, nil, 0, nil, g_effect, nil)



und am Ende wieder freigegeben werden:

Code: delphi

if (g_effect <> nil) then g_effect:= nil;


Die Render-Funktion ändert sich folgendermaßen: Zunächst entfallen die Kommandos

Code: delphi

  g_pd3ddevice.settransform(d3dts_world, matworld);
  g_pd3ddevice.settransform(d3dts_view, matview);
  g_pd3ddevice.settransform(d3dts_projection, matproj);


da ja die FFP nicht mehr zuständig ist

Dann muß die gewünschte Technique gesetzt werden, unser fx-File enthält nur eine (Groß-/Kleinschreibung beachten):

Code: delphi

      g_effect.settechnique('tec0');


Die Textur wird jetzt beim Shader gesetzt, der entsprechende Befehl für die FFP entfällt (auch hier muß Groß-/Kleinschreibung "t0" mit der Deklaration im fx-File übereinstimmen):

Code: delphi

      g_effect.settexture('t0', g_pmeshtextures[i]);


Dann muß dem Shader die Transformationsmatrix übergeben werden, welche im fx-File als "matWVP" deklariert wurde

Code: delphi

d3dxmatrixmultiply(m, matworld, matview);
d3dxmatrixmultiply(m, m, matproj);
g_effect.setmatrix('matWVP',m);


Shader aktivieren (es werden die Anzahl der passes zurückgegeben, hier nur einer ("p0")

Code: delphi

      g_effect._begin(passes, 0);


Die Nummer des anzuwendenden passes übergeben:

Code: delphi

      g_effect._beginpass(0);


Und wie immer die Polygone zeichnen (damit werden die Daten durch den Shader "gejagt")

Code: delphi

      g_pmesh.drawsubset(i);



Einmal der Renderabschnitt mit Shadern im Überblick:

Code: delphi

     g_pd3ddevice.clear(0, nil, d3dclear_target or d3dclear_zbuffer,
                      d3dcolor_xrgb(0,0,255), 1.0, 0);
  if succeeded(g_pd3ddevice.beginscene) then
  begin
    d3dxmatrixrotationy(matworld, timegettime/1000.0);

    veyept:=    d3dxvector3(0.0, 3.0,-5.0);
    vlookatpt:= d3dxvector3zero;
    vupvec:=    d3dxvector3(0.0, 1.0, 0.0);
    d3dxmatrixlookatlh(matview, veyept, vlookatpt, vupvec);

    d3dxmatrixperspectivefovlh(matproj, d3dx_pi/4, 1.0, 1.0, 100.0);
    i:= 0;
    while(i < g_dwnummaterials) do
    begin
      g_effect.settechnique('tec0');

      d3dxmatrixmultiply(m, matworld, matview);
      d3dxmatrixmultiply(m, m, matproj);
      g_effect.setmatrix('matWVP',m);

      g_effect.settexture('t0',g_pmeshtextures[i]);

      g_effect._begin(passes, 0); 
      g_effect._beginpass(0);

      g_pmesh.drawsubset(i);

      g_effect._end;
      inc(i);
    end;
    g_pd3ddevice.endscene;
  end;
  g_pd3ddevice.present(nil, nil, 0, nil);

   


Außerdem ist es ganz wichtig, daß das Vertexformat des Polygons mit dem vom Shader erwarteten Format übereinstimmt. Darum wird das x-File nach dem Laden auf das Vertexformat geklont, das der Shader erwartet:

Code: delphi

pmesh.clonemeshfvf(d3dxmesh_managed, d3dfvf_xyz or d3dfvf_normal or d3dfvf_diffuse or d3dfvf_tex1, g_pd3ddevice, g_pmesh))


Hinweis: Um keine Mipmaps zu erzeugen, wurde außerdem D3DXCreateTextureFromFileEx für das Laden der Texturen benutzt.

Damit macht der Shader jetzt nichts anderes als die FFP, aber ausgehend von diesem Beispiel sollte der weitere Einstieg in die Shader-Technik hoffentlich kein großes Problem mehr sein. Für die weitere Programmierung von HLSL gibt es diverse Turorials im www .

Hier die Quellcodes: http://www.zusi.de/delphi/shadertutorial.zip
Hinweis: Per FFP wird der Tiger etwas dunkler gezeichnet, da unser Shaderansatz das im x-File hinterlegte Material nicht berücksichtigt und die Textur mit unveränderter Helligkeit zeichnet.

Eine Einführung in HLSL von ATI eignet sich gut als Fortsetzung: http://www.ati.com/developer/ShaderX2_I … ToHLSL.pdf
Ebenfalls zu empfehlen: Die gesamte FFP als shader: http://www.atitech.com/developer/sample … hader.html

Carsten

Offline

 

#2 08.01.2006 18:48:27

Carsten
ProMember
Ort: Braunschweig
Registriert: 05.01.2006
Beiträge: 220
Web-Seite

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

hier mein angedrohtes Shader-Tut zur allgmeinen Diskussion...

Wenn eine endgültige Version gefunden ist, kann ich es gerne in pdf umwandeln. Eine kleine Unklarheit: Der Shader-Tiger erscheint etwas heller als der ffp-Tiger, mir ist nicht klar, warum.

Carsten

Offline

 

#3 08.01.2006 19:57:01

Coolcat
ProGuru
Ort: Aachen, NRW
Registriert: 24.01.2005
Beiträge: 2780
Web-Seite

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

Super Idee mit dem Tutorial! Bis auf einige kleine Tippfehler super!! smile
Ich hab die (vier) Tippfehler gleich mal im Text  (in rot) korrigiert, wozu is man Admin wink 

Zitat:

Die Textur wird jetzt beim Shader gesetzt, der entsprechende Befehl für die FFP entfällt (auch hier muß Groß-/Kleinschreibung "t0" mit der Deklaration im fx-File übereinstimmen):
delphi:
      g_Effect.SetTexture('t0', g_pMeshTextures[i]);

Ich hab keine Ahnung von Shadern, aber kann es sein, dass 't0' eigentlich 'SamplerT0' heißen müsste?
(oder andersrum... wink )

Coolcat


My software never has bugs. It just develops random features.

Offline

 

#4 08.01.2006 20:19:36

artzuk
GodlikeMember
Ort: Leipzig
Registriert: 24.01.2005
Beiträge: 1164

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

Find ich cool, dass du so schnell ein Tutorial geschrieben hast smile

Vielleicht könntest du noch die Variablen des EffectFiles beschreiben?
@Coolcat: t0 sollte richtig sein, denn ich denk mal das ist die texture. SamplerT0 ist dann im EffectFile nur ein Record, wo die Textur und Texturfilter gespeichert werden.

ADD: Ich hab auch in deinen Post rumgefuscht big_smile - hab nur mal bei den Shadern den Syntax auf cpp gestellt.


Mein kleiner .NET Blog: http://artzuk-interactive.de/

Offline

 

#5 08.01.2006 20:29:33

Carsten
ProMember
Ort: Braunschweig
Registriert: 05.01.2006
Beiträge: 220
Web-Seite

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

Zitat:

hab nur mal bei den Shadern den Syntax auf cpp gestellt.

damit erübrigt sich die Frage, die ich eben an die Admin-Meister stellen wollte... :mrgreen:

Habe ich denn wenigstens inhaltlich keinen Mist verzapft?
(t0 ist schon richtig)

Gewünschte Erweiterung folgt dann die Tage.

Carsten
Edit: Bitte nicht mehr drin editieren, da ich es jetzt noch mal überarbeite.

Offline

 

#6 09.01.2006 00:22:39

Carsten
ProMember
Ort: Braunschweig
Registriert: 05.01.2006
Beiträge: 220
Web-Seite

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

so, neue Version ist da.

Carsten

Offline

 

#7 09.01.2006 06:18:54

artzuk
GodlikeMember
Ort: Leipzig
Registriert: 24.01.2005
Beiträge: 1164

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

Den Inhalt hab ich noch gar nicht durchlesen können big_smile - mal sehen wie viel Zeit ich heute auf Arbeit habe


Mein kleiner .NET Blog: http://artzuk-interactive.de/

Offline

 

#8 09.01.2006 09:24:49

Coolcat
ProGuru
Ort: Aachen, NRW
Registriert: 24.01.2005
Beiträge: 2780
Web-Seite

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

Wie immer, ich hab keine Ahnung, aber wenn es ein g_Effect._Begin(...) gibt, gibt es dann nicht auch ein g_Effect._End(..) ?


My software never has bugs. It just develops random features.

Offline

 

#9 09.01.2006 10:21:22

JorEl
ExtremeMember
Registriert: 29.01.2005
Beiträge: 894

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

Zitat:

gibt es dann nicht auch ein g_Effect._End

Gibt es natürlich, ja. Ist auch sehr wichtig das aufzurufen, sonst bekommt man früher oder später Schwierigkeiten.

@Carsten:

Ich nehme an du verwendest die alten Ampaz'schen headers, die haben im ID3DXEffect nämlich ein paar bugs. Hab das inzwischen korrigiert, du kannst die headers hier auf delphidev runterladen. Es heisst korrekterweise nicht g_Effect.Pass(0) sondern g_Effect._BeginPass und natürlich gibts auch dazu ein passendes g_Effect._EndPass.

JorEl


Jesus hat gesagt - selig sind die, die da Leid erfahren, denn sie sollen getröstet werden... Ford Prefect hat gesagt - es ist unheimlich wichtig, dass wir miteinander reden und einen trinken.

Offline

 

#10 09.01.2006 10:38:28

Coolcat
ProGuru
Ort: Aachen, NRW
Registriert: 24.01.2005
Beiträge: 2780
Web-Seite

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

Vielleicht sollte man dann auch noch irgendwo mit einem Satz erwähnen, dass das Tutorial auf den Ampaze-Headern aufbaut. Am besten direkt mit SaugLink.


My software never has bugs. It just develops random features.

Offline

 

#11 09.01.2006 10:49:38

JorEl
ExtremeMember
Registriert: 29.01.2005
Beiträge: 894

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

Zitat:

Vielleicht sollte man dann auch noch irgendwo mit einem Satz erwähnen, dass das Tutorial auf den Ampaze-Headern aufbaut. Am besten direkt mit SaugLink.

Also ich unterstütze das - aber natürlich nur in nicht nachweisbarer Form  big_smile

Vermute jedenfalls mal, dass es darauf aufbaut - ist eher unwahrscheinlich, dass Clootie genau den selben bug produziert hat  smile


Jesus hat gesagt - selig sind die, die da Leid erfahren, denn sie sollen getröstet werden... Ford Prefect hat gesagt - es ist unheimlich wichtig, dass wir miteinander reden und einen trinken.

Offline

 

#12 09.01.2006 16:14:17

Carsten
ProMember
Ort: Braunschweig
Registriert: 05.01.2006
Beiträge: 220
Web-Seite

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

ja, sind die alten Header. Ich spiele gerade mit dem Gedanken, auf den aktuellen Stand umzurüsten (wenn ich wüßte, was das für mein Projekt bedeutet...)
Könnte evtl. jemand mit aktuellem Stand einmal kompilieren und schauen, was zu ändern ist? Müßte ja recht flott gehen und wäre wohl die bessere Lösung als die alten Klamotten anzubieten.

Carsten

Offline

 

#13 09.01.2006 16:50:14

JorEl
ExtremeMember
Registriert: 29.01.2005
Beiträge: 894

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

Also mit den headers die du zur Zeit hier runterladen kannst solltest du absolut keine Probleme haben - mal abgesehen davon, dass im ID3DXEffect das mit beginpass/endpass und begin/end nicht korrekt war hat sich bisher von den Schnittstellen nicht wirklich grossartig was geändert - Allerdings musst du die aktuelle DirectX Version installiert haben, da sonst die dll die inzwischen teilweise (statt Ampaze's alter dll) verwendet wird nicht existiert.

Wenn du weiterhin das ID3DXEffect interface verwenden willst dann führt an einem update kein Weg vorbei - übrigens bietet die alte Version auch keinen Shader 3 support, d.h. du kannst mit D3DXCreateEffect keinen effect erzeugen der shader 3 code implementiert.

PS: wird übrigens in den nächsten Wochen ein neues update geben - und dann ist die Abhängigkeit von der alten dll hoffentlich endgültig beseitigt.

JorEl


Jesus hat gesagt - selig sind die, die da Leid erfahren, denn sie sollen getröstet werden... Ford Prefect hat gesagt - es ist unheimlich wichtig, dass wir miteinander reden und einen trinken.

Offline

 

#14 09.01.2006 20:13:54

Coolcat
ProGuru
Ort: Aachen, NRW
Registriert: 24.01.2005
Beiträge: 2780
Web-Seite

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

@Carsten: Sag bescheid, wenn du das Ding für "fertig" erklärst, dann mach ich mal ne Newsmeldung dazu smile


My software never has bugs. It just develops random features.

Offline

 

#15 09.01.2006 21:12:47

Carsten
ProMember
Ort: Braunschweig
Registriert: 05.01.2006
Beiträge: 220
Web-Seite

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

aus meiner Sicht wären nur noch die Delphi-Dateien auf den aktuellen Stand zu bringen. Ist denn inhaltlich alles okay - Experten vor...?

Welche Darreichungsform wird denn gewünscht? Forumseintrag so wie jetzt oder lieber pdf?

Carsten

Offline

 

#16 10.01.2006 15:18:15

Coolcat
ProGuru
Ort: Aachen, NRW
Registriert: 24.01.2005
Beiträge: 2780
Web-Seite

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

Zitat:

Ist denn inhaltlich alles okay - Experten vor...?

Bin auf dem Gebiet leider keiner...  :down:

Zitat:

Welche Darreichungsform wird denn gewünscht? Forumseintrag so wie jetzt oder lieber pdf?

Wie wärs mit beidem? wink
Irgendwann wollten wir ja mal ne vernünfitge Tutorial-Sektion machen, daher wäre es nicht schlecht, wenn wir das in HTML-Form haben. (haben wir ja dann durch das Forum..)

Coolcat


My software never has bugs. It just develops random features.

Offline

 

#17 10.01.2006 16:11:57

Carsten
ProMember
Ort: Braunschweig
Registriert: 05.01.2006
Beiträge: 220
Web-Seite

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

okay. Mache bis heute oder morgen fertig. Neue Header liefen problemlos (die alten aber auch) und warum der Tiger eine etwas andere Helligkeit aufweist, ist auch geklärt (Grund:  :doof: )

Carsten

Offline

 

#18 10.01.2006 16:44:38

JorEl
ExtremeMember
Registriert: 29.01.2005
Beiträge: 894

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

Zitat:

Neue Header liefen problemlos (die alten aber auch)

Die Probleme mit den alten headers beginnen spätestens wenn du zwei verschiedene techniques im selben effect file hast  - bzw. wenn du shader 3 compilieren willst funktioniert es damit sowieso nicht.  smile
Updates sind daher prinzipiell immer sinnvoll, auch wenn man eventuell ein paar Kleinigkeiten ändern muss.

JorEl


Jesus hat gesagt - selig sind die, die da Leid erfahren, denn sie sollen getröstet werden... Ford Prefect hat gesagt - es ist unheimlich wichtig, dass wir miteinander reden und einen trinken.

Offline

 

#19 11.01.2006 21:48:22

Carsten
ProMember
Ort: Braunschweig
Registriert: 05.01.2006
Beiträge: 220
Web-Seite

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

ich schlage vor, ein Admin löscht diesen Thread komplett, ich eröffne für die Endversion des Tutorials gleich ein neues Thema.

Carsten

Offline

 

#20 11.01.2006 22:11:07

JorEl
ExtremeMember
Registriert: 29.01.2005
Beiträge: 894

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

Wäre es nicht sinnvoller die updates in diesen thread zu kopieren und den neuen zu löschen? Auch die geposteten Kommentare helfen eventuell Leuten weiter die das Tutorial lesen.


Jesus hat gesagt - selig sind die, die da Leid erfahren, denn sie sollen getröstet werden... Ford Prefect hat gesagt - es ist unheimlich wichtig, dass wir miteinander reden und einen trinken.

Offline

 

#21 11.01.2006 22:18:19

Coolcat
ProGuru
Ort: Aachen, NRW
Registriert: 24.01.2005
Beiträge: 2780
Web-Seite

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

Hier wird nix gelöscht....ich denke mal so ist es am besten, beide Threads sind verlinkt.


My software never has bugs. It just develops random features.

Offline

 

#22 11.01.2006 22:45:10

Carsten
ProMember
Ort: Braunschweig
Registriert: 05.01.2006
Beiträge: 220
Web-Seite

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

ich kann es auch rüberkopieren. Ich dachte nur, es wäre verwirrend, wenn man das Tutorial zum ersten Mal liest, und dann die ganzen folgenden Kommentare gar nicht mehr zum Inhalt des Tutorials passen, da dort inzwischen eingeflossen.  :?
Wenn dieser Thread aber bestehen bleiben soll, dann würde ich den neuen löschen und meinen ersten Beitrag oben aktualisieren (denn 2 Threads sind ja blöd).

Mit der Bitte um endgültige Admin-Aussage.

Carsten

Offline

 

#23 11.01.2006 22:58:37

Coolcat
ProGuru
Ort: Aachen, NRW
Registriert: 24.01.2005
Beiträge: 2780
Web-Seite

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

Kann sich da bitte einer der Mods drum kümmern, hab gerade wirklich null Zeit.....sry


My software never has bugs. It just develops random features.

Offline

 

#24 13.01.2006 07:06:06

artzuk
GodlikeMember
Ort: Leipzig
Registriert: 24.01.2005
Beiträge: 1164

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

Irgendwie versteh ich nicht recht, was gemacht werden soll - hätte heute Zeit mich drum zu kümmern (da kein Ausbilder da ist)


Mein kleiner .NET Blog: http://artzuk-interactive.de/

Offline

 

#25 13.01.2006 08:18:12

Coolcat
ProGuru
Ort: Aachen, NRW
Registriert: 24.01.2005
Beiträge: 2780
Web-Seite

Re: [Shader] Einstieg in Vertex-/Pixel-Shader

Na, aus den beiden Treads wieder einen machen, kA denk dir was aus. Oder lass es so, wenn du meinst es is ok...


My software never has bugs. It just develops random features.

Offline

 

Brett Fußzeile

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson