[Sidefx-houdini-list] random fur scale

Pablo Giménez pablogipi at gmail.com
Wed Feb 13 05:44:59 EST 2008


Thanks for the info Ivan.
Quite interesting, I have always suppose that c++ could be better to VEX
because is in a lower level, but knowing the the execution speed is quite
similar is great because I do almost all my stuff in VEX rather than C++.
And what about to create comples data structures in VEX? Maybe is not a
little weak in tis are. I don't remember now but can you in VEX create
arrays of any number of elements?

2008/2/12, Ivan DeWolf <ivan at martian-labs.com>:
>
>
> 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
>



-- 

Un saludo
Best Regards
Pablo Giménez



More information about the Sidefx-houdini-list mailing list