ShaderMaterial

De OSWiki
Révision datée du 19 février 2018 à 14:31 par Acryline (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Matériau rendu avec des shaders personnalisés. Un shader est un petit programme écrit en GLSL qui s'exécute sur le GPU. Vous pouvez utiliser un shader personnalisé si nécessaire pour :

  • mettre en œuvre un effet qui n'est inclus dans aucun des matériaux intégrés,
  • combiner de nombreux objets en une seule Geometry ou en une seule BufferGeometry afin d'améliorer les performances.

Il faut tenir compte des remarques suivantes lorsque vous utilisez un ShaderMaterial:

  • un ShaderMaterial ne sera rendu correctement que par WebGLRenderer, puisque le code GLSL, dans les propriétés vertexShader et fragmentShader, doit être compilé et exécuté sur le GPU en utilisant WebGL.
  • À partir de THREE r72, l'attribution directe d'attributs dans un ShaderMaterial n'est plus prise en charge. Une instance BufferGeometry (au lieu d'une instance Geometry) doit être utilisée à la place, en utilisant les instances BufferAttribute pour définir des attributs personnalisés.
  • Depuis TROIS r77, les instances WebGLRenderTarget ou WebGLRenderTargetCube ne sont plus censées être utilisées comme uniformes. Leur texture doit être utilisée à la place.
  • Les attributs et les uniformes intégrés sont transmis aux shaders avec votre code. Si vous ne voulez pas que le programme WebGLProgram ajoute quoi que ce soit à votre code shader, vous pouvez utiliser RawShaderMaterial à la place de cette classe.

Exemple

Sharders Vertex et Shaders fragment

Attributs intégrés et uniformes

Attributs personnalisés et uniformes

Constructeur

Propriétés

Méthodes