Thanks again for the info Jay!

On Tue, Mar 10, 2009 at 6:40 PM, Jay Stelly <[email protected]> wrote:

> You really have to measure this stuff.  It depends on so many things.
>
> If the models are used as prop_static: There is a partitioning done inside
> the set of convexes so if that partitioning is as good as the bbox one
> you'll get from the engine's code then it's a wash.  The reason you could
> gain perf is that the convex/convex partitioning is done with a sphere tree
> and the engine's partitioning of entities is done with AABBs.  So if your
> convexes fit to AABBs much better than they fit to spheres then you'll do
> fewer ray tests in the case where you split the models.
>
>
> If the models are used as prop_physics: You can't really split them and
> save anything since all of the pieces are still moving and the cost is
> proportional to that.
>
> So it may not make a difference to split.
>
>
>
>
> > -----Original Message-----
> > From: [email protected]
> > [mailto:[email protected]] On Behalf Of
> > Aditya Gaddam
> > Sent: Tuesday, March 10, 2009 3:29 PM
> > To: Discussion of Half-Life Programming
> > Subject: Re: [hlcoders] Compiling a "complex" static prop -
> > Weird collision boxes
> >
> > I would think so yes. I would only be worried about the
> > maximum model count
> > (if there is such a thing). Otherwise, that makes a bit more
> > sense actually
> > :)
> >
> > - Aditya
> >
> > On Sun, Mar 8, 2009 at 9:11 PM, Minh <[email protected]> wrote:
> >
> > > I sometimes use models that are more than 20 convex pieces.
> > Would it be
> > > more efficient if I broke those models up into smaller
> > models? So if a
> > > traceline hits one of the submodels, it only has to check
> > that model's
> > > group of convex pieces.
> > >
> > > Jay Stelly wrote:
> > > > It's compiling each face as a separate convex because the
> > normals aren't
> > > smooth.  Set a single smoothing group for each piece that
> > you want to be
> > > separate and it should work fine.
> > > >
> > > > Note that you can also configure studiomdl to output the
> > 76-hull model
> > > it's computing (which would work too) but that would be
> > really slow for
> > > physics and traces, that's why it detects and prints out an error.
> > > >
> > > >
> > > >> -----Original Message-----
> > > >> From: [email protected]
> > > >> [mailto:[email protected]] On Behalf Of
> > > >> Aditya Gaddam
> > > >> Sent: Saturday, March 07, 2009 7:18 AM
> > > >> To: Discussion of Half-Life Programming
> > > >> Subject: Re: [hlcoders] Compiling a "complex" static prop -
> > > >> Weird collision boxes
> > > >>
> > > >> Hi,
> > > >>
> > > >> Sorry it took me so long to get back to this. I tried out
> > > >> what people said - making edges hard. I checked the normals
> > > >> and they seem to pointing the right direction (they all point
> > > >> where the polys face. My output for studiomdl is:
> > > >>
> > > >> ===============================================================
> > > >> ===============================================================
> > > >>
> > > >> "C:\Program
> > > >> files\steam\steamapps\[email protected]\sourcesdk\bin\orangebox\
> > > >>
> > > > bin\studiomdl.exe"
> > > >
> > > >> -game "C:\Program Files\Steam\steamapps\SourceMods\Tactics"
> > > >> "E:\Documents\Work\Programming\C++\Tactics\modelsrc\map\walls\
> > > >>
> > > > floor_stairs.qc"
> > > >
> > > >> Process started >>>
> > > >> WARNING: AppFramework : Unable to load module p4lib.dll!
> > > >> qdir:
> > > >> "e:\documents\work\programming\c++\tactics\modelsrc\map\walls\"
> > > >> gamedir: "C:\Program Files\Steam\steamapps\SourceMods\Tactics\"
> > > >> g_path:
> > > >> "E:\Documents\Work\Programming\C++\Tactics\modelsrc\map\walls\
> > > >>
> > > > floor_stairs.qc"
> > > >
> > > >> Building binary model files...
> > > >> Working on "floor_stairs.qc"
> > > >> SMD MODEL floor_stairs_ref.smd
> > > >> SMD MODEL floor_stairs_idle.smd
> > > >> SMD MODEL floor_stairs_phys.smd
> > > >> WARNING: Model has 2-dimensional geometry (less than 0.500
> > > >> inches thick on any axis)!!!
> > > >> ...
> > > >> exactly 76 of these
> > > >> ....
> > > >> WARNING: Model has 2-dimensional geometry (less than 0.500
> > > >> inches thick on any axis)!!!
> > > >> WARNING: COSTLY COLLISION MODEL!!!! (76 parts - 20 allowed)
> > > >> WARNING: Error with convex elements of floor_stairs_phys.smd,
> > > >> building single convex!!!!
> > > >> Model has 1 convex sub-parts
> > > >> Collision model completed.
> > > >> ---------------------
> > > >> writing C:\Program
> > > >> Files\Steam\steamapps\SourceMods\Tactics\models/map/walls/floo
> > > >>
> > > > r_stairs.mdl:
> > > >
> > > >> bones          964 bytes (1)
> > > >> animations     112 bytes (1 anims) (1 frames) [0:00]
> > > >> sequences      220 bytes (1 seq)
> > > >> ik/pose        164 bytes
> > > >> eyeballs         0 bytes (0 eyeballs)
> > > >> flexes           0 bytes (0 flexes)
> > > >> textures       136 bytes
> > > >> keyvalues        0 bytes
> > > >> bone transforms        0 bytes
> > > >> Collision model volume 4907876.50 in^3
> > > >> collision        0 bytes
> > > >> total         1916
> > > >> ---------------------
> > > >> writing C:\Program
> > > >> Files\Steam\steamapps\SourceMods\Tactics\models/map/walls/floo
> > > >>
> > > > r_stairs.vvd:
> > > >
> > > >> vertices     20400 bytes (425 vertices)
> > > >> tangents      6800 bytes (425 vertices)
> > > >> total        27264 bytes
> > > >> ---------------------
> > > >> Generating optimized mesh "C:\Program
> > > >> Files\Steam\steamapps\SourceMods\Tactics\models/map/walls/floo
> > > >>
> > > > r_stairs.sw.vtx":
> > > >
> > > >> body parts:         8 bytes
> > > >> models:            20 bytes
> > > >> model LODs:        12 bytes
> > > >> meshes:            18 bytes
> > > >> strip groups:      50 bytes
> > > >> strips:            54 bytes
> > > >> verts:           3825 bytes
> > > >> indices:         1488 bytes
> > > >> bone changes:      24 bytes
> > > >> everything:      5523 bytes
> > > >> ---------------------
> > > >> Generating optimized mesh "C:\Program
> > > >> Files\Steam\steamapps\SourceMods\Tactics\models/map/walls/floo
> > > >>
> > > > r_stairs.dx80.vtx":
> > > >
> > > >> body parts:         8 bytes
> > > >> models:            20 bytes
> > > >> model LODs:        12 bytes
> > > >> meshes:            18 bytes
> > > >> strip groups:      50 bytes
> > > >> strips:            54 bytes
> > > >> verts:           3825 bytes
> > > >> indices:         1488 bytes
> > > >> bone changes:      24 bytes
> > > >> everything:      5523 bytes
> > > >> ---------------------
> > > >> Generating optimized mesh "C:\Program
> > > >> Files\Steam\steamapps\SourceMods\Tactics\models/map/walls/floo
> > > >>
> > > > r_stairs.dx90.vtx":
> > > >
> > > >> body parts:         8 bytes
> > > >> models:            20 bytes
> > > >> model LODs:        12 bytes
> > > >> meshes:            18 bytes
> > > >> strip groups:      50 bytes
> > > >> strips:            54 bytes
> > > >> verts:           3825 bytes
> > > >> indices:         1488 bytes
> > > >> bone changes:      24 bytes
> > > >> everything:      5523 bytes
> > > >>
> > > >> Completed "floor_stairs.qc"
> > > >> <<< Process finished.
> > > >> ================ READY ================
> > > >>
> > > >> The following two screenshots show what the collision
> > mesh looks like:
> > > >>
> > > >> from the top:
> > > >> http://screenshot.xfire.com/screenshot/large/4bd205d2698d681f8
> > > >> 73d2238c2de6ee806ef4a49.jpg
> > > >> from the bottom:
> > > >> http://screenshot.xfire.com/screenshot/large/55a0bbc2167dfbb3e
> > > >> 771dc78b16bb7c038b2be9b.jpg
> > > >>
> > > >> (ignore the broken material)
> > > >>
> > > >> The following screenshots show normals:
> > > >>
> > > >> http://upload.pixelfaction.com/files/49b28ff8_Capture.PNG
> > > >> http://upload.pixelfaction.com/files/49b28fe5_Capture1.PNG
> > > >>
> > > >>
> > > >> Does anyone have any idea why studiomdl thinks all my parts
> > > >> are 2 dimensional? Does the collision model depend at all on
> > > >> the ref model?
> > > >>
> > > >> Thanks,
> > > >> Aditya
> > > >>
> > > >>
> > > >> On Wed, Mar 4, 2009 at 5:03 PM, Jay Stelly
> > > >> <[email protected]> wrote:
> > > >>
> > > >>
> > > >>> You should only have one $collisionmodel statement.
> > Studiomdl does
> > > >>> not support aggregating those.
> > > >>>
> > > >>> You didn't post any output.  studiomdl must be reporting an
> > > >>>
> > > >> error if
> > > >>
> > > >>> it's falling back to a single convex hull.  What is the
> > > >>>
> > > >> error?  Post the output.
> > > >>
> > > >>> There are two likely cases:
> > > >>>
> > > >>> 1) The smoothing group suggestion.  There's a simple
> > vertex welding
> > > >>> algorithm in the collision model code that requires you to share
> > > >>> normals at vertices to have those faces belong to a
> > single convex.
> > > >>> This is why you have to set smoothing groups.
> > > >>>
> > > >>> 2) Too many convex pieces.  The default is 20 (I think 40
> > > >>>
> > > >> in l4d on).
> > > >>
> > > >>> This is a budget, the physics system can support large
> > numbers but
> > > >>> performance may be a problem.  Anyway, you can set this in
> > > >>>
> > > >> your script
> > > >>
> > > >>> with
> > > >>> $maxconvexpieces:
> > > >>>
> > > >>> $collisionmodel    "floor_stairs_floor_phys.smd"
> > > >>> {
> > > >>>    $concave
> > > >>>     $maxconvexpieces 100
> > > >>> }
> > > >>>
> > > >>> Jay
> > > >>>
> > > >>>
> > > >>>
> > > >>>> -----Original Message-----
> > > >>>> From: [email protected]
> > > >>>> [mailto:[email protected]] On
> > > >>>>
> > > >> Behalf Of Aditya
> > > >>
> > > >>>> Gaddam
> > > >>>> Sent: Wednesday, March 04, 2009 5:15 AM
> > > >>>> To: Discussion of Half-Life Programming
> > > >>>> Subject: [hlcoders] Compiling a "complex" static prop - Weird
> > > >>>> collision boxes
> > > >>>>
> > > >>>> Hi,
> > > >>>>
> > > >>>> I am currently trying to compile a "complex" static prop. I say
> > > >>>> "complex"
> > > >>>> because it is basically the little stairway prop shown in this
> > > >>>> screenie:
> > > >>>>
> > > >>>> http://upload.pixelfaction.com/files/49ae7dad_stairs.jpg
> > > >>>>
> > > >>>> It is however being a PITA to export.
> > > >>>>
> > > >>>> Just exporting the same merged mesh as the ref, idle and
> > > >>>>
> > > >> phys smds
> > > >>
> > > >>>> didn't work out. I get a "shrinkwrapped" (as the wiki
> > called it)
> > > >>>> collision model out of studiomdl.
> > > >>>>
> > > >>>> I then tried exporting the phys smd as several phys smds, each
> > > >>>> containing a piece of the model positioned from the
> > origin in the
> > > >>>> right place. So I exported a stairs_floor_phys.smd,
> > > >>>> stairs_toprail_phys.smd etc and then changed the qc
> > file to this:
> > > >>>>
> > > >>>> $modelname "map/walls/floor_stairs.mdl"
> > > >>>> $body "floor_stairs" "floor_stairs_ref.smd"
> > > >>>> $surfaceprop concrete
> > > >>>> $cdmaterials "models/map/walls/1/"
> > > >>>> $sequence idle "floor_stairs_idle.smd" loop fps 15 $scale 1.0
> > > >>>> $collisionmodel    "floor_stairs_floor_phys.smd"
> > > >>>> {
> > > >>>>     $concave
> > > >>>> }
> > > >>>> $collisionmodel    "floor_stairs_toprail_phys.smd"
> > > >>>> {
> > > >>>>     $concave
> > > >>>> }
> > > >>>> $collisionmodel    "floor_stairs_bottomrail_phys.smd"
> > > >>>> {
> > > >>>>     $concave
> > > >>>> }
> > > >>>> $collisionmodel    "floor_stairs_stairs_phys.smd"
> > > >>>> {
> > > >>>>     $concave
> > > >>>> }
> > > >>>> $staticprop
> > > >>>>
> > > >>>> This didn't work out well either. Only the stairs
> > seemed to get a
> > > >>>> collision mesh and it was funky (some of the stairs worked like
> > > >>>> stairs, others had holes in the mesh at random places (my
> > > >>>>
> > > >> grenades
> > > >>
> > > >>>> would go through to the
> > > >>>> floor) and others were just covered by a flat plane type
> > > >>>>
> > > >> collision
> > > >>
> > > >>>> mesh.
> > > >>>>
> > > >>>> What is the right way to go about these kinds of meshes? Any
> > > >>>> pointers would be appreciated. Tutorials I have seen
> > > >>>>
> > > >> online always
> > > >>
> > > >>>> work with very simple props like a barrel etc.
> > > >>>>
> > > >>>> Thanks,
> > > >>>> Aditya
> > > >>>>
> > > >>>> --
> > > >>>> http://www.pixelfaction.com
> > > >>>> AIM:ApeWithABrain
> > > >>>> _______________________________________________
> > > >>>> To unsubscribe, edit your list preferences, or view the list
> > > >>>> archives, please visit:
> > > >>>> http://list.valvesoftware.com/mailman/listinfo/hlcoders
> > > >>>>
> > > >>>>
> > > >>>>
> > > >>> _______________________________________________
> > > >>> To unsubscribe, edit your list preferences, or view the
> > > >>>
> > > >> list archives,
> > > >>
> > > >>> please visit:
> > > >>> http://list.valvesoftware.com/mailman/listinfo/hlcoders
> > > >>>
> > > >>>
> > > >>>
> > > >> --
> > > >> http://www.pixelfaction.com
> > > >> AIM:ApeWithABrain
> > > >> _______________________________________________
> > > >> To unsubscribe, edit your list preferences, or view the list
> > > >> archives, please visit:
> > > >> http://list.valvesoftware.com/mailman/listinfo/hlcoders
> > > >>
> > > >>
> > > >>
> > > >
> > > > _______________________________________________
> > > > To unsubscribe, edit your list preferences, or view the
> > list archives,
> > > please visit:
> > > > http://list.valvesoftware.com/mailman/listinfo/hlcoders
> > > >
> > > >
> > > >
> > >
> > > _______________________________________________
> > > To unsubscribe, edit your list preferences, or view the
> > list archives,
> > > please visit:
> > > http://list.valvesoftware.com/mailman/listinfo/hlcoders
> > >
> > >
> >
> >
> > --
> > http://www.pixelfaction.com
> > AIM:ApeWithABrain
> > _______________________________________________
> > To unsubscribe, edit your list preferences, or view the list
> > archives, please visit:
> > http://list.valvesoftware.com/mailman/listinfo/hlcoders
> >
> >
>
> _______________________________________________
> To unsubscribe, edit your list preferences, or view the list archives,
> please visit:
> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>
>


-- 
http://www.pixelfaction.com
AIM:ApeWithABrain
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to