ShaderMaterial
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.