DGL
https://delphigl.com/forum/

PPL2 Shader - Texturenproblem
https://delphigl.com/forum/viewtopic.php?f=20&t=9995
Seite 1 von 1

Autor:  end [ So Jul 24, 2011 08:17 ]
Betreff des Beitrags:  PPL2 Shader - Texturenproblem

Hallo,

könnte man beim Shader das Problem mit der Textur nicht einfach umgehen, indem man ein Boolean mitübergibt, der angibt obs texturiert ist oder nicht. Wenn ja führt man die beiden Zeilen aus, wenn Nein, dann macht mans ohne Texturen. Wär doch einfacher.

Autor:  Coolcat [ So Jul 24, 2011 10:05 ]
Betreff des Beitrags:  Re: PPL2 Shader - Texturenproblem

Zitat:
könnte man beim Shader das Problem mit der Textur nicht einfach umgehen

Welches Problem? Ist PPL2 irgendwas spezielles oder meinst du einfach Shadermodell 2?

Zitat:
indem man ein Boolean mitübergibt, der angibt obs texturiert ist oder nicht.

Das geht, die Frage ist ob es sinnvoll ist. Diese if-Abfrage muss für jedes Fragment ausgeführt werden! Normalerweise optimiert man Shader immer genau für eine spezielle Aufgabe. Wenn sich Shader extrem ähneln lagert man die gemeinsamen Teile in eine eigene Datei und included diese quasi. Makros (#define, #ifdef, ...) sind auch eine hilfreiche Sache, damit würde der Switch bereits vom Shader-Compiler durchgeführt. Nennt man Shader-Permutations. Zu Uniform-Switches greift man nur dann, wenn Grafikspeicher oder Shader-Switches zu Problem werden. Für kleine Testanwendungen oder ähnliches ist so ein Textur-Switch natürlich kein Problem. Aber vermeide den eierlegenden Wohlmilchsau-Shader...

Zitat:
Wär doch einfacher.

Es hat niemand behauptet das Shader einfach sind. Es geht darum die optimale Performance aus der Hardware zu bekommen um eben solch vermeidbare Switches zu umgehen.

Übrigens, wenn keine Textur gebunden ist (also einfach "0") müsstest du beim Zugriff einfach schwarze Farbe bekommen.

Autor:  end [ So Jul 24, 2011 14:23 ]
Betreff des Beitrags:  Re: PPL2 Shader - Texturenproblem

*Kopf gegen den Tisch schlag* hab nicht dran gedacht... naja trotzdem danke.

Autor:  Ireyon [ Mi Jul 27, 2011 21:47 ]
Betreff des Beitrags:  Re: PPL2 Shader - Texturenproblem

Coolcat: Wird bei einer nicht gebundenen Textur nicht *weiße* Farbe zurückgegeben (zumindest bei texture2D(), die ganzen texelFetch*-Dinger werfen tatsächlich nur Nullen)? Dann braucht man nämlich nicht einmal eine If-Abfrage. Problem ist natürlich, dass der texture2D-Call nach wie vor unsinnig ist, aber ggf weniger Overkill als dafür extra nen neuen Shader zu laden und dann zu wechseln. Wenn man nur wenige untexturierte Objekte lädt, lohnt sich das mE ziemlich wenig.

Autor:  Coolcat [ Do Jul 28, 2011 07:29 ]
Betreff des Beitrags:  Re: PPL2 Shader - Texturenproblem

Zitat:
Coolcat: Wird bei einer nicht gebundenen Textur nicht *weiße* Farbe zurückgegeben (zumindest bei texture2D(),

Jetzt wo du es sagst...sicher bin ich mir nicht => versuch macht kluch.

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/