Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: So Jul 13, 2025 17:06

Foren-Übersicht » Programmierung » Shader
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
BeitragVerfasst: Fr Sep 07, 2007 10:34 
Offline
DGL Member

Registriert: Fr Nov 18, 2005 00:44
Beiträge: 57
Ich habe eine Fragen bezüglich der Vektoren, die man für die verschiedenen Lichtmodelle braucht. Ins besondere
meine ich damit Vektoren wie Blickrichtung,CameraPosition und Lichtposition. Wo bekomme ich die her? Bei dem Licht stellt
sich für mich eher die Frage, ob ich das openGL Licht verwende, oder einfach ein eigenes schreibe und dann die Vektoren (Position,Ambient,Diffuse und Specular) als uniform
an den Shader schicke. Die eigenen wären praktisch, weil ich sie Formeltechnisch schnell modifizieren kann wie ich möchte, dafür sind die oGL Lichter bereits bestandteil der GLSL und ich spare mir die vielen uniforms.

Ich hatte mal in openGL ein Goroud-Licht geschrieben, das basierte aber komplett auf eigene Objekte und beleuchtete eine Fläche nur
in Abhängigkeit zur Flächennormale, d.h. es war nicht nur eine vereinfachte Beleuchtung, sondern ich wusste aufgrund der komplett selbst geschriebenen Objekte (Licht,Camera), was sich wo in welchem Format befindet. Außerdem wurde die Färbung per gl_color3f(); angestellt, was denke ich ebenfalls eine unglückliche Lösung ist.

Aufjedenfall soll es diesmal ewas schöner werden und habe mir dazu einige Tuts von oZone3d.net angesehen zum thema blinn-phong und
ambient occlusion unter Verwendung von Normalmaps und Bumpmaps. Erst wollte ich ne Radiosity schreiben, aber das ist mir für den Anfang zu heftig...

Das Verständnis für die verschiedenen Methoden ist definitiv vorhanden (besonders weil ich es ja schonmal pi*Daumen ohne Shader ausprobiert habe), allerdings
habe ich das Problem, dass ich keinerlei Ahnung habe, wie ich die Position der Kamera, die Position des Lichtes und den Blickvektor der Kamera erhalte und gerade auf diese drei Vektoren bauen ja alle Beleuchtungsmodelle auf. Da bringt es mir leider herzlich wenig, dass ich auf meinem Schreibtisch jetzt drei Beleuchtungsmodelle auf jeweils 2-3 Blattpapier in reinem Formeldeutsch aufgeschrieben habe, wenn die Herkunft der auf alles basierenden Vektoren fehlt.

Ich habe mal gelesen, dass man sich den Blickvektor in openGL aus einer der 2mio Matrizen auslesen kann... stellen sich die Fragen welche Matrix und wie auslesen?
Die Sache mit dem Lichtvektor ist wohl das kleinere übel, da ich halt nur "entweder so oder so" entscheiden muss.

@Lossy Ex: Ich weiß, habs umgeschrieben und Sinn verändert.. aber ich denke so isses besser.

_________________
ist Ihnen schon mal aufgefallen, dass wenn Sie beim Wort Schlagersängerinnen die ersten 6 Buchstaben streichen, das 'e' durch ein 'f' ersetzen, die nächsten 7 Buchstaben rückwärts lesen und dann ebenfalls elemenieren und zusätzlich die beiden nebeneinanderstehenden n's durch ck ersetzen, das Wort 'ficken' ergibt?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Sep 07, 2007 12:41 
Offline
DGL Member

Registriert: Fr Nov 18, 2005 00:44
Beiträge: 57
varying vec3 view;
...blabla...
view = normalize(vec3(-(gl_ModelViewMatrix * gl_Vertex)));

Diese Zeile habe ich mal eben aus nem Vertexshader von Lord Horazont geklaut. Ist das jetzt der Vektor, der in die Richtung zeigt wie meine Kamera?

_________________
ist Ihnen schon mal aufgefallen, dass wenn Sie beim Wort Schlagersängerinnen die ersten 6 Buchstaben streichen, das 'e' durch ein 'f' ersetzen, die nächsten 7 Buchstaben rückwärts lesen und dann ebenfalls elemenieren und zusätzlich die beiden nebeneinanderstehenden n's durch ck ersetzen, das Wort 'ficken' ergibt?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Sep 07, 2007 12:47 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Also.
Um an die genannten Vektoren zu kommen, musst du dir erstmal ne Matrix mit den Kameraaktionen (Rotate, Translate) zurechtlegen.
( Ich habe das so gelöst, dass ich die aktuelle Matrix zwischenspeicher, dann die Identiätsmatrix lade, auf dieser meine operationen durchführe, sie speichere und dann wieder die ursprüngliche zurücklade ).
Dann kannst du dir den View-Vektor, der sich folgendermaßen in der Matrix befindet, da raus holen und den als Kamerasichtvektor verwenden:
Code:
  1.  
  2.   4x4 Matrix:
  3.   r r r t
  4.   u u u t
  5.   v v v t
  6.   . . . .
  7.  

r => rightvector, u => upvector, v => der für dich interessante viewvektor, t => verschiebung

Ich bin mir gerade nicht sicher, aber möglicherweise ist T dann die Kameraposition.
//Edit: Du dieb :wink: . Der ist alt, ich weiss nicht, ob das so richtig ist.

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Sep 07, 2007 13:36 
Offline
DGL Member

Registriert: Fr Nov 18, 2005 00:44
Beiträge: 57
Zitat:
( Ich habe das so gelöst, dass ich die aktuelle Matrix zwischenspeicher, dann die Identiätsmatrix lade, auf dieser meine operationen durchführe, sie speichere und dann wieder die ursprüngliche zurücklade ).


Ja ne ist richtig... Also ganz kurz, ich hatte es bisher noch nie nötig irgendwie eine Matrix mit gewalt zu manipulieren, oder auszulesen. Ich denke ich werd mir dazu mal das Matriezen tut zum x.mal durch lesen, in der Hoffnung erleuchtet zu werden.
Aber du kannst mir verraten, wie du die Matrix Daten in den Shader bekommst, oder greifst du dort direkt per varying/attribute drauf zu?

PS.: das dein anderer Thread alt war/ist beweist immerhin dass ich verdampt nochmal nach einer Lösung suche :)

_________________
ist Ihnen schon mal aufgefallen, dass wenn Sie beim Wort Schlagersängerinnen die ersten 6 Buchstaben streichen, das 'e' durch ein 'f' ersetzen, die nächsten 7 Buchstaben rückwärts lesen und dann ebenfalls elemenieren und zusätzlich die beiden nebeneinanderstehenden n's durch ck ersetzen, das Wort 'ficken' ergibt?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Sep 07, 2007 14:36 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Aus dem alten Thread:
MatReno hat geschrieben:
Also für blinn / phong kann ich dir das GLSlang2 Tutorial von LaBoda empfehlen. Da ist auch ein Link zu Delphi3d, wo auch blinn und phong nochmals sehr genau mit Vektorzeichnungen beschrieben sind.

Die eigene Position wird dort soweit ich sehe mittels der Zeile von oben berechnet.
Alternativ empfehle ich auch das Tutorial_glsl von Sascha oder http://www.google.com/search?q=GLSL .

MfG


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Sep 07, 2007 16:27 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Den Eye-Vector berechnte ich noch auffer CPU und übergebe ihn dann erst an GLSL.

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Sep 07, 2007 17:42 
Offline
DGL Member

Registriert: Fr Nov 18, 2005 00:44
Beiträge: 57
So, ich habe jetzt schon fast stupiede das per pixel light von La Boda nach geschrieben

vertex:
Code:
  1.  
  2. varying vec3 normal;
  3. varying vec3 view;
  4. varying vec3 lightvec;
  5.  
  6. uniform vec3 Lightpos;
  7.  
  8. void main(void)
  9. {
  10.     normal      = normalize(gl_NormalMatrix * gl_Normal);
  11.     view        = vec3(gl_ModelViewMatrix * gl_Vertex);
  12.     lightvec    = normalize(Lightpos.xyz - view);
  13.     gl_Position = ftransform();
  14. }
  15.  


fragment:
Code:
  1.  
  2. varying vec3 normal;
  3. varying vec3 view;
  4. varying vec3 lightvec;
  5.  
  6. uniform vec3 Lightpos;
  7. uniform vec4 Lightamb;
  8. uniform vec4 Lightdiff;
  9. uniform vec4 Lightspec;
  10. uniform vec4 Sceneamb;
  11. uniform float Materialf;
  12.  
  13. void main(void)
  14. {
  15.     vec3 Eye    = normalize(-view);
  16.    
  17.     vec3 Reflected  = normalize( reflect( -lightvec, normal));
  18.  
  19.     vec4 IAmbient   = Lightamb;
  20.     vec4 IDiffuse   = Lightdiff * max(dot(normal,lightvec), 0.0);
  21.     vec4 ISpecular  = Lightspec * pow(max(dot(Reflected, Eye), 0.0), Materialf);
  22.     gl_FragColor    = Sceneamb + IAmbient + IDiffuse + ISpecular;
  23. }
  24.  


im Programm übergebe ich die Uniforms:
Code:
  1.  
  2.  
  3.   glUniform3fARB(glGetUniformLocationARB(ProgramObject, PGLCharARB('Lightpos')), MyLight.get_LightParameter(lp_pos).x
  4.                                                                                , MyLight.get_LightParameter(lp_pos).y
  5.                                                                                , MyLight.get_LightParameter(lp_pos).z);
  6.   glUniform3fARB(glGetUniformLocationARB(ProgramObject, PGLCharARB('Lightamb')), MyLight.get_LightParameter(lp_ambient).x
  7.                                                                                , MyLight.get_LightParameter(lp_ambient).y
  8.                                                                                , MyLight.get_LightParameter(lp_ambient).z);
  9.   glUniform3fARB(glGetUniformLocationARB(ProgramObject, PGLCharARB('Lightdiff')), MyLight.get_LightParameter(lp_diffuse).x
  10.                                                                                , MyLight.get_LightParameter(lp_diffuse).y
  11.                                                                                , MyLight.get_LightParameter(lp_diffuse).z);
  12.   glUniform3fARB(glGetUniformLocationARB(ProgramObject, PGLCharARB('Lightspec')), MyLight.get_LightParameter(lp_specular).x
  13.                                                                                , MyLight.get_LightParameter(lp_specular).y
  14.                                                                                , MyLight.get_LightParameter(lp_specular).z);
  15.   glUniform3fARB(glGetUniformLocationARB(ProgramObject, PGLCharARB('Sceneamb')), Scene_Ambience.x
  16.                                                                                , Scene_Ambience.y
  17.                                                                                , Scene_Ambience.z);
  18.   glUniform1fARB(glGetUniformLocationARB(ProgramObject, PGLCharARB('Materialf')), MyMaterial.get_shininess);
  19.  


sieht zwar toll aus vom Code her, wenn ich es starte sehe ich allerdings nichts. Es ist einfach alles schwarz. Das ProgrammObject schmeist allerdings auch keine Meldung heraus, also sind alle Variablen korrekt mit werten gefüllt, die auch recht vernünftig sind. Zum vergleich mal ausm Programm, wo ich de festlege:
Code:
  1.  
  2.   Scene_Ambience:= to_vec3real(0.2,0.4,0.6);
  3.  
  4.   MyCam := TCam.create;
  5.   MyCam.set_CamParameter(ca_pos,to_vec3real(0,0,-5));
  6.   MyCam.set_CamParameter(ca_rot,to_vec3real(30,45,0));
  7.  
  8.   MyLight := TLight.create;
  9.   MyLight.set_LightParameter(lp_pos,to_vec3real(2,2,2));
  10.   MyLight.set_LightParameter(lp_ambient,to_vec3real(0.2,0.3,0.4));
  11.   MyLight.set_LightParameter(lp_specular,to_vec3real(1.0,1.0,1.0));
  12.   MyLight.set_LightParameter(lp_diffuse,to_vec3real(1.0,0.9,0.4));
  13.  
  14.   MyCube := TCube.create;
  15.   MyCube.set_CubeParameter(cu_size,to_vec3real(1,1,1));
  16.   MyCube.set_CubeParameter(cu_pos,to_vec3real(0,0,0));
  17.  
  18.   MyMaterial := TMaterial.create;
  19.   MyMaterial.set_shininess(60.0);
  20.  


MyCam führt beim Rendern die transformation und rotation unmittelbar vorm zeichnen von MyCube aus. das das funktionieren sollte hab ich schon gesehen, als ich im voriegen Thread von mir enfach mal Texturen vom Shader auf den Würfel legen lassen habe.

_________________
ist Ihnen schon mal aufgefallen, dass wenn Sie beim Wort Schlagersängerinnen die ersten 6 Buchstaben streichen, das 'e' durch ein 'f' ersetzen, die nächsten 7 Buchstaben rückwärts lesen und dann ebenfalls elemenieren und zusätzlich die beiden nebeneinanderstehenden n's durch ck ersetzen, das Wort 'ficken' ergibt?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Sep 07, 2007 19:58 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Einige deiner Uniforms sind vom Typ vec4, aber du übergibst sie mit glUniform3fARB. Das kann ja nicht gut gehen ;)
PS: Das ARB kannst du dir inzwischen sparen, wenn du einen aktuellen Header hast.

MfG


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Sep 07, 2007 22:06 
Offline
DGL Member

Registriert: Fr Nov 18, 2005 00:44
Beiträge: 57
son Bockmist... darf ich das als einen "Shader-Rookie-Exception-Error" zurückgeben?

Ich änder das gleich mal

[Edit1] so habs korrigiert.. läuft aber trotzdem nicht.. hab mir auch schon den Code zum tut von La boda angeschaut und finde den fehler einfach nicht.

[Edit2] also ich sehe wieder etwas^^... allerdings überzeugt mich das was ich sehe kein bischen... pro klick dreht sich die Box um etwa 5° um Y und wenn die Front in einen bestimmten Quadranten zeigt, dann ist sie weiß, ansonsten blendet sie sich in blau (die ambientefarbe). komisch.. ich werde noch etwas tüffteln.

[Edit3] Ich habe den shader jetzt um ne Diffusemap und ne 8bit Specularmap erweitert, die sind also in rgba einer *.tga gespeichert. Das sieht soweit ganz gut aus, allerdings scheint etwas mit den Vektoren noch nicht ganz rund zu laufen, denn wenn der Würfel sich gegen den Uhrzeiger sinn dreht (Y-Achse), dann wandert das Specular im Uhrzeigersinn (auch Y-Achse) um den Würfel, obwohl die Lichtquelle ihre Position bei behält. Das Specular bleibt also nicht konstant in Richtung des Lichtes auf der Oberfläche des Würfels, sondern dreht auch seine Runden, sobald der Würfel sich dreht. !?

_________________
ist Ihnen schon mal aufgefallen, dass wenn Sie beim Wort Schlagersängerinnen die ersten 6 Buchstaben streichen, das 'e' durch ein 'f' ersetzen, die nächsten 7 Buchstaben rückwärts lesen und dann ebenfalls elemenieren und zusätzlich die beiden nebeneinanderstehenden n's durch ck ersetzen, das Wort 'ficken' ergibt?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Sep 08, 2007 14:34 
Offline
DGL Member

Registriert: Fr Nov 18, 2005 00:44
Beiträge: 57
Also ich habe jetzt mal einen anderen Weg ausprobiert Phonglight zu erstellen (ozone3d.net), als La Boda. Das Problem is das selbe, allerdings habe ich jetzt festgestellt, dass es wohl mit den Normalen zusammen hängt und nicht mit dem Cameravector. Wenn ich nämlich die Normalen Zeichnen lasse ( gl_FragColor = vec4(gl_Normal.xyz / 2.0 + 0.5,1.0); ), dann ist alles in der Szene einfarbig egal, in welche Richtung es zeigt. Die Farbe ändert sich allerdings, wenn ich den Würfel rotieren lasse.

Wenn ich das andere Phonglight benutze, dann wirkt es so, als wenn die gesamte Szene Maskiert wäre und der Würfel ein Stück einer Kugel preisgeben würde, abhängig davon, wie man ihn dreht. Steht der Würfel in Ausgangsposition, dann sieht man die Licht zugewandte Fläche der Kugel (nur einen kleinen Ausschnitt), da sich dort das Specular befindet ist der ganze Würfel weiß.Dreht man den Würfel jetzt um 180°Y, dann sieht man einen Ausschnitt der Rückseite der Kugel, also die Ambienz. Bei etwa 45°Y hat man so ziemlich den Übergang von Specular ins Diffuse.

Die Normalen hole ich mir im Vertexshader her:

Code:
  1.  
  2. varying vec3 normal
  3. normal = gl_NormalMatrix * gl_Normal;
  4.  


Hat wer ne Ahnung, warum alle meine Normalen in EINE Richtung zeigen?
Muss ich im Programm evtl. noch etwas mit den Normalen anstellen?

_________________
ist Ihnen schon mal aufgefallen, dass wenn Sie beim Wort Schlagersängerinnen die ersten 6 Buchstaben streichen, das 'e' durch ein 'f' ersetzen, die nächsten 7 Buchstaben rückwärts lesen und dann ebenfalls elemenieren und zusätzlich die beiden nebeneinanderstehenden n's durch ck ersetzen, das Wort 'ficken' ergibt?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Sep 08, 2007 17:21 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Der Zerhackte hat geschrieben:
Hat wer ne Ahnung, warum alle meine Normalen in EINE Richtung zeigen?
Muss ich im Programm evtl. noch etwas mit den Normalen anstellen?

Wie berechnest/definierst du sie denn? Gar nicht? ;)
Normalen, glNormal

MfG


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Sep 08, 2007 17:28 
Offline
DGL Member

Registriert: Fr Nov 18, 2005 00:44
Beiträge: 57
rüschdüsch! Hab ich auch gemerkt, als ich den Source von La Boda nochmal durchkämmt habe. Da vielen mir dann zwischen den glMultiTexCoords und den glVertex3f son paar glNormal3f auf... ja dumm gelaufen, ich dachte GL legt sich die Normalen automatisch zurecht. Nu hab ich die natürlich auch in meine Zeichen routine eingebaut und ne funktion geschrieben um aus 3 Punkten, oder 2 Vektoren ein Kreuzprodukt zu bilden.
Also alles in allem ist der shader jetzt schon realistischer geworden. Noch nicht ganz korrekt, aber realistischer.

_________________
ist Ihnen schon mal aufgefallen, dass wenn Sie beim Wort Schlagersängerinnen die ersten 6 Buchstaben streichen, das 'e' durch ein 'f' ersetzen, die nächsten 7 Buchstaben rückwärts lesen und dann ebenfalls elemenieren und zusätzlich die beiden nebeneinanderstehenden n's durch ck ersetzen, das Wort 'ficken' ergibt?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Sep 09, 2007 12:39 
Offline
DGL Member

Registriert: Fr Nov 18, 2005 00:44
Beiträge: 57
Nächstes Problem:

Jetzt wo die Normalen stimmen und das Licht immer noch nicht so scheint wie es soll, hab ich mich weiter auf die Suche gemacht. Da hab ich einfach mal gl_Vertex.xyz als FragColor übergeben, damit ich die Weltkoordinaten auf den Würfel Projekziert sehe. Da ist mir aufgefallen... naja also eigentlich sollten die Raumkoordinaten ja an den Raum gebunden sein und nicht an den Würfel oder? Weil wenn der Würfel rotiert, dann drehen die sich mit. Kann man das abstellen durch ne multiplikation oder so? Hab schon ein paar sachen ausprobiert aber keine gescheiten Ergebnisse bekommen.

_________________
ist Ihnen schon mal aufgefallen, dass wenn Sie beim Wort Schlagersängerinnen die ersten 6 Buchstaben streichen, das 'e' durch ein 'f' ersetzen, die nächsten 7 Buchstaben rückwärts lesen und dann ebenfalls elemenieren und zusätzlich die beiden nebeneinanderstehenden n's durch ck ersetzen, das Wort 'ficken' ergibt?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Sep 09, 2007 13:25 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Meines Wissens muss man gl_FragColor auch einen Alphakanal übergeben.
Für dein Vorhaben hast Du 3 Möglichkeiten:
1. ftransform() zuweisen, das wie die fixe Funktionspipeline rechnen würde.
2. gl_Vertex * gl_ModelViewMatrix, denn deine Rotationen, Skalierungen und Translationen stecken in der ModelViewMatrix. Deine Methode würde funktionieren, wenn du wirklich die Würfelkoordinaten (X,Y,Z) rotieren würdest.
3. direkt gl_Position an gl_FragColor übergeben ;)

MfG


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Sep 09, 2007 13:34 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
gl_ModelViewMatrix * gl_Vertex. Andersrum spuckt dir OpenGL afaik nen fehler aus, oder du hast eine sehr tolerante Karte.

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » Shader


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.011s | 16 Queries | GZIP : On ]