[GLSL] Optimisation des shaders

Optimisation des shaders [GLSL] - Divers - Programmation

Marsh Posté le 29-02-2012 à 21:31:02    

Bonsoir :hello:
 
Je commence à tâter un peu le GLSL pour faire mes shaders, et je compte faire un éditeur de matériaux un peu comme celui d'UT3 (pour ceux qui ne connaissent pas, on place des blocs qui contiennent des expressions, puis on les lie entre eux pour faire le shader en gros)
 
Ce que je veux faire, c'est pouvoir générer du code GLSL à partir de ces blocs.
Du coups, j'me pose une question, vaut mieux avoir un minimum de fonction et écrire 90% du code dans la fonction main, ou c'est pas gênant d'avoir 8 milliards de fonctions ?
 
Merci pour vos lumières :D


---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 29-02-2012 à 21:31:02   

Reply

Marsh Posté le 02-03-2012 à 14:22:31    

C'est pas gênant d'avoir 8 milliards de fonctions, le compilo GLSL du driver doit savoir faire de l'inlining et autres optimisations classiques.
 
Après un driver nVidia ou Amd, ça se passe pas si mal, de l'Intel sais pas trop (c'est plus le hard qui est limité), et le compilo Apple de MacOS (Apple recode les driver nVidia & Amd, avec 3% de leur force d'ingénierie) est grosso-modo une merde.
 
Donc reste sous Windows ou Linux avec du nV/Amd.

Reply

Marsh Posté le 03-03-2012 à 14:00:50    

Oki, tant pis pour apple :D
 
Merci :jap:


---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 03-03-2012 à 14:24:00    

Après c'est à toi de cacher correctement les Shaders compilés.
 
Après le truc chiant avec le GLSL, c'est comme y'a pas de bytecode normalisé, "chaque" compilo nV/Ati a ses petits aléas de tolérance vis à vis du langage, le coût de compilation/optimisation est plus important qu'un Shader D3D sous forme binaire, et question obfuscation c'est assez mort.

Reply

Marsh Posté le 03-03-2012 à 15:19:57    

Perso c'est surtout le résultat qui m'importera (niveau framerate et compagnie), et que ça puisse fonctionner sur le plus de plateforme possible :)


---------------
Perhaps you don't deserve to breathe
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed