2014-04-16 1 views
1

J'ai actuellement deux programmes, un programme pour les lignes pleines et les remplissages avec un vertex-shader-for-solides et un fragment-shader-for-solides et un second programme pour les textures avec un vertex-shader-for-textures et un fragment-shader-for-textures. J'échange les deux programmes en utilisant glUseProgram en fonction de ce que je dessine. Est-ce une bonne solution? Ou devrais-je glAttachShader/glDetachShader à partir d'un seul programme?OpenGL ES 2.0 - Programmes ou shaders multiples

Répondre

2

Certainement, vous utilisez la bonne solution. La liaison d'un programme différent doit être faible. Vous ne voulez évidemment pas le faire plus que nécessaire, comme n'importe quel changement d'état. Par exemple, si vous le pouvez, restituez tout ce qui utilise un programme en premier, puis liez l'autre programme et restituez toutes les primitives qui l'utilisent, ce qui serait préférable à la liaison plus fréquente d'un shader différent. Attacher un shader différent à un programme signifie que vous devrez le relier, ce qui est beaucoup plus cher que de simplement lier un programme différent.