Home General Discussion

Does anyone use checklists to verify model integrity?

polycounter lvl 7
Offline / Send Message
mickyg polycounter lvl 7
Hi All

I'm trying to do up a checklist for quality assurance on realtime models. Does anyone else / your company use such a thing?

The models are pretty basic - one object, unwrapped with one texture (diffuse/opacity combined) - created in 3ds Max. This is the list i've come up with:

o Model Integrity (using STL Check)
o Normal directions
o Welded vertices
o All one model
o Smoothing Groups
o Triangle orientation (no long edges)
o Texture resolution
o Texel density
o Unwrap quality (packing)
o UV padding
o Model naming conventions
o Material application
o Material naming conventions (and sub-materials)
o Bitmap naming conventions

Is there any others that you can think of? My aim is to have a comprehensive checklist to give to a model checker that can run through the list and verify the quality.

Thanks!

Replies

  • ZacD
    Options
    Online / Send Message
    ZacD ngon master
    You may also want to check uv seams, make sure they are only used where needed.
  • mickyg
    Options
    Offline / Send Message
    mickyg polycounter lvl 7
    ZacD wrote: »
    You may also want to check uv seams, make sure they are only used where needed.

    Thanks ZacD, added to my list.
  • JohnnyRaptor
    Options
    Offline / Send Message
    JohnnyRaptor polycounter lvl 15
    might want to add

    Scale check
    Bake quality / normalmap seam check
    Rig construction and functionality (if applicable)
    Skinning (if applicable)
    Export check
    Check in engine
  • Anuxinamoon
    Options
    Offline / Send Message
    Anuxinamoon polycounter lvl 14
    Reset Xform / reset transforms and pivot at 0,0,0 is the biggest for me.

    Usually the cause of some very obvious brokenness when imported :3
  • Rick Stirling
    Options
    Offline / Send Message
    Rick Stirling polycounter lvl 18
    not only are checklists great, you can normally automate a huge chunk of it.

    Lay out the UI buttons on the tool in the same order as the checklist.
  • JacqueChoi
    Options
    Offline / Send Message
    JacqueChoi polycounter
    Fantastic list!
    Few more:
    - Ensure you're not using duplicate or extraneous textures, and all textures are assigned to the correct path (aka not your desktop): (Shift+T)
    - Ensure your skinning has assigned the proper bone affect limit (usually 4 for most games I've worked on, not the default '20' assigned by max).
    - Ensure you have the correct number of UV channels. (Channel Info)

    Depending on the render engine you use:
    - Sorting order for alpha transparencies.
  • Overlord
    Options
    Offline / Send Message
    Reset Xform / reset transforms and pivot at 0,0,0 is the biggest for me.

    Usually the cause of some very obvious brokenness when imported :3

    I've found reset Xform not to be universally reliable. What I do is just create a box snapped to 0,0,0, attach the model to it as an element and delete the the box. This does the same thing you're suggesting.
  • Ace-Angel
    Options
    Offline / Send Message
    Ace-Angel polycounter lvl 12
    JacqueChoi wrote: »
    Depending on the render engine you use:
    - Sorting order for alpha transparencies.

    How would you manage that? I know UDK allows you to manually manage sorting planes if you wish, but most engines rely on export part for this information. Does it come down to the exporter?
  • JohnnyRaptor
    Options
    Offline / Send Message
    JohnnyRaptor polycounter lvl 15
    Good question Ace,

    usually, the way i manage it is combining the alpha planes in the order you want them drawn.

    If this is on an already attached/combined collection of planes, then you have to separate/detach them all, and re-attach/combine in the correct order.

    Interested to hear if there is a quicker way ?
  • sprunghunt
    Options
    Offline / Send Message
    sprunghunt polycounter
    Good question Ace,

    usually, the way i manage it is combining the alpha planes in the order you want them drawn.

    If this is on an already attached/combined collection of planes, then you have to separate/detach them all, and re-attach/combine in the correct order.

    Interested to hear if there is a quicker way ?

    I have worked on engines where you could determine the sort order using a variable on the shader/material in 3dsmax. It required a custom shader that worked with the exporter.
  • r_fletch_r
    Options
    Offline / Send Message
    r_fletch_r polycounter lvl 9
    Overlord wrote: »
    I've found reset Xform not to be universally reliable. What I do is just create a box snapped to 0,0,0, attach the model to it as an element and delete the the box. This does the same thing you're suggesting.

    :D Box tricking. thats what we did before reset xforms
  • JacqueChoi
    Options
    Offline / Send Message
    JacqueChoi polycounter
    Depends.

    I think this is still sort of manual sorting is a remnant of forward rendering. Most of the newer engines are switching to deferred which I believe uses other sorting methods like Alpha Safe, or Dithering the alpha test.
    (which is generally what I believe is done in UDK).

    And Jonny, I believe that's the out-of-the-box solution for Max. I've worked with internal tools that dealt with it differently.
  • Zepic
    Options
    Offline / Send Message
    Zepic polycounter lvl 11
    Turbo Squid has a good checklist for their Checkmate Pro models:

    Here's the copy and pasted list (got the info from here, http://support.turbosquid.com/entries/20203606?locale=1 :

    2. Standards for 3D Model Inspection
    2.1 Geometry
    2.1.1 No isolated vertices
    2.1.2 No coincident vertices
    2.1.3 No coincident/coplanar faces
    2.1.4 Face normals point outward - By "outward" we mean the appropriate direction for correct rendering, with no normals incorrectly flipped.
    2.1.5 No empty objects - All objects should have geometry or splines or be null/control helpers. No "empty objects" that have names but nothing else permitted.

    2.2 Topology
    2.2.1 Quads and triangles only
    2.2.2 Mostly quads - The model must use quads as much as possible. A range of 10%-20% tris is sensible for most models, but some will call for a higher percentage to form sensible topology. Models are inspected manually to ensure a sensible quad/tri ratio is maintained.

    2.3 Real-World Scale
    2.3.1 Real-world scale within 1-3% - Model can use any units to achieve real-world scale. If the model does not have an exact real-world counterpart (such as a human character or an unbranded car), the model must use the size/scale of comparable objects in real life.
    2.3.2 Exception for exceedingly large/small models - Models of objects that have a real-world scale at a microscopic or astronomical level, such as amoebas and solar systems, are excepted from having real-world scale.
    2.3.3 Units used in the file should be included in the description.

    2.4 Position and Orientation - See Centering and Freezing Transforms for more info
    2.4.1 Base of model at or near 0,0,0 origin
    2.4.2 Entire model sits on or just above ground plane
    2.4.3 Oriented to World up-axis - The obvious "up" side of the model must be pointing toward the World up axis. In other words, the model can't be lying on its side or upside-down when the file is opened.

    2.5 Transforms - See Centering and Freezing Transforms for more info
    2.5.1 Position and rotation transforms frozen/reset - Exception: This requirement does not apply to 3ds Max.
    2.5.2 3ds Max Requirement: All objects at 100% scale at object level

    2.6 Naming and Organization
    2.6.1 Descriptive and unique object names - Default object names are not acceptable. For character rigs, a prefix or suffix must be added to bone names.
    2.6.2 Model file includes only the 3D model being sold - No extraneous helpers, shapes, splines, or other unexpected objects not specifically needed for model functionality
    2.6.3 Includes a grouping or hierarchy for moving all objects in model together

    2.7 Textures and Materials
    2.7.1 At least one material must be applied to the model to represent real-world object surfaces. While not every object must have a material or texture, the customer should be able to render the model upon purchase and get quality surface representation.
    2.7.2 Textures applied where appropriate
    2.7.3 Texture files and nodes named descriptively - Texture filenames Image, Pic, or Picture plus a number are not acceptable.
    2.7.4 Materials named descriptively
    2.7.5 No texture paths referenced by model. Any texture paths must be stripped from model. See Texture References.

    2.8 UVs - A model with mapped textures must meet these requirements:
    2.8.1 No obvious texture stretching on model
    2.8.2 Seams hidden in less visible areas of model
    2.8.3 People and animals must have unwrapped UVs - This standard does not apply to larger scenes where the character or animal is not the focal point.

    2.9 Rigging
    2.9.1 Transforms must be frozen/reset unless model is animated
    2.9.2 Hierarchy objects must be uniquely and appropriately named
    2.9.3 Rig must function as expected - Rig must perform simple deformations
    2.9.4 Custom rig must include instructions - A Readme, PDF document, or other documentation on how to use the rig. Rigs that use Biped or CAT are not required to have a readme unless there are custom controls.
  • JohnnyRaptor
    Options
    Offline / Send Message
    JohnnyRaptor polycounter lvl 15
    Yeah that figures. Cheers for the headsup.

    In UDK u can do some manual draw sorting, but I find it a real ballache for anything more than very minor fixes.
  • HitmonInfinity
    Options
    Offline / Send Message
    HitmonInfinity polycounter lvl 11
    Good stuff. If it's a Maya scene, I'll also make sure:

    -No unnecessary materials.
    -No unnecesary layers.
    -No geometry nodes that doesn't exist (if you look in the outliner after a long modeling session you'll see what I mean.)
    -everything is named in a organized fashion (meshs and materials)

    And I'll run an "optimize scene size" to top it all off.
  • mickyg
    Options
    Offline / Send Message
    mickyg polycounter lvl 7
    Just like to give a massive thanks to everyone who's contributed here - my list is now bigger and even more comprehensive than I ever imagined.

    Thanks a lot people!
  • JamesWild
    Options
    Offline / Send Message
    JamesWild polycounter lvl 8
    JacqueChoi wrote: »
    Depends.

    I think this is still sort of manual sorting is a remnant of forward rendering. Most of the newer engines are switching to deferred which I believe uses other sorting methods like Alpha Safe, or Dithering the alpha test.
    (which is generally what I believe is done in UDK).

    And Jonny, I believe that's the out-of-the-box solution for Max. I've worked with internal tools that dealt with it differently.

    Got a source for "alpha safe"? I can't find any reference to it being used in a 3D realtime context, nor a definition beyond some technique used on 2D brushes.

    Dithering the alpha test (stipple, or screen door) is indeed a great workaround.

    It's not a forward rendering thing in particular, and stippling is indeed the best way of doing alpha in that there's no sorting problems; it interacts with depth sorting properly. However, you need both good screen resolution and good AA to make it look good. I heard some games on the XBox were using it, because TVs of the time were so blurry it looked really good. Changing the stipple pattern frame by frame also makes the pattern less obvious as TVs tend to blur the result themselves. (lots of slow TVs out there)

    The main reason a lot of deferred games moved to stippled alpha is that the only alternative is drawing all blended triangles in a non-deferred post pass afterwards. (whether forward or unlit - lots of deferred renderers I've seen cannot draw lit blended surfaces) Certainly can't populate the G-buffers with blended positions :p

    I loved doing graphics programming, it's a shame the market for graphics programmers disappeared overnight.
  • Zepic
    Options
    Offline / Send Message
    Zepic polycounter lvl 11
    Sorry, forgot to mention this. There are scripts that Turbo Squid provides that will automate a lot of that long winded list I copy and pasted above. This should speed up your checklisting...

    http://www.turbosquid.com/CheckMateTools/
  • Autarkis
    Options
    Offline / Send Message
    Autarkis polycounter lvl 8
    Zepic:
    Quite a handy little tool. Thanks for the heads up!
  • mickyg
    Options
    Offline / Send Message
    mickyg polycounter lvl 7
    Zepic wrote: »
    Sorry, forgot to mention this. There are scripts that Turbo Squid provides that will automate a lot of that long winded list I copy and pasted above. This should speed up your checklisting...

    http://www.turbosquid.com/CheckMateTools/

    You're a legend Zepic! Cheers!
Sign In or Register to comment.