MultiResolution Mesh in Dark Reign II - PowerPoint PPT Presentation

1 / 44
About This Presentation
Title:

MultiResolution Mesh in Dark Reign II

Description:

All trademarks and brands property of their respective owners ... IMESH accepts custom data records and keeps track of them for you. Data structures ... – PowerPoint PPT presentation

Number of Views:100
Avg rating:3.0/5.0
Slides: 45
Provided by: david49
Category:

less

Transcript and Presenter's Notes

Title: MultiResolution Mesh in Dark Reign II


1
Multi-Resolution Mesh in Dark Reign II
March 18, 1999
All trademarks and brands property of their
respective owners
2
Who are we?
  • Pandemic Studios
  • Developing Dark Reign II and Battlezone 2
  • Dark Reign II
  • Sequel to popular RTS Game

John Cooke 3D Programmer Dark Reign II
Rick Glenn Art Director Dark Reign II
3
Dark Reign II Design Philosophy
  • Stay Traditional Real Time Strategy
  • Base Building, Resource Management, Big Battles

4
Dark Reign II Design Philosophy
  • True 3D
  • Player controlled camera
  • True Scale
  • Night/Day
  • Physics
  • Infantry based
  • Detailed units and animations
  • Fifa-style

5
(No Transcript)
6
The Problem
RTS means lots of units RTS means large
views Detailed infantry means tons of
polys Pentium 550 with Voodoo 3 minimum
7
Searching for a solution
  • Static LOD
  • The way weve always done it
  • Tessellation
  • Messiah
  • Multi-Resolution Mesh (MRM)
  • IALs latest 3D Software Technology

8
What is MRM
  • MRM allows SMOOTH real time polygon reduction of
    meshes.

9
Why use MRM?
  • Scalability
  • real time frame rate control via polygon
    reduction.
  • Visual quality
  • increase foreground detail by reducing
    background.
  • better in game engine cut scenes.

10
Why use MRM?
  • Flexibility
  • author only once for each unit
  • tweak unit counts
  • generate static LODs
  • MultiRes Software Toolkit consists of
  • MRMGEN.dll integrate into authoring tool.
  • MRM plug in for MAX generates MRM files.
  • MRM Data from an export file

11
Integration into Code
  • MRM runtime is very simple.
  • No run time tesselation or data generation of any
    kind. All mesh data is pre-allocated.
  • Data describes how faces should re-index their
    vertex data to display a mesh at various
    resolutions.
  • Easy to integrate with any graphics engines mesh
    data format.

12
Integration into Code
  • MRMGEN does a lot of complex decision making to
    generate the runtime data
  • Integration programmer doesn't need to know how
    it works.
  • It uses only the meshes original data,
    determining the least important vertex at each
    resolution level.
  • It attempts to keep texture and normal
    distortions to a minimum for as long as possible.

13
Integration into Code
  • Works best with a continuous skin, but not
    absolutely necessary.
  • MRMGEN doesnt accept data from multiple meshes.
  • MultiRes Modifier plugin generates MRM files
    directly from Max.
  • MultiRes Software Toolkit provides code for
    loading and saving MRM data.

14
Tool Integration
  • Write a simple mesh viewer application with your
    graphics library for development.
  • Integrate the MRMGEN.dll directly into the tool
    and generate custom file format including MRM
    data.
  • Provides artists a quick and easy way to see
    their assets in the game.

15
Data structures
  • Integration is easier for continuous-skin mesh
    data structures
  • Continuous-skin, envelope animated models are
    typical for most current games
  • Only requirement is vertex and face data must
    exist in contiguous arrays
  • Meshes have separate arrays of vertex positions,
    normals, texture coordinates, and faces
  • Each face has 3 sets of indexes 1 each for
    vertex position, normal, and texture uv
  • Could use other formats i.e. 1-to-1 mapping for
    vertex, normal, and uv
  • IMESH accepts custom data records and keeps track
    of them for you.

16
Data structures
  • MRMGEN generates MRM update records and optimizes
    the mesh
  • One Vertex Update Record for each vertex in the
    mesh.
  • Each contains a number of faces to
    increase/decrease and a collection of Face Update
    Records.
  • One Face Update for each face vertex attribute to
    change position, normal, uv.

17
Data Structures
  • typedef struct MRMUpdatesTag
  • unsigned long maxNumVertices
  • unsigned long maxNumFaces
  • unsigned long maxNumNormals
  • unsigned long maxNumTexCoords
  • VertexUpdate vertexUpdates // one for each
    vertex in the mesh
  • MRMUpdates

18
Data Structures
  • typedef struct VertexUpdateTag
  • unsigned long vertexIndex
  • unsigned long parentVertexIndex
  • unsigned long numNewFaces
  • unsigned long numNewNormals
  • unsigned long numNewTexCoords
  • unsigned long numFaceUpdates
  • FaceUpdate faceUpdates // typically 2
  • VertexUpdate

19
Data Structures
  • typedef struct FaceUpdateTag
  • unsigned long faceIndex
  • AttribToken attrib // Vertex, Normal, or
    TexCoord
  • Unsigned long value2 // New attrib index
    Increasing or Decreasing
  • FaceUpdate

20
Data structures
  • Resolution change is achieved by traversing the
    update records.
  • Only records for the vertices being removed or
    added are looped
  • Vertex data is sorted by decreasing order of
    importance so LOD changes are minimal hit on the
    cache.
  • Important as mesh polygon count increase
  • MRM data is typically about the same size as the
    mesh data itself.

21
(No Transcript)
22
Runtime
  • Distance from the camera is a good primary
    polygon reduction metric
  • Since detail is wasted in the background, get rid
    of it.
  • Increase your polygon budget for the foreground,
    or for more units, effects, etc.
  • Frame rate is another great metric
  • Extra reduction for when frame rate drops below
    threshold.

23
3DSMax vs. Softimage
  • Digimation MultiRes tools for 3DS Max.
  • 3DS plug-in lets artists hand tweak MRM
    parameters and see the results in real-time.
  • Dialogs for
  • Vertex Merging Threshold merge vertices of
    distinct groups MRMGEN optimizes mesh.
  • Maintain Base Vertices maintains vertices
    selected when MRMGEN is invoked.
  • Boundary Metric keep materials distinct at the
    expense of reduction.
  • Multiple Normals per Vertex with Crease Angle
    specification.
  • Gives programmers an instant game friendly format
    and code toolkit.

24
3DSMax vs. Softimage
  • For Softimage you need to write your own plug-in
    or custom tool.
  • Dark Reign II uses a custom tool along with some
    versatile tricks
  • Frog Pose

25
Production Application
  • MRM allows for better art
  • MRM saves time
  • More Time More Art
  • MRM gives peace of mind

26
Concept
  • Shoot for a higher ideal
  • Can think about the high end
  • Less low end issues than with Static LODs

27
Author Once
  • One Time Authorship of Assets
  • One High poly rather than several Low poly
  • Animate one model
  • Dont have to deal with transfer of animations

28
Dark Reign II Unit created at 800 polys
Time to create unit 1 Day
29
Interstate 76 Car at 300 Polys
Time to create car 1 Day
30
Static LODs then created at 200, 100, and 75
polys
Time to create static LODs 1 Day
31
Dark Reign II assets MRMd to 800, 500, 300 polys
Time to create Continuous LODs 0 days
32
Art team can create two MRMd assets in time it
takes to create one asset using static LODs
33
How does number of polys in source model affect
MRMing?
1200 poly model
800 poly model
34
Both models at 800 polys
1200 poly source
800 poly source
35
Both models at 500 polys
1200 poly source
800 poly source
36
Both models at 300 polys
1200 poly source
800 poly source
Result - No penalty for Higher Source Model
37
Better Than Static LODs
  • Less production time
  • Able to experiment more
  • No popping
  • Easier to change an asset
  • Dial-In MRMing on a per asset basis

38
Better Frame Rate During Production
  • Code rarely optimized early on
  • Lack of static LODs early on
  • How many times do you run the game
  • Easier to experiment

39
Peace of Mind
  • Proven technology
  • Trying to project ahead to system spec is
    difficult 1 to 2 years before release
  • High visuals vs. Frame Rate
  • Take a lot of risk in production
  • Its usually pretty late in the production when
    you decide to either reduce polys or optimize
    engine

40
Bigger Sweet Spot
  • Low end versus high end
  • Low end 166 with Voodoo 1
  • High end 550 with TNT2
  • How do we make a great game for all systems

41
Longer Legs
  • Art made higher than intended target
  • Game will look better as machines get faster

42
Art Considerations
  • Fewer texture and normal discontinuities is
    better for MRM
  • Mesh is more efficient with fewer discontinuities
  • Trade off between discontinuities and efficient
    use of texture space

43
Is MRM right for you
  • Why do we like MRM
  • easy to use
  • increases frame rate without degrading visual
    quality.
  • Who can use MRM
  • anyone writing a 3D game that displays
    significant perspective reduction. i.e. everybody!

44
Is MRM right for you
  • Things to consider when considering using MRM in
    your project
  • how else are you going to compete in the brave
    new world of super-scalability
Write a Comment
User Comments (0)
About PowerShow.com