Results 1 to 20 of 146

Thread: Reverse engineering of Wipeout

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #10
    Join Date
    Mar 2015
    Posts
    58

    Default

    Hi there,

    I had a look at VEW files and get it working : see my commit https://github.com/tigrouind/wipeout...vew/wipeout.js

    Thanks for aybe disassembly, this was VERY useful to get it working.

    Notes :
    - This is not very efficient way to perform culling on today GPUs: the whole track (without objects around) is about 3000-5000 faces (triangles) which is nothing. This is maybe even slower than no culling at all (because we send new polygons to GPU every frame). A better way (if needed, eg : on low end hardware) would be to cut the track in big pieces, and the perform some frustum culling on it. This is something already implement by threejs (all objects are frustum culled by default), only needed is to cut the track in separate objects.
    - VEW files are only used for the track culling , not for other objects around (eg :train, bridge, trees, ...). For these ones another info (inside PRM file) is probably used. I suspect PRM file to contains some sort of bounding spheres/ boxes , organised as a tree (sort of bounding volume hierarchy).

    About VEW files (how it works) :

    For each track section, there 15 lists defined.

    north south west east all
    near x x x x x
    medium x x x x x
    far x x x x x

    - north, south, east, west lists : used for default game play, when camera is behind player. depending how player is oriented with the track, one list is selected. default is north list, when riding reverse, south is used.
    - all list : a combination of the 4 lists above. this is used for replays, for cameras around the track

    near, medium, far : used for mip mapping. for far sections, low quality texture are used.

    Each list contains visible track segments (so for a given section , the renderer only renders visible track segments).

    One example : player is in section 47, riding forward (not reverse)
    for section 47, in north near list, we have two segments : [400,4] [420,2]

    So we will render sections 400,401,402,403,420,421
    Last edited by tigrou; 19th May 2015 at 07:59 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •