Jump to content

The Infinity Engine Rendering System


Guest Steve Lillis

Recommended Posts

Guest Steve Lillis

Hi all,

 

Sorry to post this here, but I can't find this information out and I can't figure it out from the GemRB code.

 

Does anyone here know, in relative detail, how the infinity engine turns the collection of images for a map into being able to render the characters and NPCs as though they are in front of walls, behind other walls, behind beams/scenery, etc?

 

Anything I can think of that would achieve this seems to have massive flaws and I was hoping to get the official word before I go down the wrong path.

 

Cheers,

 

Steve

Link to comment
Does anyone here know, in relative detail, how the infinity engine turns the collection of images for a map into being able to render the characters and NPCs as though they are in front of walls, behind other walls, behind beams/scenery, etc?
The original game uses a predefined layer system with transparencies and other things... the map always consists of the base layer of the picture, the .tis file that's the title set which is the original picture file which is separated small sections, the next thing is that the game has this .wed file that determines most of the maps features and the overlays like, walls, doors and moving animations... after that comes the creature animations, that are separated into weapons, armor, helms, shields, etc... that all have their preset layers, so for example on a creature, you can't see anything behind the shield layer as it's the top most of them, which also makes the game look A BIT odd as the character is to be mirrored so the shield layer is always on top as you can't see anything that would be in front of it. Yes, I there is far more specific info on the area file formats and the use of them for editors in here, but it's an area making tutorial.
Link to comment
Guest Steve Lillis
Does anyone here know, in relative detail, how the infinity engine turns the collection of images for a map into being able to render the characters and NPCs as though they are in front of walls, behind other walls, behind beams/scenery, etc?
It's predefined layer system with transparencies and other things... the map always consists of the base layer of the picture, the .tis file that's the title set which is the original picture file which is separated small sections, the next thing is that the game has this .wed file that determines most of the maps features and the overlays like, walls, doors and moving animations... after that comes the creature animations, that are separated into weapons, armor, helms, shields, etc... that all have their preset layers, so for example you can't see anything behind the shield layer as it's the top most of them, which also makes the game look A BIT odd as the character is to be mirrored so the shield layer is always on top as you can't see anything that would be in front of it. Yes, I there is far more specific info on the area file formats and the use of them for editors in here, but it's an area making tutorial.

 

 

Thanks for the quick response, Jarno.

 

I'll head over to that link and fill my brain-sponge with further info.

 

Steve

Link to comment

Our system (GemRB) keeps track of wallgroup cover for each NPC and other mobile sprites (like projectiles).

This is implemented by the SpriteCover class.

The stencil is calculated for the complete maximum rectangle of the animation sequence.

If the sprite moves, the cover is recalculated.

The relative position of the sprites is handled by drawing the one at the least Z coordinate first.

 

I didn't reverse engineer the original engine.

Link to comment
Guest Steve Lillis
Our system (GemRB) keeps track of wallgroup cover for each NPC and other mobile sprites (like projectiles).

This is implemented by the SpriteCover class.

The stencil is calculated for the complete maximum rectangle of the animation sequence.

If the sprite moves, the cover is recalculated.

The relative position of the sprites is handled by drawing the one at the least Z coordinate first.

 

I didn't reverse engineer the original engine.

 

Thanks for replying. I've been trying to get my head around it just out of interest of how it worked and thats pretty much what I came up with (except much more refined).

 

Cheers,

 

Steve

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...