« ShaderMaterial » : différence entre les versions

De OSWiki
Aller à la navigation Aller à la recherche
(Page créée avec « ===Exemple=== ===Sharders Vertex et Shaders fragment=== ===Attributs intégrés et uniformes=== ===Attributs personnalisés et uniformes=== ===Constructeur=== ===Propriét... »)
 
Aucun résumé des modifications
 
Ligne 1 : Ligne 1 :
[[Matériau]] rendu avec des shaders personnalisés. Un shader est un petit programme écrit en [[Définitions#GLSL|GLSL]] qui s'exécute sur le [[Définitions#GPU|GPU]]. Vous pouvez utiliser un shader personnalisé si nécessaire pour :
* mettre en œuvre un effet qui n'est inclus dans aucun des [[Materials|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 [[Définitions#Vertex shaders|vertexShader]] et [[Définitions#Fragment Shader|fragmentShader]], doit être compilé et exécuté sur le GPU en utilisant [[Définitions#WebGL|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|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===
===Exemple===
===Sharders Vertex et Shaders fragment===
===Sharders Vertex et Shaders fragment===

Version actuelle datée du 19 février 2018 à 14:31

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