[Bug 8848] SWAT4 Areas that should be in shadow and people are rendered solid black
wine-bugs at winehq.org
wine-bugs at winehq.org
Sun Aug 31 05:44:07 CDT 2014
https://bugs.winehq.org/show_bug.cgi?id=8848
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |focht at gmx.net
--- Comment #23 from Anastasius Focht <focht at gmx.net> ---
Hello folks,
Henri's analysis is spot on :)
The original pixel shader source, extracted from 'shaders.spk' for reference:
--- snip ---
// dynamic preproc
// [0] EMISSIVE_TEXTURE, emissive present in texture
// [1] EMISSIVE_CONSTANT, emissive comes from constant color (c5)
// [2] EMISSIVE_MASK, emissive mask present
// c0 = ambient color = rgb, emissive scale = a
// c1 = 0.5*(1+agratio) = rgb, 0.5*(1-agratio) = a
// c2 = constant emissive color (if needed)
def c6,1,0,0,0 // bumpmap decompression const
#if EMISSIVE_TEXTURE
#define EMISSIVE_REG t2
#elif EMISSIVE_CONSTANT
#define EMISSIVE_REG c2
#endif
tex t0 // diffuse map
tex t1 // normal map
#if EMISSIVE_TEXTURE
tex t2 // emissive map
#endif
#if EMISSIVE_MASK
tex t3 // emissive mask
#endif
#include "DecompressNormalMap.psi"
// calculate 0.5 + 0.5 cos(a) (hemispherical surface attenuation) * ambient
color
dp3 r0, t1_bx2, v0_bx2
mad r0, r0, c1.a, c1
mul r0.rgb, r0, c0
#if (EMISSIVE_TEXTURE || EMISSIVE_CONSTANT) && EMISSIVE_MASK
+mul r1.a, t3.a, c0.a // emissive mask * scale in r1.a
#elif (EMISSIVE_TEXTURE || EMISSIVE_CONSTANT)
+mov r1.a, c0.a // emissive scale in r1.a
#endif
mul_x2 r0.rgb, r0, t0 // multiply by diffuse texture
+mov r0.a, t0.a // output diffuse alpha
// add in emissive component * emissive scale in r1.a
#if (EMISSIVE_TEXTURE || EMISSIVE_CONSTANT)
mad r0.rgb, EMISSIVE_REG, r1.a, r0
#endif
--- snip ---
Repack the pixel shader with 'mul r0.rgb, r0, c0' line commented out to see the
effect.
$ wine --version
wine-1.7.25-51-g60de497
Regards
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
More information about the wine-bugs
mailing list