mirror of
https://github.com/raysan5/raylib.git
synced 2025-12-25 10:22:33 -05:00
Updated raylib generic uber shader and custom shaders (markdown)
@ -45,16 +45,29 @@ typedef enum {
|
||||
#define LOC_MAP_SPECULAR LOC_MAP_METALNESS
|
||||
```
|
||||
|
||||
On shader loading, the following GLSL location names are checked:
|
||||
When loading a shader, raylib tries to bind by default the following **vertex shader** attributes:
|
||||
```c
|
||||
// Default shader vertex attribute names to set location points
|
||||
#define DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Binded by default to shader location: 0
|
||||
#define DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Binded by default to shader location: 1
|
||||
#define DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Binded by default to shader location: 2
|
||||
#define DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Binded by default to shader location: 3
|
||||
#define DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Binded by default to shader location: 4
|
||||
#define DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Binded by default to shader location: 5
|
||||
```
|
||||
|
||||
And also the following uniform location names are checked:
|
||||
```glsl
|
||||
uniform mat4 mvp; // VS: ModelViewProjection matrix
|
||||
uniform mat4 projection; // VS: Projection matrix
|
||||
uniform mat4 view; // VS: View matrix
|
||||
|
||||
uniform vec4 colDiffuse; // FS: Diffuse color
|
||||
uniform sampler2D texture0; // FS: GL_TEXTURE0
|
||||
uniform sampler2D texture1; // FS: GL_TEXTURE1
|
||||
uniform sampler2D texture2; // FS: GL_TEXTURE2
|
||||
```
|
||||
Those are the attributes/uniform names used by the internal [default shader](https://github.com/raysan5/raylib/wiki/raylib-default-shader). It's recommended to use that naming convention also on custom shaders to make sure everything will be automatically setup on `LoadShader()` but some of the default attribute names could re-defined in [config.h](https://github.com/raysan5/raylib/blob/master/src/config.h) in case it was necessary.
|
||||
|
||||
Shaders are also directly related to the Material struct:
|
||||
```c
|
||||
|
||||
Reference in New Issue
Block a user