CreateShaderMaterial()

Syntaxe

Resultat = CreateShaderMaterial(#Matiere, ShaderID)
Description
Crée une nouvelle matière basée sur le shader.

Arguments

#Matiere La nouvelle matière.

#PB_Any peut être utilisé pour générer automatiquement ce numéro.
ShaderID L'identifiant du shader.
CreateShader() peut être utilisée pour créer un nouveau shader.
ShaderID doit contenir soit
- l'ID d'un shader préalablement créé avec CreateShader()
- l'ID d'un shader prédéfini :
  #PB_Material_ColorShader
  #PB_Material_PerpixelShader
  #PB_Material_BumpShader
  #PB_Material_SkyShader
  #PB_Material_WaterShader
  #PB_Material_WaterShaderRTT
  #PB_Material_OceanShader
  #PB_Material_PointSpriteSphereShader
  #PB_MaterialShader_CubicEnvShader
  #PB_MaterialShader_CubicEnvBumpShader
Description des shaders prédéfinis:
  ___________________________________________________________________________________________
  #PB_Material_ColorShader
  
  Effet : Couleur uniforme en 'perpixel'.
  
  texture : Aucune
  
  MaterialShaderParameter : Aucun
  
 Prise en compte de :
  - SetMaterialColor(#Matiere, #PB_Material_AmbientColor|#PB_Material_DiffuseColor, Couleur)
  - MaterialShininess(#Matiere, Brillance , CouleurSpeculaire)
  - Couleur Ambiante
  - Brouillard
  - ScaleMaterial / ScrollMaterial / RotateMaterial
  
  ___________________________________________________________________________________________
  #PB_Material_PerpixelShader
  
  Effet : Matière en 'perpixel'
  
  texture :
  - 0: Couleur sampler2D
  
  MaterialShaderParameter : Aucun
  
 Prise en compte de :
  - SetMaterialColor(#Matiere, #PB_Material_AmbientColor|#PB_Material_DiffuseColor, Couleur)
  - MaterialShininess(#Matiere, Brillance , CouleurSpeculaire)
  - Atténuation de la lumière
  - Couleur Ambiante
  - Brouillard
  - ScaleMaterial / ScrollMaterial / RotateMaterial
  
  ___________________________________________________________________________________________
  #PB_Material_BumpShader
  
  Effet : Matière avec relief
  
  textures :
  - 0: Couleur sampler2D
  - 1: Sampler2D normal
  
  MaterialShaderParameter :
  #PB_Shader_Fragment
  - float bumpy - valeur par défaut: 1 (amplitude du relief)
  
 Prise en compte de :
  - SetMaterialColor(#Matiere, #PB_Material_AmbientColor|#PB_Material_DiffuseColor, Couleur)
  - MaterialShininess(#Matiere, Brillance , CouleurSpeculaire)
  - Atténuation de la lumière
  - Couleur Ambiante
  - Brouillard
  - ScaleMaterial / ScrollMaterial / RotateMaterial
  
  Remarque:
  - Les tangentes doivent être définies (utiliser 'BuildMeshTangent')
  ___________________________________________________________________________________________
  #PB_Material_SkyShader
  
  Effet : Affiche un ciel avec des nuages etun soleil
  
  texture :
  - 0: Couleur uniforme sampler2D (nuages)
  
  MaterialShaderParameter :
  #PB_Shader_Fragment
  - vec3 speed   - Valeur par défaut : 10 0 0 (vitesse des nuages (X Z))
  - float height - Valeur par défaut : 200 (hauteur de la 1ère couche nuageuse)
  - int layer    - Valeur par défaut : 2 (nombre de couches nuageuses supplémentaires)
  - float scale  - Valeur par défaut : 4000 (échelle de texture)
  
 Prise en compte de :
  - SetMaterialColor(#Matiere, #PB_Material_AmbientColor, Couleur) : Couleur du ciel ensoleillé au zénith
  - SetMaterialColor(#Matiere, #PB_Material_DiffuseColor, Couleur) : Couleur du ciel ensoleillé à l'horizon
  - Brouillard
  
  ___________________________________________________________________________________________
  #PB_Material_WaterShader
  
  Effet : Permet d'afficher une surface d'eau
  
  texture :
  - 0: Sampler2D normal
  
  MaterialShaderParameter :
  #PB_Shader_Fragment
  - float scale - Valeur par défaut : 0.1 (échelle de texture)
  - float height - Valeur par défaut : 1 (hauteur des vagues)
  
 Prise en compte de :
  - SetMaterialColor(#Matiere, #PB_Material_DiffuseColor, Couleur)  : Couleur de l'eau (Alpha : opacité)
  - SetMaterialColor(#Matiere, #PB_Material_SpecularColor, color) : Couleur de réflexion du ciel
  - Brouillard
  
  ___________________________________________________________________________________________
  #PB_Material_WaterShaderRTT
  
  Effet : Permet d'afficher une surface d'eau avec réflexion (via RTT)
  
  textures :
  - 0 : Sampler2D normal
  - 1 : Sampler2D RTT (rendu sur texture)
  
  MaterialShaderParameter : Aucun
  
 Prise en compte de :
  - SetMaterialColor(#Matiere, #PB_Material_DiffuseColor, Couleur) : Couleur de l'eau (Alpha : opacité)
  - Brouillard
  - ScaleMaterial / ScrollMaterial / RotateMaterial
  
  ___________________________________________________________________________________________
  #PB_Material_OceanShader
  
  Effet : Permet d'afficher une surface d'eau avec des vagues
  textures :
  - 0: Sampler2D normal
  - 1: Couleur sampler2D (écume)
  
  MaterialShaderParameter :
  #PB_Shader_Vertex
  - float wavebig - Valeur par défaut : 0.5 (amplitude des vagues)
  - float swell - Valeur par défaut : 0.5 (amplitude de la houle)
  #PB_Shader_Fragment
  - float wavelittle - Valeur par défaut : 0.5 (amplitude des "petites" vagues)
  - float foam - Valeur par défaut : 0.5 (écume)
  
 Prise en compte de :
  - SetMaterialColor(#Matiere, #PB_Material_AmbientColor, Couleur) : Couleur de l'eau
  - SetMaterialColor(#Matiere, #PB_Material_DiffuseColor, Couleur) : Couleur du reflet du ciel
  - Brouillard
  
  Remarque:
  - La valeur alpha de la texture 'normale' contient la hauteur de la vague
  
  ___________________________________________________________________________________________
  #PB_Material_PointSpriteSphereShader
  
  Effet : Affiche les sphères aux sommets du maillage (mesh)
  
  texture(s) : Aucune
  
  MaterialShaderParameter : Aucun
  
 Prise en compte de :
  - SetMaterialColor(#Matiere, #PB_Material_AmbientColor|#PB_Material_DiffuseColor, Couleur)
  - MaterialShininess(#Matiere, Brillance , CouleurSpeculaire)
  - AmbientColor
  - Brouillard
  
  Remarques :
  - La matière doit être de type PointSprite : SetMaterialAttribute(0,#PB_Material_PointSprite,1)
  - Le maillage (mesh) doit être de type PointList : CreateMesh(#Mesh,#PB_Mesh_PointList)
  - Le rayon de la sphère est défini par la coordonnée U de la texture
  - La couleur de la sphère est définie par la couleur du sommet (vertex)
  Exemple: MeshVertex(posX, posY, posZ, 10, 0,RGB(255,0,0))
  
  _______________________________________________________________________________________
  #PB_MaterialShader_CubicEnv
  
  Effet : Réflexion via une texture cubique
  
  textures :
  - 0: SamplerCube cubemap
  - 1: Couleur uniforme sampler2D
  
  MaterialShaderParameter :
  #PB_Shader_Fragment
  - float glossy - Valeur par défaut  : 0.5 (intensité du reflet)
  
 Prise en compte de :
  - SetMaterialColor(#Matiere, #PB_Material_AmbientColor|#PB_Material_DiffuseColor, Couleur)
  - Couleur Ambiante
  - Brouillard
  - ScaleMaterial / ScrollMaterial / RotateMaterial
  
  Remarque :
  - Les textures cubiques doivent être "clampées": SetMaterialAttribute(#texture, #PB_Material_TAM, #PB_Material_ClampTAM)
  
  ___________________________________________________________________________________________
  #PB_MaterialShader_CubicEnvBump
  
  Effet : Réflexion avec texture cubique en relief
  
  textures :
  - 0: samplerCube cubemap
  - 1: Couleur sampler2D
  - 2: Sampler2D normal
  
  MaterialShaderParameter :
  #PB_Shader_Fragment
  - float glossy - Valeur par défaut  : 0.5 (intensité du reflet)
  - float bumpy  - Valeur par défaut  : 1 (amplitude du reflet)
  
 Prise en compte de :
  - SetMaterialColor(#Matiere, #PB_Material_AmbientColor|#PB_Material_DiffuseColor, Couleur)
  - MaterialShininess(#Material, Shininess, SpecularColor)
  - Couleur Ambiante
  - Brouillard
  - ScaleMaterial / ScrollMaterial / RotateMaterial
  
  Remarques :
  - Les textures cubiques doivent être "clampées" : SetMaterialAttribute(#texture, #PB_Material_TAM, #PB_Material_ClampTAM)
  - Les tangentes doivent être définies (utiliser 'BuildMeshTangent')

Valeur de retour

Renvoie une valeur non nulle si la matière basée sur le shader a été créé avec succès, zéro sinon.

Si #PB_Any a été utilisé pour le paramètre #Matiere, le nombre généré est renvoyé en cas de succès.

OS Supportés

Tous

<- CreateShader() - Material Index - DisableMaterialLighting() ->