[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