1 / 44

Multi-Resolution Mesh in Dark Reign II

Multi-Resolution Mesh in Dark Reign II. March 18, 1999. *All trademarks and brands property of their respective owners. Pandemic Studios Developing Dark Reign II and Battlezone 2 Dark Reign II Sequel to popular RTS Game. Who are we?. John Cooke 3D Programmer Dark Reign II. Rick Glenn

Download Presentation

Multi-Resolution Mesh in Dark Reign II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Multi-Resolution Mesh in Dark Reign II March 18, 1999 Integrating Multi-Resolution Meshes Into Games - GDC '99 *All trademarks and brands property of their respective owners

  2. Pandemic Studios Developing Dark Reign II and Battlezone 2 Dark Reign II Sequel to popular RTS Game Who are we? John Cooke 3D Programmer Dark Reign II Rick Glenn Art Director Dark Reign II Integrating Multi-Resolution Meshes Into Games - GDC '99

  3. Dark Reign II Design Philosophy • Stay Traditional Real Time Strategy • Base Building, Resource Management, Big Battles Integrating Multi-Resolution Meshes Into Games - GDC '99

  4. Dark Reign II Design Philosophy • True 3D • Player controlled camera • True Scale • Night/Day • Physics • Infantry based • Detailed units and animations • ‘Fifa’-style Integrating Multi-Resolution Meshes Into Games - GDC '99

  5. The Problem RTS means lots of units RTS means large views Detailed infantry means tons of polys Pentium 550 with Voodoo 3 minimum Integrating Multi-Resolution Meshes Into Games - GDC '99

  6. Searching for a solution • Static LOD • The way we’ve always done it • Tessellation • Messiah • Multi-Resolution Mesh (MRM) • IAL’s latest 3D Software Technology Integrating Multi-Resolution Meshes Into Games - GDC '99

  7. What is MRM • MRM allows SMOOTH real time polygon reduction of meshes. Integrating Multi-Resolution Meshes Into Games - GDC '99

  8. 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. Integrating Multi-Resolution Meshes Into Games - GDC '99

  9. 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 Integrating Multi-Resolution Meshes Into Games - GDC '99

  10. 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 engine’s mesh data format. Integrating Multi-Resolution Meshes Into Games - GDC '99

  11. 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. Integrating Multi-Resolution Meshes Into Games - GDC '99

  12. Integration into Code • Works best with a continuous skin, but not absolutely necessary. • MRMGEN doesn’t 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. Integrating Multi-Resolution Meshes Into Games - GDC '99

  13. 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. Integrating Multi-Resolution Meshes Into Games - GDC '99

  14. 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. Integrating Multi-Resolution Meshes Into Games - GDC '99

  15. 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. Integrating Multi-Resolution Meshes Into Games - GDC '99

  16. 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; Integrating Multi-Resolution Meshes Into Games - GDC '99

  17. 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; Integrating Multi-Resolution Meshes Into Games - GDC '99

  18. Data Structures typedef struct FaceUpdateTag { unsigned long faceIndex; AttribToken attrib; // Vertex, Normal, or TexCoord Unsigned long value[2]; // New attrib index; Increasing or Decreasing } FaceUpdate; Integrating Multi-Resolution Meshes Into Games - GDC '99

  19. 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. Integrating Multi-Resolution Meshes Into Games - GDC '99

  20. Integrating Multi-Resolution Meshes Into Games - GDC '99

  21. 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. Integrating Multi-Resolution Meshes Into Games - GDC '99

  22. 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. Integrating Multi-Resolution Meshes Into Games - GDC '99

  23. 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 Integrating Multi-Resolution Meshes Into Games - GDC '99

  24. Production Application • MRM allows for better art • MRM saves time • More Time = More Art • MRM gives peace of mind Integrating Multi-Resolution Meshes Into Games - GDC '99

  25. Concept • Shoot for a higher ideal • Can think about the high end • Less low end issues than with Static LOD’s Integrating Multi-Resolution Meshes Into Games - GDC '99

  26. Author Once • One Time Authorship of Assets • One High poly rather than several Low poly • Animate one model • Don’t have to deal with transfer of animations Integrating Multi-Resolution Meshes Into Games - GDC '99

  27. Dark Reign II Unit created at 800 polys Time to create unit = 1 Day Integrating Multi-Resolution Meshes Into Games - GDC '99

  28. Interstate ‘76 Car at 300 Polys Time to create car = 1 Day Integrating Multi-Resolution Meshes Into Games - GDC '99

  29. Static LOD’s then created at 200, 100, and 75 polys Time to create static LOD’s= 1 Day Integrating Multi-Resolution Meshes Into Games - GDC '99

  30. Dark Reign II assets MRM’d to 800, 500, 300 polys Time to create Continuous LOD’s = 0 days Integrating Multi-Resolution Meshes Into Games - GDC '99

  31. Art team can create two MRM’d assets in time it takes to create one asset using static LOD’s Integrating Multi-Resolution Meshes Into Games - GDC '99

  32. How does number of polys in source model affect MRMing? 1200 poly model 800 poly model Integrating Multi-Resolution Meshes Into Games - GDC '99

  33. Both models at 800 polys 1200 poly source 800 poly source Integrating Multi-Resolution Meshes Into Games - GDC '99

  34. Both models at 500 polys 1200 poly source 800 poly source Integrating Multi-Resolution Meshes Into Games - GDC '99

  35. Both models at 300 polys 1200 poly source 800 poly source Result - No penalty for Higher Source Model Integrating Multi-Resolution Meshes Into Games - GDC '99

  36. Better Than Static LOD’s • Less production time • Able to experiment more • No popping • Easier to change an asset • Dial-In MRMing on a per asset basis Integrating Multi-Resolution Meshes Into Games - GDC '99

  37. Better Frame Rate During Production • Code rarely optimized early on • Lack of static LOD’s early on • How many times do you run the game • Easier to experiment Integrating Multi-Resolution Meshes Into Games - GDC '99

  38. 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 • It’s usually pretty late in the production when you decide to either reduce polys or optimize engine Integrating Multi-Resolution Meshes Into Games - GDC '99

  39. 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 Integrating Multi-Resolution Meshes Into Games - GDC '99

  40. Longer Legs • Art made higher than intended target • Game will look better as machines get faster Integrating Multi-Resolution Meshes Into Games - GDC '99

  41. 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 Integrating Multi-Resolution Meshes Into Games - GDC '99

  42. 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! Integrating Multi-Resolution Meshes Into Games - GDC '99

  43. 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 Integrating Multi-Resolution Meshes Into Games - GDC '99

More Related