From 704a416baab290e57bf6038efd214b7318b19eb7 Mon Sep 17 00:00:00 2001 From: Tony Wasserka Date: Sat, 29 Jun 2013 01:03:59 +0200 Subject: [PATCH] softgpu: Implement powered diffuse lighting. --- GPU/Software/Lighting.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/GPU/Software/Lighting.cpp b/GPU/Software/Lighting.cpp index 5a7a8441bb..dfe4dbfa0e 100644 --- a/GPU/Software/Lighting.cpp +++ b/GPU/Software/Lighting.cpp @@ -83,6 +83,10 @@ void Process(VertexData& vertex) : vertex.color0.rgb(); float diffuse_factor = Dot(L,vertex.normal) / d / vertex.worldpos.Length(); + if (gstate.isUsingPoweredDiffuseLight(light)) { + float k = getFloat24(gstate.materialspecularcoef&0xFFFFFF); + diffuse_factor = pow(diffuse_factor, k); + } vertex.color0.r() += att * spot * ldc.r() * mdc.r() * diffuse_factor / 255; vertex.color0.g() += att * spot * ldc.g() * mdc.g() * diffuse_factor / 255;