PrismaticFlower / shaderpatch

Improved shaders (and fun stuff for modders) for Star Wars Battlefront II (2005) - Incompatible with Classic Collection
MIT License
39 stars 2 forks source link

Built in null heightmap seems to have the wrong value #83

Closed DoctorAnsem closed 5 years ago

DoctorAnsem commented 5 years ago

Noticed when I was seeing the terrain ingame now, that the parallax occlusion made the null-heightmap textures 'slide' underneath each other. This isn't a massive issue thankfully, I've tangled with this before and resolved it with a little bit of texture work. SP's parallax occlusion simply has a different neutral point than what a lot of applications generate - SP sets the neutral point to be completely white (1.0 in brightness), in other words, it can only push pixels inward. This can be quite confusing, as it was to me at first, because some sophisticated texture tools generate height maps with a neutral point of 0.5 and treat it as such. This should probably have a note in the wiki too to avoid further confusion.

PrismaticFlower commented 5 years ago

~I've updated $null_heightmap to have a value of 1.0 in the next release. I agree with your reasoning that it makes sense to have it at the point that indicates no displacement.~

EDIT: Scratch that, just remembered (I'm quite tired tonight sorry, bear with me) I chose 0.5 so that $null_heightmaps would have semi-reasonable blending interaction with textures that did have height maps. I'll have to think on this some more, as I'm also not sure that setting it to 1.0 would solve the sliding texture issue since they may just be a consequence of the way the blending and POM interact with each other. I may have to do some testing, in the meantime you can always create you're own 1x1 white texture to use as a height map or pass $null_aomap which is also white.

I have also put a note about POM displacing downwards from 1.0 in the POM section of the normal_ext documentation.