Tesseract-Engine/assets/shaders/UnlitMaterial.frag
OusmBlueNinja a558ea092b Added Sub meshing Asseet Loader : Broak Play Pause Button
When you resume the Asset cache returns an invalid Mesh
The Asset Cache needs to be updated
2024-12-31 02:40:23 -06:00

50 lines
1.5 KiB
GLSL

#version 330 core
struct TextureArray {
sampler2D texture_diffuse[32]; // Array of diffuse textures
// You can add more texture types here (e.g., specular, normal) if needed
};
uniform TextureArray uTextures; // Array of textures
uniform int uNumDiffuseTextures; // Number of active diffuse textures
in vec2 TexCoord; // From vertex shader
in vec3 Normal; // From vertex shader
in vec3 FragPos; // From vertex shader
out vec4 FragColor; // Final fragment color
// Example lighting parameters
uniform vec3 lightPos; // Position of the light source
uniform vec3 viewPos; // Position of the camera/viewer
void main()
{
// Normalize the normal vector
vec3 norm = normalize(Normal);
// Calculate the direction from the fragment to the light
vec3 lightDir = normalize(lightPos - FragPos);
// Compute the diffuse intensity
float diff = max(dot(norm, lightDir), 0.0);
// Initialize diffuse color
vec4 diffuseColor = vec4(0.0);
// Sample and accumulate diffuse textures
for(int i = 0; i < uNumDiffuseTextures; ++i)
{
diffuseColor += texture(uTextures.texture_diffuse[i], TexCoord);
}
// Apply the diffuse intensity
diffuseColor *= diff;
// Simple ambient lighting
vec3 ambient = 0.1 * diffuseColor.rgb;
// Final color combining ambient and diffuse components
FragColor = vec4(ambient + diffuseColor.rgb, diffuseColor.a);
}