CreateShader()
Syntax
Ergebnis = CreateShader(ShaderID, VertexProgramm$, FragmenteProgramm$)Beschreibung
Erstellt einen neuen Shader mit den angegebenen Vertex- und Fragmentprogrammen.
Parameter
ShaderID Eine Zahl zwischen 0 und 65536, um den neuen Shader zu identifizieren. Um einen der vordefinierten Shader auszuwählen, verwenden Sie einen der folgenden Werte als 'ShaderID' (VertexProgramm$ und FragmentProgramm$ Parameter werden ignoriert): #PB_Material_ColorShader #PB_Material_PerpixelShader #PB_Material_BumpShader #PB_Material_SkyShader #PB_Material_WaterShader #PB_Material_WaterShaderRTT #PB_Material_OceanShader #PB_Material_PointSpriteSphereShaderVertexProgramm$ Das für Vertexe (Scheitelpunkte) zu verwendende GLSL-Programm. FragmenteProgramm$ Das für Fragmente zu verwendende GLSL-Programm.
Rückgabewert
Ein Wert ungleich Null, wenn der Shader erfolgreich erstellt wurde, andernfalls Null.
Anmerkungen
Shader müssen normalerweise Parameter erhalten, um zu funktionieren, und zwei Funktionen ermöglichen die Übergabe dieser Parameter: MaterialShaderAutoParameter() (automatischer Parameter) und MaterialShaderParameter() (Shader-Parameter).
PureBasic ermöglicht es auch, diese Parameter direkt in den Shader-Programmen einzustellen, indem am Ende der 'uniform' Deklarationszeile folgendes hinzugefügt wird: "//" gefolgt von entweder:
- die Auto-Parameternummer mit vorangestelltem "+" (vgl. 'ParameterTyp'-Konstanten der Funktion MaterialShaderAutoParameter()).
- ein oder mehrere Werte (durch Leerzeichen getrennt), entsprechend dem Shader-Parameter (MaterialShaderParameter()).
Beispiel:
uniform vec4 camera_pos;//+76 <- automatischer Parameter #PB_Shader_CameraPosition
uniform vec4 fog_params;//+31 <- automatischer Parameter #PB_Shader_FogParams
uniform vec3 speed;//0.5 1 0 <- Shader-Parameter 'speed'
uniform sampler2D diffuseMap;//1 <- Shader-Parameter Textur-Nummer
Siehe auch
CreateShaderMaterial(), MaterialShaderAutoParameter(), MaterialShaderParameter()
Unterstützte OS
Alle