OGL - GLSL und GLM



  • Hallo, bin gerade dabei, mich in die Shader-Programmierung mit GLSL einzuarbeiten. Dabei bin ich nun auf die Mathe-Library GLM gestoßen, die speziell für die Verwengung mit OGL entwickelt wurde und dabei die Besonderheiten von GLSL weitgehend nachbildet. Das beginnt bei den Bezeichnern und der Syntax und endet bei einer Reihe von GLSL-Funktionen. Offenbar eine mächtige Lib.

    Was mich nun bewegt, ist folgendes: Mit GLM kann man vieles bequem im Anwendungsprogramm erledigen, was sonst vielleicht in einem Shader gemacht würde. Typisches Beispiel sind die Transformationen der Modelview-Matrix. Doch ist es sinnvoll, solche Sachen unter der CPU anstatt der GPU ablaufen zu lassen? Wie sieht es performancemäßig aus, vor allem, wenn viele Vertices den Shader durchlaufen müssen?



  • Na ja, also die einzelnen Vertices sollten schon im Shader transformiert werden. Das ist dann um ein kaum zählbar Faches schneller. Ansonsten müsstest du ja bei jedem Frame die Vertice-Daten selbst ändern und das dann auch noch für jedes zu renderndes Objekt, auch wenn du bspw. ein Mesh zweimal in der Szene hast, diese aber unterschiedlich transformiert sind.
    Mit der CPU machst du nur die Transformationen zwischen Kamera und Objekten, um bspw. einen Szenengraphen zu realisieren und die Sichtbarkeit und Kollisionen von Objekten zu testen. (Wobei man hier dann natürlich auch bis ins Vertex-Detail gehen kann, wenn man genauer als Bounding-Volumes sein will)


Anmelden zum Antworten