Check the Properties->Statistic Tab of Mantra ROP. Switch “Verbose” level for 1 to see basic info. You will have two numbers, something like:
Render Time: 0.937u 3.984s Memory: 23.13 MB of 26.66 MB arena size
u - is a user time (read mantra)
s - is a system time (read time of Windows/Linux to do their job launching your render)
cheers,
sy.
Found 1209 posts.
Search results Show results as topic list.
Houdini Indie and Apprentice » Where I can see the render time for mantra rendering ?
- symek
- 1390 posts
- Offline
Technical Discussion » Error: Adding a Particle SOP to an another SOP for animation
- symek
- 1390 posts
- Offline
Ignore it. This is not an Error but Warning. It is caused by the fact that you merge two geometries with a different sets of attributes, so Houdini has to initialise some attributes in unpopulated parts.
If attributes exist in geometry they have to be present on *all entities of its kind (points, vertices, polygon etc). If you merge particles that posses velocity attribute with a static grid, Houdini will have to add velocity attribute to a grid (probably of value 0).
The problem is that it is possible that attribute's values initialised by Houdini won't fit your expectations. That is way the above Warning.
hope this help,
sy.
If attributes exist in geometry they have to be present on *all entities of its kind (points, vertices, polygon etc). If you merge particles that posses velocity attribute with a static grid, Houdini will have to add velocity attribute to a grid (probably of value 0).
The problem is that it is possible that attribute's values initialised by Houdini won't fit your expectations. That is way the above Warning.
hope this help,
sy.
Technical Discussion » remap attribute values
- symek
- 1390 posts
- Offline
In python this would be like this:
points = hou.pwd().geometry().points()
for item in range(len(points)):
attr = points.attribValue(“attr”)
attr_p = points.attribValue(“attr”)
remapped = points.attribValue(“remapped”)
if attr != attr_p:
points.setAttribValue(“remapped”, remapped + 1)
else:
points.setAttribValue(“remapped”, remapped)
It assumes an existence of two point's attributes: attr and remapped. Remapped counts changes in attrs.
Theoretically this code is perfectly repeatable in VEX, but for me it doesn't work. Perhaps due to the SIMD nature, or I just did stupid mistake:
sop
remap()
{
float attr;
float attr_p;
float remapped;
import(“attr”, attr, 0);
import(“attr”, attr_p, 0, ptnum - 1);
import(“remapped”, remapped, 0, ptnum -1 );
if ( attr != attr_p ) {
addattribute(“remapped”, remapped + 1);
}
else {
addattribute(“remapped”, remapped);
}
}
hope this help,
sy.
points = hou.pwd().geometry().points()
for item in range(len(points)):
attr = points.attribValue(“attr”)
attr_p = points.attribValue(“attr”)
remapped = points.attribValue(“remapped”)
if attr != attr_p:
points.setAttribValue(“remapped”, remapped + 1)
else:
points.setAttribValue(“remapped”, remapped)
It assumes an existence of two point's attributes: attr and remapped. Remapped counts changes in attrs.
Theoretically this code is perfectly repeatable in VEX, but for me it doesn't work. Perhaps due to the SIMD nature, or I just did stupid mistake:
sop
remap()
{
float attr;
float attr_p;
float remapped;
import(“attr”, attr, 0);
import(“attr”, attr_p, 0, ptnum - 1);
import(“remapped”, remapped, 0, ptnum -1 );
if ( attr != attr_p ) {
addattribute(“remapped”, remapped + 1);
}
else {
addattribute(“remapped”, remapped);
}
}
hope this help,
sy.
Technical Discussion » local variable $YMIN
- symek
- 1390 posts
- Offline
probbins
I haven't got the answer but you can use the local variable D_YMIN instead.
ha, ha, well, this starts to be funny Indeed, variables in Houdini can be tricky.
thanks probbins!
sy.
Technical Discussion » local variable $YMIN
- symek
- 1390 posts
- Offline
circusmonkey
Hi All ,
I am just looking for some more information as to why you can drop a transform sop and apply a -$YMIN to the Y transform and it will move say a box or other such object to its YMIN value. Yet when applied to say a platonic solid SOP's Y position/ transform value the object disappears.
I thought that the position data of the SOP would be a valid transform. Whats the difference between the position data on the platonic SOP and the position data on a transform SOP ?
$YMIN simply doesn't exist in Platonic SOP context, so it's evaluated as error. Platonic SOP is a digital asset. Jump inside and check that appending Transform SOP there works as expected.
So the problem comes from a way Houdini implements local variables. Sometime they are here sometimes not.
cheers,
sy.
Houdini Lounge » Another SSS shader
- symek
- 1390 posts
- Offline
phrenzy84
well i had a play with it and followed all the instructions .
But no luck.
The object with the SSS material comes out white. Ajusting intensity of everything i cant get any other result.
That example file would come in might handy about now cause i cant find a single thing wrong.
Note that some older builds of Houdini 9.1 had a few VOPs broken (fitVOP for sure maybe something more). 9.1.81.7 is the one for instance. This shader won't work under such a build. Dive inside a VOP to check if some of its operators are marked red…
cheers,
sy.
Technical Discussion » simple question about "copy" from maya user
- symek
- 1390 posts
- Offline
=“newbiemark”
-Say I want to import an OBJ geometry from Maya.
-how would I go about getting it in (I'm think I should be using “merge”).
Simply use File SOP (or while being in SOP level press “=” to add geometry from disk). You can possibly resave *.obj file to *.bgeo for greater performance if your obj are big one.
hope this help,
sy.
PS Many answers on how to communicate Houdini with Maya or XSI you can find on odforce Wiki.
Houdini Indie and Apprentice » Simulation cache
- symek
- 1390 posts
- Offline
Sure. See the File DOP operator.
Change “Operation Mode” to “Read Files” and point it to your files previously saved on disk with the same operator set to “Write Files”.
So, basically you create simulation and finish a network with File DOP set to Write. Then you create another FileDOP and set it to Read.
voila!
sy.
Change “Operation Mode” to “Read Files” and point it to your files previously saved on disk with the same operator set to “Write Files”.
So, basically you create simulation and finish a network with File DOP set to Write. Then you create another FileDOP and set it to Read.
voila!
sy.
Houdini Indie and Apprentice » DOP simulation num CPU's
- symek
- 1390 posts
- Offline
DOPS aren't multi-threaded in general. Only view of algorithms involved by dynamic system can use more then one CPU's core. Collision detection perhaps, maybe something else. This is not an easy task and it's the biggest challenge nowadays I suppose - to make various simulation process more scalable.
As much as I know, there is no publicly available software that can do this in reasonable extend.
cheers,
sy.
As much as I know, there is no publicly available software that can do this in reasonable extend.
cheers,
sy.
Technical Discussion » render GI problem
- symek
- 1390 posts
- Offline
The problem are your various settings. Many of them are unnecessary touched.
Go back to defaults and start with increasing pixel sampling. Ray variance has no meaning for example in PBR.
The biggest problem in your scene is introduced by physically accurate light's attenuation and its power of 50. I don't know why this happening, perhaps it's even a bug. It seems that specular or reflection contributions ignore light's attenuation and stay very bright surrounded by a pixels from diffusion which are much darker. This is your grainy look. If you go back to default light settings everything goes back to normal, little grainy look.
Here you can start increasing pixel samples, photons amount and such.
Maybe someone else can write more how to tweak PBR settings.
good luck,
sy.
Go back to defaults and start with increasing pixel sampling. Ray variance has no meaning for example in PBR.
The biggest problem in your scene is introduced by physically accurate light's attenuation and its power of 50. I don't know why this happening, perhaps it's even a bug. It seems that specular or reflection contributions ignore light's attenuation and stay very bright surrounded by a pixels from diffusion which are much darker. This is your grainy look. If you go back to default light settings everything goes back to normal, little grainy look.
Here you can start increasing pixel samples, photons amount and such.
Maybe someone else can write more how to tweak PBR settings.
good luck,
sy.
Houdini Lounge » Houdini + MentalRay
- symek
- 1390 posts
- Offline
What build you're using? Do you have some fancy firewall setup? I had the same for a time on my WinXP machine (never on Linux one). This is a problem with Houdini <-> mPlay communication. I'm not sure how it was fixed. New build or I did a tweak somewhere. But this has nothing to do with mantra rendering speed.
Download newest production build. Try again. If won't help, post some details about your system. And don't lose your faith
cheers,
sy.
Download newest production build. Try again. If won't help, post some details about your system. And don't lose your faith
cheers,
sy.
Technical Discussion » Conditional statement in callback with python
- symek
- 1390 posts
- Offline
but you want to put this callback script in HDA definition, right?
If so, this should be put to PythonModule script section of HDA:
def switchDisplay(self):
def childrenFlags(self, val, type='bone'):
for child in self.children():
if child.type().name() == type:
child.setDisplayFlag(val)
if self.parm('switch').eval() == 0: childrenFlags(self, 0, ‘bone’)
else: childrenFlags(self, 1, ‘bone’)
Then in callback field of your parameter called ‘switch’ (like integer):
hou.pwd().hdaModule().switchDisplay(hou.pwd())
This switches display flags Off and On for all bones in subnetwork.
I think something has changed in callback area in 9.1 but I'm not sure what.
hope this help,
sy.
EDIT:
fixed type().name() method
If so, this should be put to PythonModule script section of HDA:
def switchDisplay(self):
def childrenFlags(self, val, type='bone'):
for child in self.children():
if child.type().name() == type:
child.setDisplayFlag(val)
if self.parm('switch').eval() == 0: childrenFlags(self, 0, ‘bone’)
else: childrenFlags(self, 1, ‘bone’)
Then in callback field of your parameter called ‘switch’ (like integer):
hou.pwd().hdaModule().switchDisplay(hou.pwd())
This switches display flags Off and On for all bones in subnetwork.
I think something has changed in callback area in 9.1 but I'm not sure what.
hope this help,
sy.
EDIT:
fixed type().name() method
Technical Discussion » What renderers come with Houdini
- symek
- 1390 posts
- Offline
No, it doesn't. Moreover support for these tools are disabled in Houdini Apprentice - what you can easily check on Apprentice Overview site.
You can render in Mantra and it's worth to try it!
cheers,
sy.
You can render in Mantra and it's worth to try it!
cheers,
sy.
Technical Discussion » Getting vop parameter value at specific time
- symek
- 1390 posts
- Offline
This is not so easy. Think for a minute what VOPS really are and when & where they are executed. Vops are just a front end to vex language. They build blocks of code. The code is send to mantra along with values taken from parameters evaluated in Houdini. Now mantra is not a time machine. It computes a state in small piece of time - your frame. Thus expressions in VOPs is not a best idea. I can't imagine for what specific purpose this could be helpful. You really can sue VopSOP as a expression machine - but again not related with time. In case of a time related issues CHOPs rock! And as to your question they are very fast! They can handle huge amount of data in a short time. Try!
cheers,
sy.
cheers,
sy.
Technical Discussion » Getting vop parameter value at specific time
- symek
- 1390 posts
- Offline
I'm not really sure what you're trying to do but definitely CHOPs are your friend. See rough example!
hope this help,
sy.
hope this help,
sy.
Houdini Lounge » Houdini + MentalRay
- symek
- 1390 posts
- Offline
I don`t know where is the problem … but …The problem is that you must really know well your renderer to work with it fast.
It stays true with any production render engine. It needs your attention.
I've just saw how mental was speed up 2x in hands of skillful guy just in moment we consider switching to Mantra (But whole setup is done in mental now so it's probably better for everyone).
It's scary to think how my scene in mantra could speed up in hands of JColdrick for example .
Leave mental, stick mantra and get familiar to it. You won't regret
cheers,
sy.
Technical Discussion » Getting vop parameter value at specific time
- symek
- 1390 posts
- Offline
If you have a channel in your parameter (and you have since your parameter is apparently animated) you can use one of expressions like: chf, cht.
See in texport: exhelp chf
sy.
See in texport: exhelp chf
sy.
Houdini Lounge » HDA investigation
- symek
- 1390 posts
- Offline
I definitely should look at it again (plus read Help(again) ) but in the same time I use HDA since their introduction. The only thing bothered me was a way Houdini deals with replacing scene content presents in many otls. What if my hda “constant” would be CHOP operator not shader? This was my concern.
Houdini 9 loads now any otls present in otl path. This didn't happen in 8 as I remember. I don't fill this is wrong, I was just surprised.
sy.
Houdini 9 loads now any otls present in otl path. This didn't happen in 8 as I remember. I don't fill this is wrong, I was just surprised.
sy.
Houdini Lounge » HDA investigation
- symek
- 1390 posts
- Offline
Ok, I have a stupid quiestion, so what? Can anybody explain me this, please?
I had quite a heavy scene, about 1GB textures on a few hundred of objects.
I applied (by script) one instance of HDA shader for every geometry. 1 HDA but 200 objects = 200 shaders.
At some point I realized that I made a mistake and I have to rewrite my shader. I open a new scene and made from scratch a new shader, I called it the same as old one and saved to another library in my OTL path.
Shader is completely different, only parameter's names match.
When I opened my scene, Houdini automagically loaded new otl, found shader of the same name (but made from scratch - this was not a version of old one) and applied new definition to my scene.
I thought that the work flow is that I, by my self, install OTL then choose new definition among available, then Houdini tries to match definitions. But Houdini turned to be smarter here than I thought.
I was happy with this but it completely surprised me at the same time. The new shader could be completely different entity. How Houdini knows that this was a new version - just by name?
thanks,
sy.
I had quite a heavy scene, about 1GB textures on a few hundred of objects.
I applied (by script) one instance of HDA shader for every geometry. 1 HDA but 200 objects = 200 shaders.
At some point I realized that I made a mistake and I have to rewrite my shader. I open a new scene and made from scratch a new shader, I called it the same as old one and saved to another library in my OTL path.
Shader is completely different, only parameter's names match.
When I opened my scene, Houdini automagically loaded new otl, found shader of the same name (but made from scratch - this was not a version of old one) and applied new definition to my scene.
I thought that the work flow is that I, by my self, install OTL then choose new definition among available, then Houdini tries to match definitions. But Houdini turned to be smarter here than I thought.
I was happy with this but it completely surprised me at the same time. The new shader could be completely different entity. How Houdini knows that this was a new version - just by name?
thanks,
sy.
Technical Discussion » questions about the new tuts....
- symek
- 1390 posts
- Offline
As to stamping textures:
http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&t=5433&highlight=stamps [sidefx.com]
http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&t=6667&highlight=stamp [sidefx.com]
just look for it.
cheers,
sy.
http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&t=5433&highlight=stamps [sidefx.com]
http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&t=6667&highlight=stamp [sidefx.com]
just look for it.
cheers,
sy.
-
- Quick Links