Quoted By:
I've been making some small changes to a basic shader and I have some questions for people who do modelling of pmx and accessories.
MMD divides the 'specular color' of an accessory by 10. This might be intentional or a bug, but it means to get visible specular reflections, you have to use a specular color of maybe 4~7. (You may also have to turn on shadows for the accessory if it's large or flat since non-self-shadow uses 'Gouraud shading' that interpolates the specular output between vertices instead of 'Phong shading' that calculates it in the pixel shader.)
So, question 1: do the programs you use to edit .x accessories allow you to input a specular color above 1? If most don't, then shaders should be multiplying specular color by 10.
Second question is practically the same, but for different reasons. Typical materials reflect more light at grazing angles; you can easily see this with a glass window. If materials have two specular values, "specular power" and "specular color", it seems to make sense for "specular color" to be the light reflected when looking straight at the surface, since basically any smooth surface should reflect 100% of light at a grazing angle. (A complication is model textures being tuned as though there is more incoming light, which requires stronger specular reflections for the same relative effect.)
The problem is that 'specular color' is the peak brightness of the specular highlight, and for a point light source on a shiny surface this value should approach infinity. If it's limited to 1, we can't give a material the properties of a metallic surface like silver or alumin[i:lit]um, and the smoother a surface is (lower specular power) the darker it has to be (total amount of light reflected when specular color is 1).
So, second question: do the modeling programs you use for pmx models also restrict "specular color" to 1? Or do they restrict it to 1, but this value is already supposed to mean "percent of light reflected"?