[Sidefx-houdini-list] random fur scale

Olex P hoknamahn at gmail.com
Wed Feb 13 04:49:26 EST 2008


Hey Ivan,
I completely agree with you concerning VEX and C++. Of course VEX has a
different architecture (and at the same time it allows to use advanced
things like point clouds) and give you speedups for free. It would be cool
to see one or two examples from SESI how to use multithreading to create
something like multithreaded version of AttribCreate SOP as fast as it could
be done with VEX.

On Feb 12, 2008 6:00 PM, Ivan DeWolf <ivan at martian-labs.com> wrote:

>
> exactly; that's why VEX is often faster than C++. In C++ you would
> probably use
> the FOR_ALL_GPOINTS() method on your GDP, and write legible, logical code.
> But the CPU prefers the SIMD execution order on arrays that the same code
> would
> be sent to it as, if it were written in VEX and then compiled and executed
> by
> that method. Far more efficient in the CPU, but far less logical to set
> your
> code up that way. So a programmer is much more likeley to use the
> simple-to-comprehend FOR_ALL_GPOINTS() in c++ than set up arrays and all
> the
> baggage that VEX handles automaticly.
>
> If your C++ code reads like VEX, the VEX is probably faster. If you're
> doing
> some clever algorithmic speedups or creating your own efficient data
> structures, (such as a tree for a raymarcher) than you can beat VEX.
>
> The point being, if you take some VEX code and simply port it to an HDK
> SOP, you
> will probably have just put a lot of effort into making your code run
> slower...
>
>
> Quoting Olex P <hoknamahn at gmail.com>:
>
> > Language doesn't matter (almost doesn't matter). The main speedups can
> give
> > difference in architecture and used algorithms. For example raymarching
> > written in Python using tree structures could be faster than C++
> raymarcher
> > without trees.
> >
> > On Feb 12, 2008 12:31 AM, Pablo Giménez <pablogipi at gmail.com> wrote:
> >
> > > 2008/2/12, Ivan DeWolf <ivan at martian-labs.com>:
> > > >
> > > >
> > > > actually, VEX usually executes faster than c++ code, unless you
> spend as
> > > > much
> > > > time optimizing your code as SESI did optimizing VEX. The SIMD
> > > > architecture
> > > > lines the data up niceley for the CPU, but it's a friggin nightmare
> to
> > > > think it
> > > > through as a human being.
> > >
> > >
> > > Good to know tha thge optimizer is so good, we can begin an old
> discussion
> > > about what is fastes shaders in a language shader (renderman/mantra)
> or in
> > > c++ (mentalray) ....
> > >
> > > the volumetric system in Houdini is actually wicked fast- I've written
> my
> > > > own in
> > > > VEX before and in c++. Both were a LOT slower. There's definiteley a
> ton
> > > > of
> > > > optimization going on in there, probably in the c++ code and how it
> uses
> > > > the
> > > > VEX you write...
> > >
> > >
> > > And yes the volumetric stuff is more times faster now with the new
> > > metaballs
> > > functions for VEX but still very very slow compared with soutions like
> > > Fume.
> > >
> > > Quoting Pablo Giménez <pablogipi at gmail.com>:
> > > >
> > > > > 2008/2/12, Fred Valleur <fred.valleur at gmail.com>:
> > > > > >
> > > > > > Hi,
> > > > > >
> > > > > > a CVex shader is called from a compiled  C++ dso (or dll on
> > > windows).
> > > > It
> > > > > > is
> > > > > > written in VEX and let you modify data used by the compiled
> plugin.
> > > It
> > > > > > offers great flexibility as you don't have to "hard-code"
> everything
> > > > in
> > > > > > C++.
> > > > > > The fur SOP/Geometry shader  is a good example to look at. The
> hair
> > > > > > generation and memory allocation is handled by the C++ plugin,
> but
> > > it
> > > > > > calls
> > > > > > two CVex Shaders that can modify hair/points attribute to change
> the
> > > > look
> > > > > > of
> > > > > > the fur.
> > > > >
> > > > >
> > > > > I am guessing here but ... maybe this can be used to speedup
> > > > volumetrics, do
> > > > > all the raymarching hard stuff in C++, more times faster than VEX,
> and
> > > > use
> > > > > VEX only to modify every step sample.
> > > > > The raymarching loop and some fancy adaptative step formula can be
> > > done
> > > > in
> > > > > c++, only guessing.
> > > > >
> > > > > This way, you can write your own kink/frizz funtions in VEX  and
> let
> > > the
> > > > C++
> > > > > > code handle the "low level" hair generation.
> > > > > >
> > > > > > Hope this makes it a bit clearer,
> > > > > >
> > > > > > Cheers,
> > > > > >
> > > > > > Fred.
> > > > > >
> > > > > > --
> > > > > > Frederic Valleur | LaMaison
> > > > > >
> > > > > >
> > > > > > >Hi guys,
> > > > > >
> > > > > > >Sorry to hijack. Could someone just quickly explain what a CVEX
> > > > shader
> > > > > > is?
> > > > > > >Not heard of this before. I take it it's different from a VEX
> > > shader?
> > > > Is
> > > > > > >is a compiled version? What situations would you use it for?
> > > > > >
> > > > > > >Thanks
> > > > > >
> > > > > > >Andy
> > > > > > _______________________________________________
> > > > > > Sidefx-houdini-list mailing list
> > > > > > Sidefx-houdini-list at sidefx.com
> > > > > >
> https://lists.sidefx.com:443/mailman/listinfo/sidefx-houdini-list
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > >
> > > > > Un saludo
> > > > > Best Regards
> > > > > Pablo Giménez
> > > > > _______________________________________________
> > > > > Sidefx-houdini-list mailing list
> > > > > Sidefx-houdini-list at sidefx.com
> > > > > https://lists.sidefx.com:443/mailman/listinfo/sidefx-houdini-list
> > > > >
> > > >
> > > >
> > > > -Ivan
> > > >
> > > > ---------------------------------------------------------
> > > > "Perfection is achieved when nothing else can be removed"
> > > > -Yvon Chouinard
> > > > _______________________________________________
> > > > Sidefx-houdini-list mailing list
> > > > Sidefx-houdini-list at sidefx.com
> > > > https://lists.sidefx.com:443/mailman/listinfo/sidefx-houdini-list
> > > >
> > >
> > >
> > >
> > > --
> > >
> > > Un saludo
> > > Best Regards
> > > Pablo Giménez
> > > _______________________________________________
> > > Sidefx-houdini-list mailing list
> > > Sidefx-houdini-list at sidefx.com
> > > https://lists.sidefx.com:443/mailman/listinfo/sidefx-houdini-list
> > >
> > _______________________________________________
> > Sidefx-houdini-list mailing list
> > Sidefx-houdini-list at sidefx.com
> > https://lists.sidefx.com:443/mailman/listinfo/sidefx-houdini-list
> >
>
>
> -Ivan
>
> ---------------------------------------------------------
> "Perfection is achieved when nothing else can be removed"
> -Yvon Chouinard
> _______________________________________________
> Sidefx-houdini-list mailing list
> Sidefx-houdini-list at sidefx.com
> https://lists.sidefx.com:443/mailman/listinfo/sidefx-houdini-list
>



More information about the Sidefx-houdini-list mailing list