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

