aus verschiedenen Gründen ist das bei mir aber sehr unpraktisch zu machen. Daher kam ich auf die Idee: Kann ich das ganze evtl im PixelShader irgendwie rekonstruieren? Eventuell aus gl_FragCoord?
Oder brauche ich dafür dann auch im PixelShader wieder uniforms mit informationen über die viewport höhe und breite etc?
gl_FragCoord enthält Fensterkoordinaten. Du kommst also um ein Uniform für die Viewportgröße nicht herum. Des weiteren brauchst du natürlich die inverse Projektionsmatrix, wobei es hier ein eingebautes Uniform gibt.
Zitat:
aus verschiedenen Gründen ist das bei mir aber sehr unpraktisch zu machen.
Was versuchst du den zu machen? Warum ist ein einfaches varying unpraktisch? Der einzige Grund der mir einfällt wäre das du bereits zu viele andere varyings hast?
das ganze hat sich prinzipiell schon wieder erledigt, habe es nun doch über einen Varying gemacht
Der Grund warum es umständlich war, ist das ich die selben Shader/Funktionen für Forward und Deferred Shading nutze und ich dieses Varying im Deferred Modus eben einfach nicht brauche.. aber ich hab eine elegante lösung für meine Shader-ScriptSprache gefunden wie ich das Varying aus dem Forward Shader nachträglich hinzufügen kann
GLSL unterstützt Macros wie C. Du kannst dir also leicht eine Zeile "#define USE_VERTEX_POSITION 1" vor deinen Shader hängen (glShaderSource bekommt aus diesem Grund eine Liste von Strings!) und im Shader mit #if, #else usw. entsprechend handeln.
GLSL unterstützt Macros wie C. Du kannst dir also leicht eine Zeile "#define USE_VERTEX_POSITION 1" vor deinen Shader hängen (glShaderSource bekommt aus diesem Grund eine Liste von Strings!) und im Shader mit #if, #else usw. entsprechend handeln.
Ich weiss, sowas finde ich aber sehr unuebersichtlich, deshalb hatte ich bei mir einen anderen weg gewaehlt mit der eigenen Pseudo-ScriptSprache welche sich schoen in den GLSL Code integriert und eben von meiner Engine rausgefiltert wird.
Mitglieder in diesem Forum: 0 Mitglieder und 6 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.