T
tigrou
Guest
I am wondering how the FF7 rendering engine works.
What I have understood so far is that the game is tile based.
AFAIK, there is several layers of tiles used in the game :
- Usually one main background, containing 90% of the field (everything that is always behind all 3D characters)
- One 2nd layer for things that can be in front of 3D characters (eg : a fence, a tree)
- Some additional layers for animation (eg : door closed or open, smoke ... )
To render a frame :
First draw main background
Then all 3D characters behind 2nd layer
Then 2nd layer
Then all 3D characters in front of 2nd layer
The question is : how does the game knows, for a given 3D character, if it should be rendered after or before a layer ?
Is that information stored in the walkmesh data (thus for each triangle) ? or is it scripted (if yes how) ?
Same for switching layer for door open / closed based on player position
EDIT : I took a look using Makou Reactor :
Doors are simply special 3D lines added over the walkmesh which if passed by will trigger a sound + switch a layer parameter (to display the door open/closed)
Field animation (eg : fan, smoke) is done using scripts (which will turn some layers parameter on / off over the time)
It's still unclear to me how the game render 3D objects against layer
What I have understood so far is that the game is tile based.
AFAIK, there is several layers of tiles used in the game :
- Usually one main background, containing 90% of the field (everything that is always behind all 3D characters)
- One 2nd layer for things that can be in front of 3D characters (eg : a fence, a tree)
- Some additional layers for animation (eg : door closed or open, smoke ... )
To render a frame :
First draw main background
Then all 3D characters behind 2nd layer
Then 2nd layer
Then all 3D characters in front of 2nd layer
The question is : how does the game knows, for a given 3D character, if it should be rendered after or before a layer ?
Same for switching layer for door open / closed based on player position
EDIT : I took a look using Makou Reactor :
Doors are simply special 3D lines added over the walkmesh which if passed by will trigger a sound + switch a layer parameter (to display the door open/closed)
Field animation (eg : fan, smoke) is done using scripts (which will turn some layers parameter on / off over the time)
It's still unclear to me how the game render 3D objects against layer
Last edited: