aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorraysan5 <raysan5@gmail.com>2016-05-31 18:15:53 +0200
committerraysan5 <raysan5@gmail.com>2016-05-31 18:15:53 +0200
commit302ec438dd8a5483e4fcf81d4bd80ac7d09e6a61 (patch)
tree7094081f3536d7d16804bff90f5d2a002c11ce45
parentcac2a66debd0f2d3ef8195940f8e2744d539d19a (diff)
downloadraylib-302ec438dd8a5483e4fcf81d4bd80ac7d09e6a61.tar.gz
raylib-302ec438dd8a5483e4fcf81d4bd80ac7d09e6a61.zip
Removed colTint, tint color is colDiffuse
Tint color could be applied to colDiffuse... but what's the best way? Replace it? Multiply by? A point to think about...
-rw-r--r--examples/resources/shaders/glsl330/grayscale.fs4
-rw-r--r--examples/resources/shaders/standard.fs7
-rw-r--r--examples/shaders_standard_lighting.c4
-rw-r--r--src/models.c5
-rw-r--r--src/raylib.h1
-rw-r--r--src/rlgl.c3
-rw-r--r--src/rlgl.h21
7 files changed, 19 insertions, 26 deletions
diff --git a/examples/resources/shaders/glsl330/grayscale.fs b/examples/resources/shaders/glsl330/grayscale.fs
index d4a8824f..5b3e11be 100644
--- a/examples/resources/shaders/glsl330/grayscale.fs
+++ b/examples/resources/shaders/glsl330/grayscale.fs
@@ -6,7 +6,7 @@ in vec4 fragColor;
// Input uniform values
uniform sampler2D texture0;
-uniform vec4 fragTintColor;
+uniform vec4 colDiffuse;
// Output fragment color
out vec4 finalColor;
@@ -16,7 +16,7 @@ out vec4 finalColor;
void main()
{
// Texel color fetching from texture sampler
- vec4 texelColor = texture(texture0, fragTexCoord)*fragTintColor*fragColor;
+ vec4 texelColor = texture(texture0, fragTexCoord)*colDiffuse*fragColor;
// Convert texel color to grayscale using NTSC conversion weights
float gray = dot(texelColor.rgb, vec3(0.299, 0.587, 0.114));
diff --git a/examples/resources/shaders/standard.fs b/examples/resources/shaders/standard.fs
index bb9e6865..e5916031 100644
--- a/examples/resources/shaders/standard.fs
+++ b/examples/resources/shaders/standard.fs
@@ -11,7 +11,6 @@ uniform sampler2D texture0;
uniform sampler2D texture1;
uniform sampler2D texture2;
-uniform vec4 colTint;
uniform vec4 colAmbient;
uniform vec4 colDiffuse;
uniform vec4 colSpecular;
@@ -55,7 +54,7 @@ vec3 CalcPointLight(Light l, vec3 n, vec3 v, float s)
spec = pow(dot(n, h), 3 + glossiness)*s;
}
- return (diff*l.diffuse.rgb*colDiffuse.rgb + spec*colSpecular.rgb);
+ return (diff*l.diffuse.rgb + spec*colSpecular.rgb);
}
vec3 CalcDirectionalLight(Light l, vec3 n, vec3 v, float s)
@@ -74,7 +73,7 @@ vec3 CalcDirectionalLight(Light l, vec3 n, vec3 v, float s)
}
// Combine results
- return (diff*l.intensity*l.diffuse.rgb*colDiffuse.rgb + spec*colSpecular.rgb);
+ return (diff*l.intensity*l.diffuse.rgb + spec*colSpecular.rgb);
}
vec3 CalcSpotLight(Light l, vec3 n, vec3 v, float s)
@@ -150,5 +149,5 @@ void main()
}
// Calculate final fragment color
- finalColor = vec4(texelColor.rgb*lighting*colTint.rgb, texelColor.a*colTint.a);
+ finalColor = vec4(texelColor.rgb*lighting*colDiffuse.rgb, texelColor.a*colDiffuse.a);
}
diff --git a/examples/shaders_standard_lighting.c b/examples/shaders_standard_lighting.c
index 10416f7f..ccbe74ca 100644
--- a/examples/shaders_standard_lighting.c
+++ b/examples/shaders_standard_lighting.c
@@ -40,9 +40,9 @@ int main()
material.texDiffuse = LoadTexture("resources/model/dwarf_diffuse.png"); // Load model diffuse texture
material.texNormal = LoadTexture("resources/model/dwarf_normal.png"); // Load model normal texture
material.texSpecular = LoadTexture("resources/model/dwarf_specular.png"); // Load model specular texture
- material.colDiffuse = (Color){255, 255, 255, 255};
+ material.colDiffuse = WHITE;
material.colAmbient = (Color){0, 0, 10, 255};
- material.colSpecular = (Color){255, 255, 255, 255};
+ material.colSpecular = WHITE;
material.glossiness = 50.0f;
dwarf.material = material; // Apply material to model
diff --git a/src/models.c b/src/models.c
index 8c5ed914..962a6470 100644
--- a/src/models.c
+++ b/src/models.c
@@ -779,8 +779,7 @@ Material LoadDefaultMaterial(void)
material.texDiffuse = GetDefaultTexture(); // White texture (1x1 pixel)
//material.texNormal; // NOTE: By default, not set
//material.texSpecular; // NOTE: By default, not set
-
- material.colTint = WHITE; // Tint color
+
material.colDiffuse = WHITE; // Diffuse color
material.colAmbient = WHITE; // Ambient color
material.colSpecular = WHITE; // Specular color
@@ -1298,7 +1297,7 @@ void DrawModelEx(Model model, Vector3 position, Vector3 rotationAxis, float rota
//Matrix matModel = MatrixMultiply(model.transform, matTransform); // Transform to world-space coordinates
model.transform = MatrixMultiply(MatrixMultiply(matScale, matRotation), matTranslation);
- model.material.colTint = tint;
+ model.material.colDiffuse = tint; // TODO: Multiply tint color by diffuse color?
rlglDrawMesh(model.mesh, model.material, model.transform);
}
diff --git a/src/raylib.h b/src/raylib.h
index 5bef3698..271c0e42 100644
--- a/src/raylib.h
+++ b/src/raylib.h
@@ -414,7 +414,6 @@ typedef struct Material {
Texture2D texNormal; // Normal texture (binded to shader mapTexture1Loc)
Texture2D texSpecular; // Specular texture (binded to shader mapTexture2Loc)
- Color colTint; // Tint color
Color colDiffuse; // Diffuse color
Color colAmbient; // Ambient color
Color colSpecular; // Specular color
diff --git a/src/rlgl.c b/src/rlgl.c
index 5c4c9c01..6a2adeb2 100644
--- a/src/rlgl.c
+++ b/src/rlgl.c
@@ -1800,9 +1800,6 @@ void rlglDrawMesh(Mesh mesh, Material material, Matrix transform)
// Setup shader uniforms for lights
SetShaderLights(material.shader);
- // Upload to shader material.colSpecular
- glUniform4f(glGetUniformLocation(material.shader.id, "colTint"), (float)material.colTint.r/255, (float)material.colTint.g/255, (float)material.colTint.b/255, (float)material.colTint.a/255);
-
// Upload to shader material.colAmbient
glUniform4f(glGetUniformLocation(material.shader.id, "colAmbient"), (float)material.colAmbient.r/255, (float)material.colAmbient.g/255, (float)material.colAmbient.b/255, (float)material.colAmbient.a/255);
diff --git a/src/rlgl.h b/src/rlgl.h
index ccf2b36a..336f6019 100644
--- a/src/rlgl.h
+++ b/src/rlgl.h
@@ -201,8 +201,7 @@ typedef enum { OPENGL_11 = 1, OPENGL_33, OPENGL_ES_20 } GlVersion;
Texture2D texDiffuse; // Diffuse texture
Texture2D texNormal; // Normal texture
Texture2D texSpecular; // Specular texture
-
- Color colTint; // Tint color
+
Color colDiffuse; // Diffuse color
Color colAmbient; // Ambient color
Color colSpecular; // Specular color
@@ -212,18 +211,18 @@ typedef enum { OPENGL_11 = 1, OPENGL_33, OPENGL_ES_20 } GlVersion;
// Light type
typedef struct LightData {
- int id;
- int type; // LIGHT_POINT, LIGHT_DIRECTIONAL, LIGHT_SPOT
- bool enabled;
+ unsigned int id; // Light id
+ int type; // Light type: LIGHT_POINT, LIGHT_DIRECTIONAL, LIGHT_SPOT
+ bool enabled; // Light enabled
- Vector3 position;
- Vector3 target; // Used on LIGHT_DIRECTIONAL and LIGHT_SPOT (cone direction target)
- float radius; // Lost of light intensity with distance (world distance)
+ Vector3 position; // Light position
+ Vector3 target; // Light target: LIGHT_DIRECTIONAL and LIGHT_SPOT (cone direction target)
+ float radius; // Light attenuation radius light intensity reduced with distance (world distance)
- Color diffuse; // Use Vector3 diffuse
- float intensity;
+ Color diffuse; // Light diffuse color
+ float intensity; // Light intensity level
- float coneAngle; // Spot light max angle
+ float coneAngle; // Light cone max angle: LIGHT_SPOT
} LightData, *Light;
// Color blending modes (pre-defined)