Thanks for the quick response. I think I have a path forward now.

-Jay

On Thu, Mar 31, 2011 at 1:53 PM, brlcad <[email protected]> wrote:

>
> On Mar 31, 2011, at 01:10 PM, Jay Carlton <[email protected]> wrote:
>
> Hi,
>
> Is there an easy way to define multiple sets of colors & shaders for a
> single .g file? For example, I might have one color scheme for materials,
> another for major assemblies, and a third for density. I'm thinking about
> defining custom region properties to key into each color map to and writing
> a Tcl function to traverse the regions and call comb_color, but I wondered
> if someone has solved this problem already.
>  <https://lists.sourceforge.net/lists/listinfo/brlcad-users>
>
>
> Jay,
>
> There is a way, but whether you consider it easy depends on how your
> geometry is already structured.  First off, you can define color tables that
> associate to ranges of region id numbers.  You can define multiple color
> tables, but you'd have to manually toggle which one is active by setting the
> "regionid_colortable" attribute on the _GLOBAL object.
>
> That won't, however, let you specify different shaders or separate material
> properties.  So forget everything I just said about color tables.  In order
> to manage separate shaders, you have to define a separate assembly hierarchy
> (minimally just one combination object) for each set of attributes.
>
> The way to do this is basically take your model, comprised of various
> groups, regions, and primitives.  Create a shallow copy of your top-level
> object (e.g. "cp gray_tank green_tank").  For each custom component above
> the region level, either create a copy or add an intermediate combination
> and set your properties on that object.  For example, I want my green_tank
> to be green but want the wheels to be black.  I already made a copy of
> green_tank, so I can set color on that object to green (mater green_tank).
>  Next, swap out the wheels (cp wheels green_wheels ; rm tank wheels ; mater
> green_wheels ; g tank green_wheels).  Now I have a gray_tank and a
> green_tank with separate shaders, separate colors, separate material
> properties, but with the same underlying geometry including region ids.
>
> Note that a technique similar to this is often done for reports or other
> visualizations where a copy of the top-level object is made and  a shader is
> only applied to that top-level copy.  You can set an override flag that will
> make that shader apply to all objects in the hierarchy underneath.  Simple
> way to turn a whole tank into glass or add a cutaway view.
>
> Cheers!
> Sean
>
>
> ------------------------------------------------------------------------------
> Create and publish websites with WebMatrix
> Use the most popular FREE web apps or write code yourself;
> WebMatrix provides all the features you need to develop and
> publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
>
> _______________________________________________
> BRL-CAD Users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/brlcad-users
>
>
------------------------------------------------------------------------------
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself; 
WebMatrix provides all the features you need to develop and 
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
_______________________________________________
BRL-CAD Users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-users

Reply via email to