MOPP & BSP stuff

Post Reply
User avatar
troymac1ure
Keeper of Entity
Posts: 1282
Joined: Sat Aug 09, 2008 4:16 am
Location: British Columbia, Canada, eh
Contact:

MOPP & BSP stuff

Post by troymac1ure »

So continuing on from the deleted discussion:

MOPP Header (to be reposted when I get home):

Code: Select all

        public class Header    // 48 bytes (0x30)
        {
            public float xOffset;                   // Used to shift the X value to real world coordinates?
            public float yOffset;                   // Used to shift the Y value to real world coordinates?
            public float zOffset;                   // Used to shift the Z value to real world coordinates?
            public float unknown;
            public byte[] constant1_FF00 = new byte[16];   // Always FF00 0000 0000 0000 0000 0000 0000 0000
            public uint unPaddedSize;                      // Actual size is padded to 16 bytes
            public byte[] constant2_0100 = new byte[12];   // Always 0100 0000 0000 0000 0000 0000
        }
Last night I was playing with the MOPP code and injected SHARED.MAP MOPP over ascension & coagulation. This allowed them to still load, however removing all player collision (I assume, since I just kept falling to my death) from the map. If the MOPP is screwed, the game will freeze at the mainmenu screen after the countdown. I need to do some more tests on a map where I can land on a crate or something with a banshee beside me. I would like to see if the map extents are taking from the meta or from the MOPP code itself.
I know that the MOPP has OpCodes to reference triangles, so it is obviously very closley tied to the meta data.

On a slight side note, I finished the MOPP disassembler last night as well. I'm going to add a convenience option, then I'll post it and maybe other will help to work through the unknown codes. I set it up so all the OpCodes are read from a text file, so it will be very easy to modify the OpCode outputs for testing purposes.
Last edited by troymac1ure on Sun Jun 03, 2012 1:18 am, edited 1 time in total.
User avatar
CaptainPoopface
Posts: 714
Joined: Sat Feb 16, 2008 5:47 am

Re: MOPP & BSP stuff

Post by CaptainPoopface »

Would it help your process if you set the biped to flying and had a gun that drops a bloc instead of a projectile to check for phmo collision? I wonder if you could discover more by living longer and traveling around the map.
User avatar
Ogrish
Posts: 1512
Joined: Wed Dec 12, 2007 2:56 am

Re: MOPP & BSP stuff

Post by Ogrish »

Unfortunatly that wont work, back in my bsp testing days i often checked flying bipd, but if the bsp collision is broken you still fall.

I used to used bsp master to flatten and flip bsp's visual mesh which resulted in maps that load but the physical collision was sometimes broken and sometimes not touched so i would have to spawn a large mach to land on, and crates dropped from weapons fell thru map too.
User avatar
troymac1ure
Keeper of Entity
Posts: 1282
Joined: Sat Aug 09, 2008 4:16 am
Location: British Columbia, Canada, eh
Contact:

Re: MOPP & BSP stuff

Post by troymac1ure »

CaptainPoopface wrote:Would it help your process if you set the biped to flying and had a gun that drops a bloc instead of a projectile to check for phmo collision? I wonder if you could discover more by living longer and traveling around the map.
sorry, started this post @ home, then never actually posted so I missed the part where I was throwing grenades as I fell & they still bounced off the bsp.
I may try the flying thing as that would be very quick and easy to test.
User avatar
troymac1ure
Keeper of Entity
Posts: 1282
Joined: Sat Aug 09, 2008 4:16 am
Location: British Columbia, Canada, eh
Contact:

Re: MOPP & BSP stuff

Post by troymac1ure »

[quote=""darK_nova"]However in Halo 2 they utilize a bsp tree to actually divide the mesh into clusters. Then the clusters are broken up into convex subclusters of triangles. The mopps are built at the cluster level and not at the mesh level.
Since the bsp already breaks up the nonconvex cluster into convex subcluster. I beleive the mopp uses that information and uses the same planes to break up the cluster.
[/quote]

Found this on the Oblivion site I linked before. Interesting...
User avatar
XZodia
Staff
Posts: 2208
Joined: Sun Dec 09, 2007 2:09 pm
Location: UK
Contact:

Re: MOPP & BSP stuff

Post by XZodia »

How the hell do they know that?
Image
JacksonCougar wrote:I find you usually have great ideas.
JacksonCougar wrote:Ah fuck. Why must you always be right? Why.
User avatar
troymac1ure
Keeper of Entity
Posts: 1282
Joined: Sat Aug 09, 2008 4:16 am
Location: British Columbia, Canada, eh
Contact:

Re: MOPP & BSP stuff

Post by troymac1ure »

Magic. Either primary or secondary...
User avatar
troymac1ure
Keeper of Entity
Posts: 1282
Joined: Sat Aug 09, 2008 4:16 am
Location: British Columbia, Canada, eh
Contact:

Re: MOPP & BSP stuff

Post by troymac1ure »

So after pretty much removing the mopp code, the map loses all collision, however it seems like the map extents are still the same (I applied the SharedSP mopp to ascension, but I was not constrainted to the sharedSp map size).
Also, when going through the bsp mesh, you get a "killed by the guardians" message.
Just stuff I've found so far :?

EDIT: Also, The flying Biped thing did work, except when I flew through the mesh :wink:
User avatar
neodos
Posts: 1493
Joined: Sun Dec 09, 2007 8:58 pm

Re: MOPP & BSP stuff

Post by neodos »

Have you looked into the Havok physics engine SDK, halo 2 uses that (an older version I guess) and maybe the generation method may have been altered by Bungie but if you can get a hold of a havok sdk maybe you can find something in there about how to generate MOPP.

I have been searching about it and haven't been able to find any actual explanation of how its generated, just examples of how to do get mopp it with different softwares.
DarkShallFall
Posts: 710
Joined: Thu Jan 03, 2008 5:29 pm

Re: MOPP & BSP stuff

Post by DarkShallFall »

troymac1ure wrote:Magic. Either primary or secondary...
:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:
:wonder: Adam u high?
User avatar
troymac1ure
Keeper of Entity
Posts: 1282
Joined: Sat Aug 09, 2008 4:16 am
Location: British Columbia, Canada, eh
Contact:

Re: MOPP & BSP stuff

Post by troymac1ure »

Was looking through this old topic again on Custom BSP:
http://webcache.googleusercontent.com/s ... clnk&gl=ca

and came to a realization that we are able to move player collision points slightly & still keep them intact because the mopp uses int instead of float for triangle locations. This would be like rounding the values off and allowing for some "play".
Post Reply