Nur wen man eine Textur-Matrix hat, oder bei eine 2D-Grafik ist es verlockend eine 3x3Matrix zu verwenden.
Nur kann man für 4x4 SSE-Befehle der CPU verwenden, welche einen enormen Geschwindigkeitszuwachs haben. Das selbe gilt für 4-fach Vektoren. Auch habe ich schon festgestellt, das in GLSL vieles 4-fach läuft. ZB. bei UBO wird alles auf 4 aufgerundet. Es wird vieles als 128Bit gehandhabt.
Bringt es überhaupt noch eine Vorteil, wen man 3x3 anstelle von 4x4 verwendet ? Die meisten CPUs unterstützen heute SSE.
Registriert: Mi Aug 14, 2013 21:17 Beiträge: 588
Programmiersprache: C++
Ob SSE überhaupt verwendet wird, hängt von der verwendeten Matrix-Bibliothek und dem Compiler ab. Sicher ist, dass eine mat3 nur drei Uniform-Register belegt, während eine mat4 vier Register benötigt (1 Register == 1 vec4). Manchmal muss man Register sparen. Und in GLSL ist eine Transformation mit mat3 Matrix auf üblicher Hardware mindestens so schnell wie eine mat4-Trafo. Ich würde wetten, dass sie sogar schneller ist.
_________________ So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)
Das ich so frage, kommt daher, das ich mich momentan mit SSE/AVX beschäftige. Und da werden 4x Vektoren benötigt. Bei späteren Version sind auch 8x/16x möglich.
Mitglieder in diesem Forum: 0 Mitglieder und 70 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.