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

Reply via email to