3D-Grafik OpenGL: Vierte Komponente bei glMaterial

Marco13

Top Contributor
Hallo

Ich bastle gerade mal wieder an Swogl weiter, um mehr Einfluß auf die Darstellung zu erlauben. Das umfaßt neben Shader-Support und Lichtern auch eine Material-Klasse, mit der die Materialeigenschaften festgelegt werden können. Dabei habe ich mich i.a. an OpenGL angelehnt. Nun kann man bei [c]glMaterial[/c] Materialien mit 4 Farbkomponenten übergeben. Die letzte Komponente ist ja "eigentlich" der Alpha-Wert, aber ... anscheinend hat die keinen Einfluß (Ich habe da sonst immer 1.0 übergeben :oops:). Jetzt geht es um die Frage, ob man diese Koordinate überhaupt braucht - speziell wenn man schon eine Textur angibt, die evtl. Alpha-Anteile enthält...?!

(Hoffentlich braucht man sie nicht - weil WENN man sie braucht, will ich mir gar nicht ausmalen, wie man die im Shader mit Textur und Licht zu verrechnen hat, so, dass das Ergebnis wie die Fixed Function Pipeline aussieht... Schon der Versuch, mit dem Shader die "Light"-Klasse so zu verarbeiten, dass sie wie die FF-Pipeline aussieht, war ein K(r)ampf... Aber wenigstens kann man jetzt ein paar fancy Beleuchtungseffekte erreichen ( Teaser :D ))
 

Marco13

Top Contributor
Wie angedeutet versuche ich, einen "Standard-Shader" zu erstellen, der möglichst genau die Fixed Function Pipeline nachbaut. Diese Basisfunktionalitäten sind ja vorhanden, wenn man die FFP als Rendering-Backend hat, und sie bei der "besseren" Shader-Version dann erstmal auch vorhanden sein sollten. Und die Fixed Function scheint diese Werte einfach nicht zu verwenden. Aber ich werde sie wohl einbauen: Der Standard-Shader kann sie dann genauso ignorieren wie die FFP, aber wenn jemand einen eigenen Shader für Swogl bauen will, kann er die Werte verwenden, wenn er will.
 
G

Guest2

Gast
Moin,

das ist zwar bei mir schon einige Jahre her, aber imho wurde der Alpha-Wert schon berücksichtigt, sobald das Blending aktiviert wurde. Bei DGL gibt es auch z.B. eine Materialsammlung bei der einige Materialien mit Alpha gelistet werden. Im Shader must Du den Wert vermutlich auch nur durchreichen, da das Blending erst nach dem Fragment-Shader stattfindet.

Wenn zusätzlich eine Textur verwendet wird, dürften die Werte von glTexEnv maßgeblich sein. Die Verrechnung der bereits vorhandenen Farbwerte eines Fragments (z.B. glMaterial / glColor) und der Texturfarben muss dann allerdings im Shader stattfinden. Auf DGL sind die entsprechenden Formeln gelistet.

Viele Grüße,
Fancy
 

Marco13

Top Contributor
Hmja, ich denke, wenn ich die Option anbiete, bin ich auf der sicheren Seite. Es von Color3f nachträglich auf Color4f ändern wäre schwierig.
 

Marco13

Top Contributor
Hmja, dass es an sich für den Alpha-Wert steht war mir schon bewußt. Aber wenn man eben NICHT glColorMaterial verwendet, sondern eine Textur, ist die Bedeutung nicht mehr ad hoc klar. Ich muss wohl mal einen Test machen, mit einer teiltransparenten Textur, und schauen, wie sich das mit verschiedenen Alpha-Werten bei "diffuse" in der FFP verhält.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
KeexZDeveoper 3D-Grafik OpenGL Allgemeine Java-Themen 1
G 2D-Grafik OpenGL Transparente Guis Allgemeine Java-Themen 0
B Frage zu Java und OpenGL? Allgemeine Java-Themen 3
N OpenGL tutorial Allgemeine Java-Themen 4
R Java2D vs OpenGL Allgemeine Java-Themen 8
A Komponente zur Visualisierung von Beziehungen Allgemeine Java-Themen 2
X Komponente an Methode übergeben Allgemeine Java-Themen 1
F Swing selektierte Komponente ermitteln Allgemeine Java-Themen 4
S JAR Komponente nicht erkannt Allgemeine Java-Themen 6
D von einer Klasse auf Komponente in anderer Klasse zugreifen Allgemeine Java-Themen 5
G Input/Output Manuelle Änderung von Wert in Swing Komponente bemerken! Allgemeine Java-Themen 2
R Komponente hat nicht die gesetzten Eingeschaften (Text, Farbe) Allgemeine Java-Themen 3
I Swing Welche Swing Komponente soll ich nehmen? Allgemeine Java-Themen 2
M Name der Swing Komponente Allgemeine Java-Themen 3
B Text-Editor Komponente Allgemeine Java-Themen 2
R Installer Komponente von izpack in Java? Allgemeine Java-Themen 2
MQue Image über Komponente Allgemeine Java-Themen 3
N Suche HTML WYSIWYG Editor als Komponente Allgemeine Java-Themen 2
U Komponente aus grösserem Projet benutzen Allgemeine Java-Themen 4
M Warum wird diese Komponente nicht angezeigt? Allgemeine Java-Themen 8
S Abfragen der Komponente bei actionperformed Allgemeine Java-Themen 2
K eigene GUI Komponente wird nicht angezeigt Allgemeine Java-Themen 3
thE_29 Komponente beliebig in einer JTextArea platzieren Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben