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...
This commit is contained in:
parent
cac2a66deb
commit
302ec438dd
7 changed files with 19 additions and 26 deletions
|
@ -6,7 +6,7 @@ in vec4 fragColor;
|
||||||
|
|
||||||
// Input uniform values
|
// Input uniform values
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
uniform vec4 fragTintColor;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
// Output fragment color
|
// Output fragment color
|
||||||
out vec4 finalColor;
|
out vec4 finalColor;
|
||||||
|
@ -16,7 +16,7 @@ out vec4 finalColor;
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
// Texel color fetching from texture sampler
|
// 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
|
// Convert texel color to grayscale using NTSC conversion weights
|
||||||
float gray = dot(texelColor.rgb, vec3(0.299, 0.587, 0.114));
|
float gray = dot(texelColor.rgb, vec3(0.299, 0.587, 0.114));
|
||||||
|
|
|
@ -11,7 +11,6 @@ uniform sampler2D texture0;
|
||||||
uniform sampler2D texture1;
|
uniform sampler2D texture1;
|
||||||
uniform sampler2D texture2;
|
uniform sampler2D texture2;
|
||||||
|
|
||||||
uniform vec4 colTint;
|
|
||||||
uniform vec4 colAmbient;
|
uniform vec4 colAmbient;
|
||||||
uniform vec4 colDiffuse;
|
uniform vec4 colDiffuse;
|
||||||
uniform vec4 colSpecular;
|
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;
|
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)
|
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
|
// 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)
|
vec3 CalcSpotLight(Light l, vec3 n, vec3 v, float s)
|
||||||
|
@ -150,5 +149,5 @@ void main()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calculate final fragment color
|
// 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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,9 +40,9 @@ int main()
|
||||||
material.texDiffuse = LoadTexture("resources/model/dwarf_diffuse.png"); // Load model diffuse texture
|
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.texNormal = LoadTexture("resources/model/dwarf_normal.png"); // Load model normal texture
|
||||||
material.texSpecular = LoadTexture("resources/model/dwarf_specular.png"); // Load model specular 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.colAmbient = (Color){0, 0, 10, 255};
|
||||||
material.colSpecular = (Color){255, 255, 255, 255};
|
material.colSpecular = WHITE;
|
||||||
material.glossiness = 50.0f;
|
material.glossiness = 50.0f;
|
||||||
|
|
||||||
dwarf.material = material; // Apply material to model
|
dwarf.material = material; // Apply material to model
|
||||||
|
|
|
@ -779,8 +779,7 @@ Material LoadDefaultMaterial(void)
|
||||||
material.texDiffuse = GetDefaultTexture(); // White texture (1x1 pixel)
|
material.texDiffuse = GetDefaultTexture(); // White texture (1x1 pixel)
|
||||||
//material.texNormal; // NOTE: By default, not set
|
//material.texNormal; // NOTE: By default, not set
|
||||||
//material.texSpecular; // NOTE: By default, not set
|
//material.texSpecular; // NOTE: By default, not set
|
||||||
|
|
||||||
material.colTint = WHITE; // Tint color
|
|
||||||
material.colDiffuse = WHITE; // Diffuse color
|
material.colDiffuse = WHITE; // Diffuse color
|
||||||
material.colAmbient = WHITE; // Ambient color
|
material.colAmbient = WHITE; // Ambient color
|
||||||
material.colSpecular = WHITE; // Specular 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
|
//Matrix matModel = MatrixMultiply(model.transform, matTransform); // Transform to world-space coordinates
|
||||||
|
|
||||||
model.transform = MatrixMultiply(MatrixMultiply(matScale, matRotation), matTranslation);
|
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);
|
rlglDrawMesh(model.mesh, model.material, model.transform);
|
||||||
}
|
}
|
||||||
|
|
|
@ -414,7 +414,6 @@ typedef struct Material {
|
||||||
Texture2D texNormal; // Normal texture (binded to shader mapTexture1Loc)
|
Texture2D texNormal; // Normal texture (binded to shader mapTexture1Loc)
|
||||||
Texture2D texSpecular; // Specular texture (binded to shader mapTexture2Loc)
|
Texture2D texSpecular; // Specular texture (binded to shader mapTexture2Loc)
|
||||||
|
|
||||||
Color colTint; // Tint color
|
|
||||||
Color colDiffuse; // Diffuse color
|
Color colDiffuse; // Diffuse color
|
||||||
Color colAmbient; // Ambient color
|
Color colAmbient; // Ambient color
|
||||||
Color colSpecular; // Specular color
|
Color colSpecular; // Specular color
|
||||||
|
|
|
@ -1800,9 +1800,6 @@ void rlglDrawMesh(Mesh mesh, Material material, Matrix transform)
|
||||||
// Setup shader uniforms for lights
|
// Setup shader uniforms for lights
|
||||||
SetShaderLights(material.shader);
|
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
|
// 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);
|
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);
|
||||||
|
|
||||||
|
|
21
src/rlgl.h
21
src/rlgl.h
|
@ -201,8 +201,7 @@ typedef enum { OPENGL_11 = 1, OPENGL_33, OPENGL_ES_20 } GlVersion;
|
||||||
Texture2D texDiffuse; // Diffuse texture
|
Texture2D texDiffuse; // Diffuse texture
|
||||||
Texture2D texNormal; // Normal texture
|
Texture2D texNormal; // Normal texture
|
||||||
Texture2D texSpecular; // Specular texture
|
Texture2D texSpecular; // Specular texture
|
||||||
|
|
||||||
Color colTint; // Tint color
|
|
||||||
Color colDiffuse; // Diffuse color
|
Color colDiffuse; // Diffuse color
|
||||||
Color colAmbient; // Ambient color
|
Color colAmbient; // Ambient color
|
||||||
Color colSpecular; // Specular color
|
Color colSpecular; // Specular color
|
||||||
|
@ -212,18 +211,18 @@ typedef enum { OPENGL_11 = 1, OPENGL_33, OPENGL_ES_20 } GlVersion;
|
||||||
|
|
||||||
// Light type
|
// Light type
|
||||||
typedef struct LightData {
|
typedef struct LightData {
|
||||||
int id;
|
unsigned int id; // Light id
|
||||||
int type; // LIGHT_POINT, LIGHT_DIRECTIONAL, LIGHT_SPOT
|
int type; // Light type: LIGHT_POINT, LIGHT_DIRECTIONAL, LIGHT_SPOT
|
||||||
bool enabled;
|
bool enabled; // Light enabled
|
||||||
|
|
||||||
Vector3 position;
|
Vector3 position; // Light position
|
||||||
Vector3 target; // Used on LIGHT_DIRECTIONAL and LIGHT_SPOT (cone direction target)
|
Vector3 target; // Light target: LIGHT_DIRECTIONAL and LIGHT_SPOT (cone direction target)
|
||||||
float radius; // Lost of light intensity with distance (world distance)
|
float radius; // Light attenuation radius light intensity reduced with distance (world distance)
|
||||||
|
|
||||||
Color diffuse; // Use Vector3 diffuse
|
Color diffuse; // Light diffuse color
|
||||||
float intensity;
|
float intensity; // Light intensity level
|
||||||
|
|
||||||
float coneAngle; // Spot light max angle
|
float coneAngle; // Light cone max angle: LIGHT_SPOT
|
||||||
} LightData, *Light;
|
} LightData, *Light;
|
||||||
|
|
||||||
// Color blending modes (pre-defined)
|
// Color blending modes (pre-defined)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue