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

Aktuelle Zeit: Mo Jul 07, 2025 19:41

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



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Farbe zuordnen
BeitragVerfasst: Do Mär 25, 2010 11:09 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Hallo,
Ich habe mich jetzt ziemlich lange mit 3D Geometrie und mit Ladedaten beschäftigt. Dabei ist mir aufgefallen, dass häufig die unterste Kategorie, nämlich bereits der Vertex eine Farbe bekommt.

Ist das sinnvoll, jedem einzelenen Vertex mit einer Farbe zu bestücken? Normalerweise haben die Models eine Textur drauf. Die Farbe kann man dann mit der Textur verrechnen, also die Textur im Farbton verändern. Aber doch eigentlich nicht für jeden Vertex extra, da reicht es doch, die Farbe für ein bestimmtes Mesh-Stück zu definieren? Würde man die Farbe für jeden Vertex extra verändern, sieht das aus wie eine Lichtorgel. 8)

Aber im Ernst, wo wird so etwas gebraucht?
Viele Grüße,
Traude


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Farbe zuordnen
BeitragVerfasst: Do Mär 25, 2010 11:24 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Prinzipiell kann es hier und da mal ganz praktisch sein Vertices einzufärben.. um z.B. mal nen farbverlauf zu machen etc :)

Allerdings frage ich mich da eher immer, wenn es zum Thema VBO kommt wie sinnvoll es da ist.
glColor() gibt es ja nichtmehr bei OpenGL 3.0, sprich ich bin gezwungen ein VBO mit Farben anzulegen.. bei einem sehr high-poly mesh kann das aber durchaus ne ganze menge an daten sein, die eigentlich aber ja total überflüssig sind.

Gibt es da nen trick oder Ähnliches um zu vermeiden das man unnötig speicher mit Farb-VBOs vollhaut?

Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Farbe zuordnen
BeitragVerfasst: Do Mär 25, 2010 11:37 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Ich bin noch gar nicht auf OpenGL3, ich habe also noch glColor. Aber wenn ich es nicht benutzen könnte, gibt es ja noch die Möglichkeit eine Color dem VertexShader zu übergeben per Uniform oder so.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Farbe zuordnen
BeitragVerfasst: Do Mär 25, 2010 12:04 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Ich denke glColor stammt noch aus der Urzeit von OpenGL und wurde halt miutgeschleift. Wirklich sinnvoll ist per-Vertex-Colorierung schon lange nicht mehr, genausowenig wie bis zu 32 Texturkoordinaten oder die Vertexbeleuchtung.

Allerdings muss man in Shaderzeiten glColor oder glMultiTexCoord ja nicht mehr unbedingt für das nutzen wofür es gedacht ist, da man ja selber interpretieren kann und die Werte interpoliert werden. So kann man dann z.B. mittels glColor für jeden Eckpunkt nen Parameter übergeben den man im Shader nutzt. Ich selbst nutze z.b. glMultiTexCoord um eine TBN-Matrix an einen Shader für Parallaxoffsetmapping zu übergeben.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Farbe zuordnen
BeitragVerfasst: Do Mär 25, 2010 13:14 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Aber selbst das scheint nicht mehr notwendig zu sein, wenn man sich das hier ansieht: http://www.gamedev.net/community/forums/topic.asp?topic_id=448107


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Farbe zuordnen
BeitragVerfasst: Do Mär 25, 2010 13:18 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Ab OpenGL3 machen 100% aller aktuellen 3D Modelformate keinen sinn mehr, da sie furchtbar ineffizient sind und viel zu starr sind.
Es macht nun viel mehr Sinn einzelne Streams zu speichern, diesen jeweils einen Namen zu geben und im Shader diese dann an den richtigen stellen zu binden.
Hierzu kann man echt kreativ sein, Scripte, Configfiles, Programmcode,... .
Wie schon Sascha sagte sind glColor, glTexcoord und ähnliches einfach nur noch Leichen in der API, welche mit der Einführung von GLSL überwiegend als einfaches Binding vergewaltigt haben.
Mit OpenGL3.x ist es ja nun endlich raus und man muss sich diese Gedanken eigentlich garnicht mehr machen ;)

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Farbe zuordnen
BeitragVerfasst: Do Mär 25, 2010 13:42 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Der Beitrag, den ich oben zitiert habe, ist aus dem Jahr 2007. (!)

Diese Dinge stehen - ich habe im Wiki nachgeschaut - schon bereits sein OpenGL 2.0 zur Verfügung. Ich kann das auch in Betrieb nehmen, obwohl ich keine taufrische Grafikkarte habe.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Farbe zuordnen
BeitragVerfasst: Do Mär 25, 2010 13:59 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Überwiegend sogar schon OpenGL1.6 mit der Entsprechenden GLSL ARB Funktionsliste.
Mein RadonFramework verlangt zum zeichnen eines Meshes ein MeshProcessor, welcher entweder Hardcoded ist oder ein Shader ist, so konnte ich ein OpenGL3 fähige API schreiben die aber noch mit mehr Aufwand zu OpenGL<2 Kompatibel ist.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Farbe zuordnen
BeitragVerfasst: Do Mär 25, 2010 14:07 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Ein State-Of-The-Art OpenGL-Renderer wäre vielleicht keine schlechte Idee fürs Wiki. Denn der, den ich da vor kurzem reingeschrieben habe, ist offenbar ein alter Hut. :roll:

Wer weiß, ob es nicht noch etwas Neueres gibt?

@Tak: ich bin völlig unempfindlich für Werbung für Frameworks und Model Formate. :wink:


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 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.008s | 14 Queries | GZIP : On ]