[Sidefx-houdini-list] random fur scale

Olex P hoknamahn at gmail.com
Wed Feb 13 06:55:34 EST 2008


Hi Pablo,

Arrays still an RFE :( And probably better to forget about complex data
structures in VEX unless you are ready to implement them as a DSO. What you
can do easily is just combine existing data types or use existing data types
in unusual way. For example you could easily implement arrays using point
clouds.

On Feb 13, 2008 10:44 AM, Pablo Giménez <pablogipi at gmail.com> wrote:

> 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
> _______________________________________________
> 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