Distant land, shaders, MWSE combined...pretty close to the same things, some things are different which is the reason for their being a different project sure, but those are the main things with MGE and GEM... as far as grass goes I can't say which is why I said I would have to talk to peachykeen.
In fact...
What’s the difference between MGE and Voodoo/Gem?
MGE was designed as a Morrowind-specific shader system, and has been developed over the course of several years by a number of developers (myself included). While an excellent and innovative project, the code has suffered over time, as most does.
Gem is intended as a faster, more stable and cleaner re-imagining of the MGE concept.
Without MGE, I wouldn’t be involved in this and Voodoo would not exist. It certainly deserves a tip of the hat. :foodndrink:
Voodoo/Gem is faster than MGE. It will be more configurable, and turning a feature off will actually mean it gets turned off and has no FPS hit (something not guaranteed in recent MGE builds).
Gem provides a powerful shader system, taking advantage of the full syntax of the Cg language. MGE uses a subset of the HLSL language (there is no practical difference between Cg and HLSL, except that HLSL is DirectX-specific). Gem does not make use of archaic magic names, like MGE’s “texture thisframe;” and similar; instead it uses proper annotations to allow shaders to reference textures as needed. This allows shaders to access not only Gem’s textures, but to use game-loaded texture or create their own.
Gem will use a two-target rendering system to provide depth information to shaders (the color and depth buffers will be drawn simultaneously by a single shader). MGE caches renders and redraws them, causing a significant speed hit and memory increase. On systems not capable of using multiple render-targets (very old cards), Gem will fall back to a two-pass render method.
Gem uses a shader system spanning multiple games, and even graphics APIs (Voodoo works with both DirectX and OpenGL). A single target is provided to developers and artists; this means any shader written for Voodoo/Gem will function in all Voodoo-supported games. Having more games supports means a bit more work, but it also means more people testing the system and writing shaders for it. There’s no reason for MGE, OBGE and NWShader to all use different systems for the same thing (the Voodoo project was born from the fact that I was fed up with the little incompatibilities).
Voodoo also opens a new family of effects, using the shader-based render-to-texture system. Shaders can create or modify game textures on the fly, making overlays or reactive environments a very real possibility. I’ve only started playing with some of these effects, but they allow for such things as dynamic raindrops on the screen, world textures reacting to the player or scripts, or even letting the player paint a picture ingame.