Combine material coefficients and textures in Phong Shading I'm trying to implement a simple Phong shader that supports non-physically-based materials and textures. Even though the material has a texture for each light component I still want the respective material coefficient to have some effect. My doubt is how to handle both of them. Should I mix, multiply or sum them?
Right now I've multiplied them:

ambient  = material.ambient_color  * light.ambient  * texture_ambient;
diffuse  = material.diffuse_color  * light.diffuse  * diffuse_strength  * texture_diffuse;
specular = material.specular_color * light.specular * specular_strength * texture_specular;


It seems kinda dark, is this the correct way to combine material coefficients and textures?
When applying various types of attenuation you are just multiplying by some number smaller than 1.  This is akin to every atom of your material having some probability of absorbing the light that hits it.

Something to note is that these calculations should be performed ( in the context of gamma correction and colour spaces ) in a linear space.

If you don't perform the calculations in linear space you might end up with overly bright, overly dark, overly saturated or under saturated colours.