J'ai deux questions sur l'efficacité de glsl.quel étage de shader est plus effiace pour la transformation de la matrice
Dans le pipeline de nuanceur entièrement défini par l'utilisateur
vs -> tcs -> TES -> gs -> fs
les 4 premières étapes peuvent être utilisées pour l'opération comme ceci:
gl_Position = MPV_matrices * vec4(in_pos, 1);
Quelle étape est plus efficace pour cela? Est-ce matériel ou version dépendante?
De nombreux tutoriels sur l'utilisation GLSL montrent des exemples qui passent une position de sommet entre les shaders au lieu d'utiliser seule variable
gl_Position
en construction.Cela a-t-il un sens en termes d'efficacité?
Merci!
Votre raisonnement est complètement, vous ne pouvez pas écrire, ni lire 'gl_Position' dans shader fragment stage, 'gl_Position' est utilisé par les étapes de la fonction fixe (assemblage primitif, écrêtage, sélection et rastérisation) qui se passe * avant * (et ** peut-être ** conduit à) fragment shader e xecution. En ce qui concerne "l'efficacité" sur les GPU modernes, d'un point de vue * matériel * il n'y a pas de différence inhérente entre par exemple. faire des choses dans un sommet vs un fragment de shader en dehors de la considération évidente de faire des choses par sommet vs les faire par fragment. –