playcanvas/engine — pull request #92 by guycalledfrank (2014-11-26 23:58:04+00:00)
Title: Graphics fixes 2

Glossiness is changed once again to be more linear. Glossiness-related bugs are fixed.
Returned back normalMap normalization even with bumpiness = 1.0.
Possible now to select UV channel for AO map with material.aoUvSet (0 or 1). Defaults to 0 now.
Possibility to control color modulation per-map: modulateAmbient, modulateDiffuse, modulateSpecular, modulateEmission.
Gamma correction is now applied for colors so we don't get weird results like "ambient is too bright" etc. Affects material

ambient, diffuse, specular and emissive, scene ambient and fog, light colors.
Fixed default toneMapping to be linear (was set to None);
New conserveEnergy parameter can be used to disable energy conservation when mixing diffuse and specular. This is not

physically correct, but can be useful if, for example, you don't have an environment map, but want to just add specular

highlights without making unaffected areas darker.
Fixed sphereMap conflict with cubeMap on shader compilation.

Migration:
Shininess should be converted to new values using this formula:
Math.max(0.0, Math.min(1.0, (Math.log2(shininess) / 11.0))) * 100
The same formula should be applied to FBX shininess values.

UI:
- specularAA should be moved to Normals section and only be visible when normal map is used.
- AO map UV set selector should be added to AO section.
- Why do we have a separate AO section anyway? Shouldn't it be inside Ambient section?
- modulateAmbient checkbox should be in Ambient section.
- modulateDiffuse in diffuse.
- modulateSpecular in specular.
- modulateEmission in emission.
- conserveEnergy checkbox should be added to Specular section.