On 12/09/2007, Stefan Dösinger stefandoesinger@gmx.at wrote:
...so what the patch *actually* does in a completely obfuscated way, is getting rid of the assumption that the normal is normalized.
IOW, - shader_addline(buffer, "tmp0.xyz = reflect(-tmp1.xyz, tmp0.xyz);\n"); + shader_addline(buffer, "tmp0.xyz = reflect(-tmp1.xyz, normalize(tmp0.xyz));\n"); would be just as effective.
That also means that the change in the ARB implementation - /* Calculate reflection vector (Assume normal is normalized): RF = 2*(N.E)*N -E */ + /* Calculate reflection vector (Assume normal is normalized): + * See comment in the glsl implementation. is misleading at best.