ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
403
403
EMPFEHLEN
-
Hallo zusammen!
Mein Projekt wächst und wächst. Mittlerweile habe ich in meinen Modelldateien schon so viel implementieren können, dass ich richtig stolz bin!
Nun habe ich jedoch etwas gesehen, was mir viel Arbeit erleichtern würde. In einem Video sieht man, dass die Vertices bei gleicher Textur ihre Farben ändern können, also dass der Rotton stark ansteigt, usw. Das spart viele unnötige Texturen.
Bisschen Forschen hat ergeben, dass es sich dabei angeblich
um Vertexshading handelt. Ok, klingt nett, sagt mir aber nichts. Ich hab einfach Vertices und für jeden Vertex einen unsigned int mit Farbe und Alpha. Google hat was von der Shading Language erzählt, aber das würde bedeuten, dass ich ja dann immer bei neuen Shadern ein komplett neues "Programm" schreiben muss.
Gibt es in OpenGL die Möglichkeit bei Vertices, die ich über glDrawElements zeichne für jeden Vertex eine Farbkomponente mitzugeben?
Gruss
Cromon
-
Ja. Beispiel:
Code c:1 2 3 4 5 6 7
glEnableClientState(GL_COLOR_ARRAY); glEnableClientState(GL_VERTEX_ARRAY); glColorPointer(4, GL_UNSIGNED_INT, 0, colors); glVertexPointer(3, GL_FLOAT, 0, positions); glDrawElements(GL_TRIANGLES, num_elements, GL_UNSIGNED_INT, indices);
Grüße, Matthias„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”
Aktuelles Coding Quiz: #17 - Wörter kreuz und quer
-
Hallo Matthias!
Danke für den Hinweis, ich habe vor lauter Shader vergessen nach dem zu suchen, worum es mir ja eigentlich geht, nämlich die Farben
.
Das funktioniert soweit ganz gut, allerdings fehlt mir da in der Darstellung noch eine Komponente. Ich möchte nämlich mit den Werten auch verstärken können. Also gedacht ist es so (hab ich mir von WoW abgeguckt):
0x7F -> 1.0
0x00 -> 0.0
0xFF -> 2.0
also wenn ich für einen Vertex die folgende Information habe:
0x7FFF007F
bedeutet das folgendes:
1. Endalphawert soll so bleiben, wie er ist.
2. Endrotwert (nach Blend mit allen Texturen) soll * 2 gerechnet werden (und natürlich % 255)
3. Endgrünwert soll * 0 gerechnet werden
4. Endblauwert soll so bleiben wie er ist
Gibt es auch eine Möglichkeit das umzusetzen? Denn ich habe glColor3f(1.0, 1.0, 1.0) standardmässig drin, sonst ist alles viel zu dunkel und noch heller geht ja leider kaum.
Gruss
CromonGeändert von Cromon (29.09.09 um 17:27 Uhr)
-
Hallo,
du könntest die Szene zuerst mit allen Texturen rendern und in einem zweiten Pass ein multiplikatives Blending mit den Farbwerten durchführen (glBlendFunc(GL_DST_COLOR, GL_ZERO);).
Grüße, Matthias„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”
Aktuelles Coding Quiz: #17 - Wörter kreuz und quer
Ähnliche Themen
-
dx9 vertex
Von 3Cyb3r im Forum C/C++Antworten: 2Letzter Beitrag: 25.09.08, 22:28 -
Unterstützung für OpenGL Entwicklung mit Java via Netbeans und OpenGL Pack
Von Thomas Darimont im Forum JavaAntworten: 0Letzter Beitrag: 04.06.08, 15:13 -
Problem mit OpenGL Vertex Buffer
Von Rhax im Forum .NET Grafik und SoundAntworten: 1Letzter Beitrag: 23.10.07, 23:46 -
Vertex vereinigen?
Von Vatar im Forum 3D Studio MaxAntworten: 1Letzter Beitrag: 05.03.06, 16:22 -
vertex anzeigen
Von hanfhope im Forum 3D Studio MaxAntworten: 5Letzter Beitrag: 06.02.04, 17:23





Zitieren

Login






