Objekte offscreen rendern
-
Guten Abend,
mir stelle sich gerade die Frage, ob die Shader bei einem Render-Call aufgerufen werden, wenn das zu zeichnende Objekt offscreen ist. Wenn ich jetzt z.B. ein sehr detailiertes Mesh habe, ist es da sinnvoll im Vertex-, oder Tessellation-Shader darauf zu prüfen ob das zu zeichnende Dreieck offscreen ist oder macht das die GPU von alleine?
-
Hektor der Vektor schrieb:
Guten Abend,
mir stelle sich gerade die Frage, ob die Shader bei einem Render-Call aufgerufen werden, wenn das zu zeichnende Objekt offscreen ist. Wenn ich jetzt z.B. ein sehr detailiertes Mesh habe, ist es da sinnvoll im Vertex-, oder Tessellation-Shader darauf zu prüfen ob das zu zeichnende Dreieck offscreen ist oder macht das die GPU von alleine?
Du kannst im Vertex shader die Vertex Koordinaten ändern==> die GPU kann keine Vorhersagen darüber machen ob das Objekt Onscreen ist oder nicht ==> Der Vertex Shader wird immer ausgeführt.
AFAIK: Erst der Rasterizer prüft ob dein Mesh Onscreen ist und der Pixelshader wird dann gegebenfalls nicht oder eben doch ausgeführt, alle anderen Shader werden glaubich immer ausgeführtfloorball
-
floorball schrieb:
... alle anderen Shader werden glaubich immer ausgeführt
da jeder shader bis zum pixel shader die position ausgibt, kann jeder natuerlich beeinflussen, ob etwas zu sehen ist oder nicht, entsprechend ist deine annahme korrekt
-
Man muss aber noch hinzufuegen, dass die meisten Engines eingebautes Culling verwenden, also nicht sichtbare Objekte gar nicht erst rendern.
-
Marthog schrieb:
Man muss aber noch hinzufuegen...
Wirklich? Nach einem Monat einen Thread ausgraben um zwingend eine zur Frage kaum relevante Antwort abzugeben?