jjwalker
I have been testing it this morning with 186.xx and it seems to be working well. I want to make sure this is holding up with the most stable driver series before I start messing with the others. I am also going to download some developer version of the TBB library and hopefully I can figure out what pointers the ETW EXE is using so i can compile some binaries myself. The download above is a precompiled binary.
I also need to find the shader code wherever it is buried in ETW. I am an HLSL programmer and can make any neccessary changes that need to be made, assuming the issue lies in the shader code itself. The EXE will contain the core engine components which i will not be able to change at all.
Harrr! I hath found the shader files. They be located in main.pack.
The seem to be raw HLSL which is great, which means I am free to do any modification neccessary. WOOT! The code structure is confusing as there doesn't seem to be a main header file with pointers *facepalm*. I am going to have to go through and just find where everything is manually. Shame on CA, who the heck doesn't include a main or common.h header?
Here is something VERY interesting. So going through ETW shaders I can already tell you how they work.
Essentially, ETW is Shader model 2. No wonder it runs like **** under SM3.0 with the newer drivers. Memory allocation issues aside, the only difference between the SM 2.0 model used by ETW and the SM3.0 option is a fake BRDF algorithm.
You what makes it all worse?! The SM3.0 shaders wheren't even DEVELOPED by CA. They are 3dsmax and Maya shader code with a creative commons license!!!
WTF?
So our issues with nvidia cards (can't speak for ATI, I don't own an ATI card) are going to be found in a mere 3 files worth of source code more than likely. CA used some strange hybrid SM2.0 and SM3.0 garbage, and didn't even code thier own SM3.0 shaders to boot.
In layman terms, CA used an old shader model to point to a newer shader model, and compiles them concurrently and expects them to play nice with each other. What nonsense. I have to go get ready for work and leave and I'll pick back up on this tonight. I can't even begin to describe what I am looking atright now. It's like someone stitched up frankenstein code.
EDIT2: Okay, last edit before work. I know what the issue is basically. With the new nvidia drivers, the alpha maps are being incorrectly calculated, thus the disappearing buildings and trees. I think anyway. The reason SM2.0 works is because alpha blending of shadows is turned off. I do believe ships being visible still with the new drivers is because the shadows have no alpha blending on the water, but I'll have to do more research into this. There is a lot of code to go through. Tonight I am going to try and disable alpha blending of shadows in SM3.0 and see if that temporarily solves the SM3.0 issues under the latest nvidia driver set, and if that works, at least we can play the game with SM3.0 under the latest driver set until i can figure out how to fix alpha blending.