Cool! Just what the doctor ordered.
Thx,
Mark
Found 436 posts.
Search results Show results as topic list.
Technical Discussion » HDK: threading FOR_ALL_GPOINTS
- xiondebra
- 543 posts
- Offline
Technical Discussion » mantra "clusterThis" procedural geometry DSO
- xiondebra
- 543 posts
- Offline
Greetings,
Update: Version 1.4.6 available at:
http://digitalcinemaarts.com/dev/clusterThis/index.html [digitalcinemaarts.com]
New features and fixes:
* Added geometry velocity blur.
The velocity motion blur now calls addVelocityBlurGeometry() and the deformation motion blur is calculated by clusterThis DSO as before (remember when using deformation blur you will be doubling the amount of geometry generated).
* Added volume instancing.
Simple volume instancing. I started creating extensive Voxel arrays but it became clear that would better executed in a separate project so the volume instanced is a single “volume object” per location generated.
* Added curve instancing.
A NURBS curve is created per incoming point, created from the points generated from the instancing loop.
(Not quite working yet, having issues with part of the curve remaining at world origin)
*Optimized attribute processing.
Cleaned up a bunch of the attribute creation and assignment code, will reduce overhead.
*Added motion blur pass for CVEX processing.
Added a loop for processing deformation motion blur geometry to the CVEX processing code.
*Changed parameter code to use proper functions.
Changed the import() function to the proper getFParm()/getIParm()/getSParm() functions.
*Added verbosity switch for console messages.
*Added randomness for when to instance of objects
There's now a control on the OTL to control the “probability” of an object being instanced.
*Using SYSsin() and SYScos () instead of std C functions.
*Optimized memory usage for CVEX processing, correct memory allocation for attributes and objects.
Now only the exact amount memory is allocated for the CVEX processing based ob geometry size and the user selected attributes to be sent to the CVEX processing engine.
*Added user selectable attributes for CVEX processing.
Allows the user to select which attributes to be sent to the CVEX engine so the VEX code you write will have those data available and only the memory required for that processing is allocated.
There's a number of tips and notes I need to compile that will be helpful for using this clustering tool, I'll post those soon. Much testing is in order now as there's a few odd things I can't figure out related to using the addProcedural() method (“deferred processing”), which I would think would have a number of benefits, doesn't seem the case. Please send any bug reports. And as always, use with caution, it's open source … m'kay?
Enjoy.
Mark
Update: Version 1.4.6 available at:
http://digitalcinemaarts.com/dev/clusterThis/index.html [digitalcinemaarts.com]
New features and fixes:
* Added geometry velocity blur.
The velocity motion blur now calls addVelocityBlurGeometry() and the deformation motion blur is calculated by clusterThis DSO as before (remember when using deformation blur you will be doubling the amount of geometry generated).
* Added volume instancing.
Simple volume instancing. I started creating extensive Voxel arrays but it became clear that would better executed in a separate project so the volume instanced is a single “volume object” per location generated.
* Added curve instancing.
A NURBS curve is created per incoming point, created from the points generated from the instancing loop.
(Not quite working yet, having issues with part of the curve remaining at world origin)
*Optimized attribute processing.
Cleaned up a bunch of the attribute creation and assignment code, will reduce overhead.
*Added motion blur pass for CVEX processing.
Added a loop for processing deformation motion blur geometry to the CVEX processing code.
*Changed parameter code to use proper functions.
Changed the import() function to the proper getFParm()/getIParm()/getSParm() functions.
*Added verbosity switch for console messages.
*Added randomness for when to instance of objects
There's now a control on the OTL to control the “probability” of an object being instanced.
*Using SYSsin() and SYScos () instead of std C functions.
*Optimized memory usage for CVEX processing, correct memory allocation for attributes and objects.
Now only the exact amount memory is allocated for the CVEX processing based ob geometry size and the user selected attributes to be sent to the CVEX processing engine.
*Added user selectable attributes for CVEX processing.
Allows the user to select which attributes to be sent to the CVEX engine so the VEX code you write will have those data available and only the memory required for that processing is allocated.
There's a number of tips and notes I need to compile that will be helpful for using this clustering tool, I'll post those soon. Much testing is in order now as there's a few odd things I can't figure out related to using the addProcedural() method (“deferred processing”), which I would think would have a number of benefits, doesn't seem the case. Please send any bug reports. And as always, use with caution, it's open source … m'kay?
Enjoy.
Mark
Houdini Indie and Apprentice » REAL FLOW HELP!!!, OR HELL
- xiondebra
- 543 posts
- Offline
nosferatu037
If you use mesh for realflow, try to use obj insted of BIN file
in export tab change from BIN to OBJ
and you will have a OBJ Seqeuance for RF
If you do that, you lose a lot of useful attributes from Real Flow that can be used in Houdini (not to mention the size of the OBJ files are much larger). The particle and mesh importers for Houdini are stable, (the SD file format still has 2 lingering bugs that are to be fixed next) so you shouldn't have any problems getting the data back into Houdini.
Mark
Houdini Indie and Apprentice » REAL FLOW HELP!!!, OR HELL
- xiondebra
- 543 posts
- Offline
i-550
Thanks anyway.
JM
Put the .dylib files (SOP_RF_Import.dylib & SOP_RF_Export.dylib) into your $HOME/houdini9.5/dso directory. That's it.
Mark
Houdini Lounge » Writing nodes/operators in Houdini
- xiondebra
- 543 posts
- Offline
Houdini Lounge » mantra render farm service
- xiondebra
- 543 posts
- Offline
Hi there,
We (Digital Cinema Arts) will be opening a training center in Vancouver, B.C. soon and as part of our teaching environment we'll be providing our students access to a render/simulation farm, queue manager, asset control/version manager, shot tools, etc. and our primary render engine will be mantra, though we'll also have 3Delight and mental ray eventually as well.
So, while in the process of flushing out our business plan, the question has arisen a few times if it makes sense to offer mantra rendering services to commercial/vfx clients as well. We've always focused on education needs but considering the changes in the economy, and the CG biz in overall, maybe it makes sense to explore that market … we're clearly not sure, thus I'd like to pose the question to the general Houdini community:
If there was a remote rendering service offering mantra, would you see a need for that service in your business model?
Thanks!
Mark
We (Digital Cinema Arts) will be opening a training center in Vancouver, B.C. soon and as part of our teaching environment we'll be providing our students access to a render/simulation farm, queue manager, asset control/version manager, shot tools, etc. and our primary render engine will be mantra, though we'll also have 3Delight and mental ray eventually as well.
So, while in the process of flushing out our business plan, the question has arisen a few times if it makes sense to offer mantra rendering services to commercial/vfx clients as well. We've always focused on education needs but considering the changes in the economy, and the CG biz in overall, maybe it makes sense to explore that market … we're clearly not sure, thus I'd like to pose the question to the general Houdini community:
If there was a remote rendering service offering mantra, would you see a need for that service in your business model?
Thanks!
Mark
Technical Discussion » mantra "clusterThis" procedural geometry DSO
- xiondebra
- 543 posts
- Offline
Hello,
OK, I have a better mechanism for the CVEX support, and added the velocity based motion blur for point instancing.
Notes:
1) For point instancing P, as well as v, N, Cd, Alpha and pscale are passed to the VEX engine and returned; id is passed in too but not returned. Therefore you can alter any attribute including the point's position.
2) For primitive, metaball and file instancing P is not sent & returned to the VEX engine, (this is because I'm dealing with primitive attributes as opposed to point attributes). I need to figure out a way to handle this, because there can be differing array sizes needed for different types of primitives.
3) For metaball instancing the weight attribute is passed to VEX and returned.
4) The motion blur for point instancing is now calling addVelocityBlurGeometry() instead of using deformation blur. So, as usual, the velocity vectors and shutter time will determine blur.
After working with the CVEX API, it's got some serious promise for all kinds of applications, very nice to have this available in the HDK! I'm thinking that there could be a few places in this DSO that could take advantage of it, e.g. pre-processing incoming geo, processing the instanced geo (as is done now), and further processing of the motion blur copy of geo required for deformation blur. It could be used for filtering and attribute blending as well, not to mention the processing that could be applied to instanced volume primitives. Coolio!
http://www.digitalcinemaarts.com/dev/clusterThis/index.html [digitalcinemaarts.com]
Have fun.
Mark
P.S. The example file is unfortunately a .hipnc file, my apologies, this will be remedied soon.
OK, I have a better mechanism for the CVEX support, and added the velocity based motion blur for point instancing.
Notes:
1) For point instancing P, as well as v, N, Cd, Alpha and pscale are passed to the VEX engine and returned; id is passed in too but not returned. Therefore you can alter any attribute including the point's position.
2) For primitive, metaball and file instancing P is not sent & returned to the VEX engine, (this is because I'm dealing with primitive attributes as opposed to point attributes). I need to figure out a way to handle this, because there can be differing array sizes needed for different types of primitives.
3) For metaball instancing the weight attribute is passed to VEX and returned.
4) The motion blur for point instancing is now calling addVelocityBlurGeometry() instead of using deformation blur. So, as usual, the velocity vectors and shutter time will determine blur.
After working with the CVEX API, it's got some serious promise for all kinds of applications, very nice to have this available in the HDK! I'm thinking that there could be a few places in this DSO that could take advantage of it, e.g. pre-processing incoming geo, processing the instanced geo (as is done now), and further processing of the motion blur copy of geo required for deformation blur. It could be used for filtering and attribute blending as well, not to mention the processing that could be applied to instanced volume primitives. Coolio!
http://www.digitalcinemaarts.com/dev/clusterThis/index.html [digitalcinemaarts.com]
Have fun.
Mark
P.S. The example file is unfortunately a .hipnc file, my apologies, this will be remedied soon.
Technical Discussion » mantra "clusterThis" procedural geometry DSO
- xiondebra
- 543 posts
- Offline
ykcosmoNo, not quite yet. I will have volume primitive instancing implemented in the next version, sometime over the next month. I wanted to work out the rest of the CVEX idea and am releasing that version this evening.
Could I render the “volume sprite” with cluster this now?
instance the volume objects onto particles.
Mark
Technical Discussion » mantra "clusterThis" procedural geometry DSO
- xiondebra
- 543 posts
- Offline
Technical Discussion » mantra "clusterThis" procedural geometry DSO
- xiondebra
- 543 posts
- Offline
Hi John,
I think it's because the DSO needs to be in a location that Houdini doesn't source at startup ($HOME/houdini9.5/dso/mantra).
Try moving it to the above location (mantra looks there by default) and see if that fixes it.
Sorry about all the warning when compiling, I had a bunch of unused vars hanging on that will be used later when I get more extensive CVEX processing.
I'll check back later today to see if it's working OK for you, I am sick in bed with a damn cold. YUCK! SNEEZE! COUGH!
Mark
I think it's because the DSO needs to be in a location that Houdini doesn't source at startup ($HOME/houdini9.5/dso/mantra).
Try moving it to the above location (mantra looks there by default) and see if that fixes it.
Sorry about all the warning when compiling, I had a bunch of unused vars hanging on that will be used later when I get more extensive CVEX processing.
I'll check back later today to see if it's working OK for you, I am sick in bed with a damn cold. YUCK! SNEEZE! COUGH!
Mark
Technical Discussion » mantra "clusterThis" procedural geometry DSO
- xiondebra
- 543 posts
- Offline
Greetings Earthlings,
New version (1.4.4) available:
http://digitalcinemaarts.com/dev/clusterThis/index.html [digitalcinemaarts.com]
* Added an optimization for when mantra generates deep shadow maps. The DSO has an option to write the instanced data to a temp file which is then read for each subsequent call from mantra. This is only available for the “generate all the geometry at once” method, since in the deferred instancing mode the geo instancing is controlled by mantra.
* Added simple CVEX processing for the instanced geometry. Point positions of the instanced geometry is passed to the VEX engine for further processing.
Notes:
* CVEX: Presently the CVEX hook is just a simple call passing only point positions into the VEX code. The arrays that are used to call the CVEX code is currently a static array as this was a “proof of concept” test for the project. I need to put a little thought into the most efficient way to dynamically build the arrays to pass to the VEX code so as many attributes as desired to be processed in VEX can quickly be assembled and shipped off for some SIMD goodness. This will be coming along quickly as there's much to be gained by leveraging CVEX at render time.
* Deep Shadow passes: To optimize the process of generating deep shadow maps, the user can now choose to have a temporary geometry cache file stored which is then read by the DSO for each additional deep shadow map and the final pass that mantra calls before starting to render. You may also choose to not delete the file in case you would like to use the instanced geometry later in your pipeline.
From Mark Elendt regarding why mantra calls a geo procedural for each light that gens a deep shad map:
“Consider generating an iso-surface. One light
really close to the iso surface, the other really far away. If you
generate a single piece of geometry for both views, then you'll end up
with either way way way too much detail or not enough…
Since the geometry can change based on the view, then we need to
regenerate the geometry each time.”
* Motion Blur: The motion blur is implemented as a deformation blur, duplicating the points and then moving them. For now the velocity based motion blur has to wait. I'm thinking that there should be an option to move the points with CVEX code so the user can adjust the motion blur in any sort of way they would like.
From Mark Elendt:
“That's a little tricky….
Right now, duplicate your geometry, then move one piece based on the velocity attribute.”
Here's the current method for displacing the duplicated geometry to create motion blur for mantra:
myPointAttributes.myMBPos = myPointAttributes.myNewPos - myPointAttributes.v.x();
myPointAttributes.myMBPos = myPointAttributes.myNewPos - myPointAttributes.v.y();
myPointAttributes.myMBPos = myPointAttributes.myNewPos - myPointAttributes.v.z();
The example file shows a few ways of how to use the DSO but because of some pesky license problems, I'm presently not able to save a non-NC hip file (don't want to distribute a .hipnc file); shouldn't be too much longer, than I'll have more examples using the CVEX feature.
Next pass I hope to have better CVEX code, the curve instancing, maybe true volume instancing (though you can currently instance meta balls and render them as volumes), a lot more examples, a few pretty pictures, and …
It time for a cleanup/modular dissection and code review … :roll:
Remember to be sure to replace the OTL as well as the DSO/DLL when upgrading.
Enjoy,
Mark
New version (1.4.4) available:
http://digitalcinemaarts.com/dev/clusterThis/index.html [digitalcinemaarts.com]
* Added an optimization for when mantra generates deep shadow maps. The DSO has an option to write the instanced data to a temp file which is then read for each subsequent call from mantra. This is only available for the “generate all the geometry at once” method, since in the deferred instancing mode the geo instancing is controlled by mantra.
* Added simple CVEX processing for the instanced geometry. Point positions of the instanced geometry is passed to the VEX engine for further processing.
Notes:
* CVEX: Presently the CVEX hook is just a simple call passing only point positions into the VEX code. The arrays that are used to call the CVEX code is currently a static array as this was a “proof of concept” test for the project. I need to put a little thought into the most efficient way to dynamically build the arrays to pass to the VEX code so as many attributes as desired to be processed in VEX can quickly be assembled and shipped off for some SIMD goodness. This will be coming along quickly as there's much to be gained by leveraging CVEX at render time.
* Deep Shadow passes: To optimize the process of generating deep shadow maps, the user can now choose to have a temporary geometry cache file stored which is then read by the DSO for each additional deep shadow map and the final pass that mantra calls before starting to render. You may also choose to not delete the file in case you would like to use the instanced geometry later in your pipeline.
From Mark Elendt regarding why mantra calls a geo procedural for each light that gens a deep shad map:
“Consider generating an iso-surface. One light
really close to the iso surface, the other really far away. If you
generate a single piece of geometry for both views, then you'll end up
with either way way way too much detail or not enough…
Since the geometry can change based on the view, then we need to
regenerate the geometry each time.”
* Motion Blur: The motion blur is implemented as a deformation blur, duplicating the points and then moving them. For now the velocity based motion blur has to wait. I'm thinking that there should be an option to move the points with CVEX code so the user can adjust the motion blur in any sort of way they would like.
From Mark Elendt:
“That's a little tricky….
Right now, duplicate your geometry, then move one piece based on the velocity attribute.”
Here's the current method for displacing the duplicated geometry to create motion blur for mantra:
myPointAttributes.myMBPos = myPointAttributes.myNewPos - myPointAttributes.v.x();
myPointAttributes.myMBPos = myPointAttributes.myNewPos - myPointAttributes.v.y();
myPointAttributes.myMBPos = myPointAttributes.myNewPos - myPointAttributes.v.z();
The example file shows a few ways of how to use the DSO but because of some pesky license problems, I'm presently not able to save a non-NC hip file (don't want to distribute a .hipnc file); shouldn't be too much longer, than I'll have more examples using the CVEX feature.
Next pass I hope to have better CVEX code, the curve instancing, maybe true volume instancing (though you can currently instance meta balls and render them as volumes), a lot more examples, a few pretty pictures, and …
It time for a cleanup/modular dissection and code review … :roll:
Remember to be sure to replace the OTL as well as the DSO/DLL when upgrading.
Enjoy,
Mark
Houdini Indie and Apprentice » About Houdini Particle work
- xiondebra
- 543 posts
- Offline
SYmek
I was able to easily render 40.000.000 of particles with Mark's dso. The only problem is that in current stage there isn't much control on these particles. I hope Mark will be able to push development further soon, specially cvex support would be awesome.
Greetings,
I just saw this thread, and yes, I'll be working on this again next week.
The biggest problem I've had has been the noise functions, I'm using a simple noise generator from the HDK. With the CVEX calls, one of the benefits will be much more control of attributes/noise. Plus, some of my math is questionable, but that will get ironed out too.
Plus I want to implement “Z slicing” so you generate layers of instances and be able to create all that much more detail after comping the layers together.
Mark
Houdini Indie and Apprentice » export .mdd with houdini apprentice HD?
- xiondebra
- 543 posts
- Offline
Technical Discussion » MDD File format
- xiondebra
- 543 posts
- Offline
Greetings,
Is the MDD file format ROP/SOP that ships with Houdini support the Point Oven MDD file format as specified here?
http://www.ef9.com/ef9/PO1.5/Maya/PointOven_maya.html [ef9.com]
'cause I wrote a MDD Importer/Exporter SOP a few months ago and there's a conflict with the two formats:
http://digitalcinemaarts.com/dev/SOP_MDD/ [digitalcinemaarts.com]
Maybe the format has changed since I wrote mine?
Thanks!
Mark
Is the MDD file format ROP/SOP that ships with Houdini support the Point Oven MDD file format as specified here?
http://www.ef9.com/ef9/PO1.5/Maya/PointOven_maya.html [ef9.com]
'cause I wrote a MDD Importer/Exporter SOP a few months ago and there's a conflict with the two formats:
http://digitalcinemaarts.com/dev/SOP_MDD/ [digitalcinemaarts.com]
Maybe the format has changed since I wrote mine?
Thanks!
Mark
Houdini Lounge » Real Flow-houdini Sops Update - Mac OSX
- xiondebra
- 543 posts
- Offline
Hello,
Mac OSX support now for Real Flow plugins:
http://www.digitalcinemaarts.com/dev/real_flow/download.html [digitalcinemaarts.com]
Ma
Mac OSX support now for Real Flow plugins:
http://www.digitalcinemaarts.com/dev/real_flow/download.html [digitalcinemaarts.com]
Ma
Technical Discussion » mantra "clusterThis" procedural geometry DSO
- xiondebra
- 543 posts
- Offline
Hola~
New version (1.3.7) available:
http://digitalcinemaarts.com/dev/clusterThis/index.html [digitalcinemaarts.com]
Added point instancing, fixed the file instancing and implemented shader point assignment if “vm”surface“ attribute is present in the incoming geometry (in deferred instancing mode). For the life of me I can't figure out how to get point based ”vm_surface" attribute with the Material SOP, that's why the Shader SOP is still in the example file.
The example file has a handful of takes for various examples.
Be sure to replace the OTL as well as the DSO/DLL when upgrading.
Take care,
Mark
New version (1.3.7) available:
http://digitalcinemaarts.com/dev/clusterThis/index.html [digitalcinemaarts.com]
Added point instancing, fixed the file instancing and implemented shader point assignment if “vm”surface“ attribute is present in the incoming geometry (in deferred instancing mode). For the life of me I can't figure out how to get point based ”vm_surface" attribute with the Material SOP, that's why the Shader SOP is still in the example file.
The example file has a handful of takes for various examples.
Be sure to replace the OTL as well as the DSO/DLL when upgrading.
Take care,
Mark
Technical Discussion » How to "clean" the transforms of a gdp
- xiondebra
- 543 posts
- Offline
Edward (AI) answered my question on odforce:
***********
In general, you can't because when you're transforming the geometry, you are modifying the point positions directly. So you have to decide what you want the “rest” position to be and transform it again to that.
***********
Coolness!
Mark
***********
In general, you can't because when you're transforming the geometry, you are modifying the point positions directly. So you have to decide what you want the “rest” position to be and transform it again to that.
***********
Coolness!
Mark
Technical Discussion » How to "clean" the transforms of a gdp
- xiondebra
- 543 posts
- Offline
Yea, that's what I thought too, and when looking over the various methods in GU_Detail & GEO_Detail it appears there's no particular method to do such an operation, so I assumed as well it wasn't needed.
Still trying a few different approaches, I think I must be missing something else.
I'll post an example if I can't resolve this today.
Mark
Still trying a few different approaches, I think I must be missing something else.
I'll post an example if I can't resolve this today.
Mark
Technical Discussion » How to "clean" the transforms of a gdp
- xiondebra
- 543 posts
- Offline
Hello,
How do you “clean” or reset a gdp (GEO_Detail *gdp) of any previous transformations from calling gdp->transform() ?
I can't find anything in the docs and I've tried something like:
UT_Matrix4 xform(1.0);
xform.identity();
gdp->transform(xform);
But no luck, the transforms continue to accumulate every time I transform the gdp to a new location.
Thanks!
Mark
How do you “clean” or reset a gdp (GEO_Detail *gdp) of any previous transformations from calling gdp->transform() ?
I can't find anything in the docs and I've tried something like:
UT_Matrix4 xform(1.0);
xform.identity();
gdp->transform(xform);
But no luck, the transforms continue to accumulate every time I transform the gdp to a new location.
Thanks!
Mark
Technical Discussion » mantra "clusterThis" procedural geometry DSO
- xiondebra
- 543 posts
- Offline
New version available:
Now has metaball instancing (which you can also use to render volumes), simple deformation motion blur, a few odds and ends. The file instancing will kind of work, didn't have to finish everything for it, will have it done in the next few days. The shader strings are still a problem, need to iron that out ASAP as well as the velocity motion blur. I'll have more docs/help/examples in the next release too.
Please report bugs.
Enjoy,
Mark
Now has metaball instancing (which you can also use to render volumes), simple deformation motion blur, a few odds and ends. The file instancing will kind of work, didn't have to finish everything for it, will have it done in the next few days. The shader strings are still a problem, need to iron that out ASAP as well as the velocity motion blur. I'll have more docs/help/examples in the next release too.
Please report bugs.
Enjoy,
Mark
Edited by - Nov. 18, 2008 22:13:38
-
- Quick Links