Pfuscher
I don't know why _p textures are used for terrain parallax mods, never said anything about them. Here is the set of textures from one of terrain shaders:
Code: Select all
// MultiTextureDiffuse0Sampler s0 1
// MultiTextureDiffuse1Sampler s1 1
// MultiTextureDiffuse2Sampler s2 1
// MultiTextureDiffuse3Sampler s3 1
// MultiTextureDiffuse4Sampler s4 1
// MultiTextureDiffuse5Sampler s5 1
// MultiTextureNormal0Sampler s7 1
// MultiTextureNormal1Sampler s8 1
// MultiTextureNormal2Sampler s9 1
// MultiTextureNormal3Sampler s10 1
// MultiTextureNormal4Sampler s11 1
// MultiTextureNormal5Sampler s12 1
// MultiTextureDiffuseLODSampler s14 1
// LODNoiseSampler s15 1
MultiTextureDiffuse*** and MultiTextureNormal*** textures ignore alpha channel and i use MultiTextureDiffuse*** alpha for computing parallax. There is no height maps and no available samplers to insert them physically (s13 is used for several of enbseries effects). Game cannot modify dxt compressed textures, because it's very slow procedure, so color textures from terrain are passed to the shader as they are, with or without alpha channel. MultiTextureDiffuseLODSampler and LODNoiseSampler textures do not have parallax, but both or one of them (don't remember) use alpha channel, may be they are modified as diffuse, that's why fail?
What i see on the first two screenshots of yours on previous page, that's not looks like terrain. It's probably overlay above terrain which require _p texture and modified mesh to make parallax work.
The last image and
With the alpha map in the diffuse the terrain parallax uses(not using the _p.dds) the floor looks pretty weird as 0-155 is too much height difference i just see invalid height data in alpha channel, not designed accordingly to the game standart of _p files. All i can do is to check such places, if game provide valid data for displacement amount or was that my mistake and scaling is too high (but i used the same as for game vanilla parallax shaders).
Rechecked all shaders, no mistake regarding alpha, all of them ignore alpha channel of diffuse map, code looks like this:
Code: Select all
texld r0, v0, s1
mul r0.xyz, r0, v5.y
texld r1, v0, s0
mad r0.xyz, v5.x, r1, r0
texld r1, v0, s2
mad r0.xyz, v5.z, r1, r0
texld r1, v0, s3
mad r0.xyz, v5.w, r1, r0
texld r1, v0, s4
mad r0.xyz, v6.x, r1, r0
texld r1, v0, s5
mad r0.xyz, v6.y, r1, r0
Will look deeper in shaders with buggy parallax places.