tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
403
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Cromon Cromon ist offline Mitglied Brillant
    Registriert seit
    Apr 2008
    Beiträge
    819
    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
     

  2. #2
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.800
    Blog-Einträge
    5
    Zitat Zitat von Cromon Beitrag anzeigen
    Gibt es in OpenGL die Möglichkeit bei Vertices, die ich über glDrawElements zeichne für jeden Vertex eine Farbkomponente mitzugeben?
    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

  3. #3
    Cromon Cromon ist offline Mitglied Brillant
    Registriert seit
    Apr 2008
    Beiträge
    819
    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
    Cromon
    Geändert von Cromon (29.09.09 um 17:27 Uhr)
     

  4. #4
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.800
    Blog-Einträge
    5
    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

  1. dx9 vertex
    Von 3Cyb3r im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 25.09.08, 22:28
  2. Antworten: 0
    Letzter Beitrag: 04.06.08, 15:13
  3. Problem mit OpenGL Vertex Buffer
    Von Rhax im Forum .NET Grafik und Sound
    Antworten: 1
    Letzter Beitrag: 23.10.07, 23:46
  4. Vertex vereinigen?
    Von Vatar im Forum 3D Studio Max
    Antworten: 1
    Letzter Beitrag: 05.03.06, 16:22
  5. vertex anzeigen
    Von hanfhope im Forum 3D Studio Max
    Antworten: 5
    Letzter Beitrag: 06.02.04, 17:23