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

Aktuelle Zeit: Mi Mai 15, 2024 22:05

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 22 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
BeitragVerfasst: Mo Nov 11, 2013 14:17 
Offline
DGL Member

Registriert: Do Dez 29, 2011 19:40
Beiträge: 421
Wohnort: Deutschland, Bayern
Programmiersprache: C++, C, D, C# VB.Net
Zitat:
Sind Texture Pools möglich?

Ja, als Texturatlas oder Texturearray.

Zitat:
dann (ich weiß nicht wie) alle Texturen binden und dann mit einem einzigen Draw Call alles zeichnen?

Nein, momentan nicht mit dem OpenGL Core. Mit der von mir erwähnten Nvidea Extension ginge das, aber das ist ja keine allgemein gültige Lösung, wenn du überhaupt selber eine passende GraKa besitzt.

Zitat:
dann mit einem einzigen Draw Call alles zeichnen?

Dafür macht man eben Arrays und Atlase. Arrays sind eigentlich besser, weil es keine Problem mit MipMaps oder Kachelung geben kann. Jedoch funktioneren Arrays nur, wenn alle Texturen die gleiche Größe haben.

Zitat:
Ich wüsste nur nicht, wie man mehrere Texturen auf einmal binden kann.

Man kann mehrere Texturen binden. Allerdings nur eine sehr begrenzte Zahl und der große Switch im Fragmentshader sollte ziemlich viel kosten.

Zitat:
ist so etwas nicht möglich und man müsste alles in eine Texture mappen?

Wenn du nur OpenGL Core verwenden willst, ist das definitiv bis Dato (OpenGL 4.4) nicht möglich.

Zitat:
Da müsstest du dir dann einen komplexen Shader zusammenbasteln

Naja, viel Aufwand wäre es nicht. Man definiert halt mehrere Samplerobjekte und macht ein "if" oder "switch" in den Shader zum Auswählen.

Zitat:
auf vielen Grakas kann man bisher nur maximal 4 Textures gleichzeitig binden

Damit bist du nicht auf den neusten Stand. Ich habe gerade nachgeschaut, die OpenGL 3.2 und 4.4 Spezifikation ("GL_MAX_TEXTURE_IMAGE_UNITS") schreiben jeweils bereits mindestens 16 Textureunits im Fragmentshader vor. Meine mindestens 5 Jahre alte Nividea Karte Geforce G210 unterstützt bereits 32 Textureunits im Fragmentshader.
Die Hardwaredatenbank sagt aus, dass praktisch jede Grafikkarte 16 Units unterstützt.

Ich bin mir im Moment nicht mehr sicher ob du überhaupt schon Shader verwendest?
Wenn nicht, solltest du dich mal mit aktuellen Shadern auseinander setzen. Wenn es um Performance geht, kommt man da heute nicht mehr darum rum, weil die Fixed Pipeline veraltet, einfach viel zu eingeschränkend ist und im Prinzip von Treiber mit Shadern emuliert wird.
Es gibt ja ein gutes Tutorial im Wiki, das allerdings nicht mehr ganz auf dem Stand der Dinge ist. Deshalb würde ich noch dieses Tutorial empfehlen: http://www.lighthouse3d.com/tutorials/glsl-core-tutorial/


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Nov 11, 2013 16:34 
Offline
DGL Member

Registriert: Di Dez 13, 2011 19:14
Beiträge: 166
Wohnort: Hamburg / Mölln
Programmiersprache: D
Ja momentan nutze ich noch keine Shadern. Ich poliere gerade meine veralteten Kenntnisse auf und gewöhne mich an OpenGL 3 (war vorher wegen Uni ein reiner 1er und 2er Versions Nutzer). Mein nächstes Ziel wären dann auch Shader.

Danke für den Link. :)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Nov 11, 2013 16:35 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 588
Programmiersprache: C++
OpenglerF hat geschrieben:
Zitat:
auf vielen Grakas kann man bisher nur maximal 4 Textures gleichzeitig binden
Damit bist du nicht auf den neusten Stand. Ich habe gerade nachgeschaut, die OpenGL 3.2 und 4.4 Spezifikation ("GL_MAX_TEXTURE_IMAGE_UNITS") schreiben jeweils bereits mindestens 16 Textureunits im Fragmentshader vor.
Meines Wissens ist es üblich oder zumindest erlaubt, dass in der Fixed-Function-Pipeline weniger Texturschichten zur Verfügung stehen als per Shader.

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Nov 12, 2013 09:55 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Nov 30, 2011 21:41
Beiträge: 136
Wohnort: Bad Vilbel
Programmiersprache: Delphi 7
@OpenGLerF: Ich hab mich da auf folgendes bezogen: http://delphigl.de/glcapsviewer/statist ... TURE_UNITS
Ich weis auch grad nicht was genau der Unterschied der beiden ist :/ ?


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Nov 12, 2013 13:46 
Offline
DGL Member

Registriert: Do Dez 29, 2011 19:40
Beiträge: 421
Wohnort: Deutschland, Bayern
Programmiersprache: C++, C, D, C# VB.Net
Der Unterschied, ist das, was glAwesome schon angemerkt hat.
Die Fixed Function Pipeline unterstützt wesentlich weniger Units als die Shader.
Die Angabe für Fixed Function Pipeline Units ist aber veraltet und hier nicht von Interesse, weil sich die Sache nicht in ihr umsetzen ließe.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Nov 12, 2013 19:22 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Nov 30, 2011 21:41
Beiträge: 136
Wohnort: Bad Vilbel
Programmiersprache: Delphi 7
Ups, hab den Post von glAwesome vorhin irgendwie nicht richtig gelesen, aber Danke an euch beide ;)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Nov 13, 2013 16:24 
Offline
DGL Member
Benutzeravatar

Registriert: So Sep 26, 2010 12:54
Beiträge: 238
Wohnort: wieder in Berlin
Programmiersprache: Englisch
Instancing *hust*


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 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.029s | 17 Queries | GZIP : On ]