Hi Leute!
Mir ist letzte Nacht wieder einer dieser Blitzeinfälle gekommen: TriangleCulling im GeometryShader.
Die (mir bekannte) Pipeline sieht an der für mich wichtigen Stellt so aus:
- VertexShader
- GeometryShader
- Rasterizer
Im Prinzip würde jedes Dreieck, das ich nicht vorher als komplett unsichtbar ausschließen konnte (ViewFrustum-Culling), da es zur Hälfte auf der ClippingEbene liegt, erst einmal durch den VertexShader transformiert werden.
Danach geht es normalerweise zum Rasterizer und wird dort, ob sichtbar oder nicht, erstmal gerastert, auch wenn sie garnicht sichtbar sind.
Jetzt stellen sich diese Fragen:
Werden Dreiecke, die komplett geclippt werden, überhaupt erst einmal gerastert?
Könnte man diesen hoch performierten Schritt optimieren, in dem man alle unsichtbaren Dreiecke ausschließt?
Würde das soviel Performance gut machen?
Kann ein GeometryShader eigentlich auch Geometrie entfernen, bzw. weglassen?