- Joined
- Nov 11, 2004
- Messages
- 1,986
I would like to use this thread to keep discussing the secrets hidden in the MDX format.
Hmm can't find the cinematic models in the mpq, any hints?
Constant color makes your model not be affected by time of the day coloring, like in night models get a little bluer.
Full Resolution, does indeed ignore mipmapping. It's used for loading screen models.
PrimesFarZ and NearZ changes how your model is rendered in the 3d space. They have to do with which objects are rendered over others. Not sure pretty well how the exactly work.
Layers also have more unknown flags:
ShadingFlags;
//#1 - Unshaded
//#2 - SphereEnvironmentMap
//#4 - ???
//#8 - ???
//#16 - TwoSided
//#32 - Unfogged
//#64 - NoDepthTest
//#128 - NoDepthSet
There's also this property which I don't know what it does:
CoordId
There's also this in geosets:
I know that it looks chinese, but I think coordId has to do with it. Geosets appear to be able to handle two or more unwraps.
Here's what I was saying about faces:
funny thing is that we only use triangles, but other shit is apparently allowed. The question is what are their numbers.
There are also some unknown flags on geosets:
DWORD MaterialId;
DWORD SelectionGroup;
DWORD SelectionFlags; //0 - None
//#1 - ???
//#2 - ???
//#4 - Unselectable
Sadly if you want to experiment by changing this glags, you require a hex editor: http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm
There's also one thing that should be explored which are:
I've only seen them used by models like dragons to drop many bones when they die. This type of emitter, emits models and behaves different to particle emitters 2. Here's a bit of what I know about them:
Things I don't know about them:
Their potential:
I'm afraid not, or not that I know of.
From what I gather ENB does not communicate with the game directly, hence why it can be used on virtually anything that uses direct 3D 8/9 to render the graphics.
This build has some experimental support for bump and parallax mapping, however I believe this is faked from the diffuse map (and ends up looking hideous as a result) but it does not seem to work in wc3.
These and reflection/water shader seem to be tailored specifically for San Andreas and won't work in other games.
Speaking of which, I noticed magos can add an environment map material tag but this does not seem to do anything in the game.
Heard anything of that ? Sphere mapping is simple but would be amazing to have even that. This is the kind of data that is not used I assume ? What else is there ?
I'm currently making NeoDex export directly to MDX format and i've found some extremely weird shit. There are many unknown flags in materials. Models can have external animation files which I don't really know what they are for or how they are used. There's a type of particle emitter which can emit models and works differently to particle emitters 2, sadly testing it is a pain because magos erase them, a big motivation to make NeoDex export directly to mdx and forget of mago's crap. I also found Animations have an extra value called sync point which I have no idea how it works. There's plenty of unused data in geosets like types of faces (triangles, trianglefans, quads, etc). There's a flag called DropShadow on geosets which I haven't tested. There are more types of colission objects like planes and cylinders.
Material flags:
//#1 - ConstantColor
//#2 - ???
//#4 - ???
//#8 - SortPrimitivesNearZ
//#16 - SortPrimitivesFarZ
//#32 - FullResolution
there are 2 flags that exist and no body knows what they do.
Fascinating. I hope you can figure some of that out. You've already made NeoDex nearly as good as art tools, and better in several aspects. If you can figure some of that out and find some super awesome feature hidden within warcraft 3 NeoDex will go above and beyond art tools.
That drop shadow flag is particularly interesting. Drop shadow usually refers to a type of shadow used in 2d art, but if it's on a 3d geoset I have no idea what it means. Maybe they were trying to make a better shadow system? I have no idea.
Do you know anything about those two ??? flags?
I have no idea what constant color could be for.
I also have no idea what the sorting primitives flags are.
The full resolution flag sounds sort of like it might turn of mipmapping? Who knows.
Maybe some of this stuff was used in the Arthas vs Illidan model. If you open up the model file, you'll notice for one thing it actually has no animations. External animation file?
Also, if you watch the fight, you'll notice that both arthas and illidan have what I think is real time shadows.
http://www.youtube.com/watch?v=eB82pF_64mw Here is a video of the fight.
If you open the model up in the editor and look at arthas's face, you'll notice that although it has no animations, arthas's hair is blowing in the wind with what appears to be real time shadows cast by the hair.
There are several large black planes in the model, which are sort of shown in the fight, and several interesting particle effects, including what looks like snow falling up, and a bunch of smoke coming from the cave entrance.
You can also open up the cinematic illidan model, which appears to be the same or almost the same model used in the pre-rendered illidan cinematic in TFT where he summons nagas. Except the textures are messed up.
Hmm can't find the cinematic models in the mpq, any hints?
Constant color makes your model not be affected by time of the day coloring, like in night models get a little bluer.
Full Resolution, does indeed ignore mipmapping. It's used for loading screen models.
PrimesFarZ and NearZ changes how your model is rendered in the 3d space. They have to do with which objects are rendered over others. Not sure pretty well how the exactly work.
Layers also have more unknown flags:
ShadingFlags;
//#1 - Unshaded
//#2 - SphereEnvironmentMap
//#4 - ???
//#8 - ???
//#16 - TwoSided
//#32 - Unfogged
//#64 - NoDepthTest
//#128 - NoDepthSet
There's also this property which I don't know what it does:
CoordId
There's also this in geosets:
Code:
DWORD 'UVAS';
DWORD NrOfTextureVertexGroups;
DWORD 'UVBS';
DWORD NrOfVertexTexturePositions;
struct VertexTexturePosition[NrOfVertexTexturePositions]
{
FLOAT2 TexturePosition;
};
I know that it looks chinese, but I think coordId has to do with it. Geosets appear to be able to handle two or more unwraps.
Here's what I was saying about faces:
Code:
DWORD 'PTYP';
DWORD NrOfFaceTypeGroups;
struct FaceTypeGroup[NrOfFaceTypeGroups]
{
DWORD FaceType; //4 - Triangles
//??? - Triangle fan
//??? - Triangle strip
//??? - Quads
//??? - Quad strip
};
DWORD 'PCNT';
DWORD NrOfFaceGroups;
funny thing is that we only use triangles, but other shit is apparently allowed. The question is what are their numbers.
There are also some unknown flags on geosets:
DWORD MaterialId;
DWORD SelectionGroup;
DWORD SelectionFlags; //0 - None
//#1 - ???
//#2 - ???
//#4 - Unselectable
Sadly if you want to experiment by changing this glags, you require a hex editor: http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm
There's also one thing that should be explored which are:
Code:
// Observe properties of an Object.
// EmitterUses___ is a flag that appears only when there is a Path
// in Particle and their appropriate flag is set.
// Maximum length of path is 256 characters (0x100 bytes)
ParticleEmitter <string_name> {
ObjectId <long>,
Parent <long>,
<EmitterUsesMDL|EmitterUsesTGA>,
static EmissionRate <float>,
static Gravity <float>,
static Longitude <float>,
static Latitude <float>,
(Visibility <float>)
Particle {
static LifeSpan <float>,
static InitVelocity <float>,
Path <string_path>,
}
(Translation { <float_x>, <float_y>, <float_z> })
(Rotation { <float_a>, <float_b>, <float_c>, <float_d> })
(Scaling { <float_x>, <float_y>, <float_z> })
}
I've only seen them used by models like dragons to drop many bones when they die. This type of emitter, emits models and behaves different to particle emitters 2. Here's a bit of what I know about them:
- They are based on a type of particle system in 3ds max called SuperSpray.
- Basicly you use them for emitting models.
- Emitted models will only play Stand animation.
- Longitude and Latitude use radians instead of degrees. They say the scope of the emission.
- Converting them in magos from mdl may erase them.
- Guesst's MDL-MDX convertor crashes if your model has them.
- Only Yobsul's MDL/X Convertor can convert them properly.
- NeoDex, unlike Art Tools, can export them, but they seem to be hard to set.
Things I don't know about them:
- Can the emitted models have ribbon emitters and/or particle emitters 2?
- What are the MDX chunk names for animated latitud, longitude, gravity, lifespan, emission?
Their potential:
- Imagine emitting ribbon emitters, crazy effects could be achieved.
- Emitting models with other particle systems could be nice for reproducing effects like blood splats or shit.