How does one save out a 32bit float exr from COPs, currently it does 16bit float, but for precision reasons I need full 32bit float.
thanks
Chris
Found 57 posts.
Search results Show results as topic list.
Technical Discussion » 32 bit float exr's from COPs
- chris wells
- 57 posts
- Offline
Technical Discussion » Normal direction to quaternion?
- chris wells
- 57 posts
- Offline
yeah but I don't understand how that would be better? If you unpack them and just use the geo, Octane can render it, but it's not instanced anymore taking up more ram. Am I missing something? And actually newest octane, seems to be able to render packed geo, it seems to just unpack it internally, as it uses the same number of polys/memory. But of course instanced is a lot less.
Technical Discussion » Normal direction to quaternion?
- chris wells
- 57 posts
- Offline
Hey Jerry, I don't understand what unpacking the packed geo directly adds? could you explain?
Thanks
Thanks
Technical Discussion » Normal direction to quaternion?
- chris wells
- 57 posts
- Offline
wow, I never would have figured that out, thanks so much! there's some gems in that wrangle I'll be trying to understand,
Technical Discussion » Normal direction to quaternion?
- chris wells
- 57 posts
- Offline
Thanks mestela, switching the order makes it so they are linked up, and their orientation is very close I don't know what I"m doing wrong that it's not exact, some parts are closer than others, it's so weird that it is close but not exact, I'm not putting in any values, so I would think that I either line them up and it's right or it's not, close but off doesn't make sense, but I am in over my head so who knows.
Technical Discussion » Normal direction to quaternion?
- chris wells
- 57 posts
- Offline
Thank you mestela, that has gotten me a lot closer, I'm still missing something,
I took the example that was on that forum, and essentially tried to make a test that worked,
do an attribute random, and randomize the N
then do a wrangle that sets the up vector, v@up = set(0,1,0);
then do a wrangle that has the example code:
matrix3 m = maketransform(@N,@up);
@orient = quaternion(m);
and that works, when I toggle off and on that last wrangle the angel of the copies stays the same, so it seems like I am correctly converting N to quaternion,
however on my scene, I do the same thing to set the up vector,
but then do a wrangle with:
matrix3 m = maketransform(@N,@up);
@orient = quaternion(m)+@orient;
thinking that adding the existing orient, to the new orient would line them up, and it's closeish, but not exact?
keep in mind I don't know anything about quaternions, so thought that must not be how you combine quaternions, so found qmultiply, and tried:
matrix3 m = maketransform(@N,@up);
@orient = qmultiply(quaternion(m), @orient);
well that is a lot closer… but not exact, also as you play through the sim, they aren't linked up to eachother, so I dont' know what to do at this point. how does one add 2 quaternions together?
Thanks
I took the example that was on that forum, and essentially tried to make a test that worked,
do an attribute random, and randomize the N
then do a wrangle that sets the up vector, v@up = set(0,1,0);
then do a wrangle that has the example code:
matrix3 m = maketransform(@N,@up);
@orient = quaternion(m);
and that works, when I toggle off and on that last wrangle the angel of the copies stays the same, so it seems like I am correctly converting N to quaternion,
however on my scene, I do the same thing to set the up vector,
but then do a wrangle with:
matrix3 m = maketransform(@N,@up);
@orient = quaternion(m)+@orient;
thinking that adding the existing orient, to the new orient would line them up, and it's closeish, but not exact?
keep in mind I don't know anything about quaternions, so thought that must not be how you combine quaternions, so found qmultiply, and tried:
matrix3 m = maketransform(@N,@up);
@orient = qmultiply(quaternion(m), @orient);
well that is a lot closer… but not exact, also as you play through the sim, they aren't linked up to eachother, so I dont' know what to do at this point. how does one add 2 quaternions together?
Thanks
Technical Discussion » Normal direction to quaternion?
- chris wells
- 57 posts
- Offline
I'm trying to come up with a way, where I can do a packed geo sim with instances, then turn those into instances that Octane can see.
so I scatter points, with random scales, and normals, and then copy an object to those points useing pack and instance. this goes into a DOP setup no problem.
Then I take an instance node, and bring in those points. I have to delete the pivot, and them object merge in the scale from the original points and wrangle those onto my dopimport points.
That all works, I have the same scaling as before, however the rotation doesn't match. the dopimport has an orient attribute, It seems like I need to add the rotation from the original normals, to the orient attribute. However it is a quaternion, and I can't for the life of me figure out how to go from normals direction to quaternion.
I've attached a simplified scene, maybe that will explain it better.
Thanks
Chris
so I scatter points, with random scales, and normals, and then copy an object to those points useing pack and instance. this goes into a DOP setup no problem.
Then I take an instance node, and bring in those points. I have to delete the pivot, and them object merge in the scale from the original points and wrangle those onto my dopimport points.
That all works, I have the same scaling as before, however the rotation doesn't match. the dopimport has an orient attribute, It seems like I need to add the rotation from the original normals, to the orient attribute. However it is a quaternion, and I can't for the life of me figure out how to go from normals direction to quaternion.
I've attached a simplified scene, maybe that will explain it better.
Thanks
Chris
Technical Discussion » Focus on object
- chris wells
- 57 posts
- Offline
this seems to work in 16, but I'm not sure it's the best way
distance(ch(“tx”),ch(“ty”),ch(“tz”),ch(“../CameraTarget/tx”),ch(“../CameraTarget/ty”),ch(“../CameraTarget/tz”))
Chris
distance(ch(“tx”),ch(“ty”),ch(“tz”),ch(“../CameraTarget/tx”),ch(“../CameraTarget/ty”),ch(“../CameraTarget/tz”))
Chris
Houdini Indie and Apprentice » hython for ROP's
- chris wells
- 57 posts
- Offline
So a couple of questions.
1. what licensing is used for rendering scenes with hython, I have a render controller I wrote. And can render my octane scenes on my workstation, but of course my workstation is all licensed for houdini indie and octane.
but if I try to do the same on a render node, it says no licenses could be found to run this application. I know I'll need another Octane license minimum, but would I need to get another houdini Indie license? my big picture goal would be render octane scenes on another machine. Currently I have two octane only nodes, that my workstation can grab to help render scenes, but that means my workstation also has to be rendering, which is less than ideal.
2. it seems like you can ‘render’ any ROP with hython, so is it possible to make a ROP that executes some SOP and batch it? I made a system back in my realflow days, pre-houdini that was super useful.
http://www.chriswellsfx.com/realflow.mp4 [www.chriswellsfx.com]
it essentially was a system that watched for the domain to finish siming a frame, and then would launch a script on another machine to do the secondary elements and meshing for that frame. the advantage being your total sim was always just a little bit longer than it was to do the main domain sim, essentially giving you meshing and secondaries for the same time, So that is my big picture goal with siming something like that. is hython the way to go, or is there a better way to do that?
Thanks
Chris
1. what licensing is used for rendering scenes with hython, I have a render controller I wrote. And can render my octane scenes on my workstation, but of course my workstation is all licensed for houdini indie and octane.
but if I try to do the same on a render node, it says no licenses could be found to run this application. I know I'll need another Octane license minimum, but would I need to get another houdini Indie license? my big picture goal would be render octane scenes on another machine. Currently I have two octane only nodes, that my workstation can grab to help render scenes, but that means my workstation also has to be rendering, which is less than ideal.
2. it seems like you can ‘render’ any ROP with hython, so is it possible to make a ROP that executes some SOP and batch it? I made a system back in my realflow days, pre-houdini that was super useful.
http://www.chriswellsfx.com/realflow.mp4 [www.chriswellsfx.com]
it essentially was a system that watched for the domain to finish siming a frame, and then would launch a script on another machine to do the secondary elements and meshing for that frame. the advantage being your total sim was always just a little bit longer than it was to do the main domain sim, essentially giving you meshing and secondaries for the same time, So that is my big picture goal with siming something like that. is hython the way to go, or is there a better way to do that?
Thanks
Chris
Houdini Indie and Apprentice » enabling 'OpenCL' in my pyrosolver causes my sim to fail...why?
- chris wells
- 57 posts
- Offline
try turning down the resolution of the sim and seeing if it still crashes, If it does you know you are running out of video ram.
Houdini Indie and Apprentice » OpenCL memory
- chris wells
- 57 posts
- Offline
ArtyeOh no question there are shots that are better to do in Turbulence, however, and this is a big however, Turbulence gives you very little control, and is an island inside lightwave, can't save out vdb, and you can't direct it nearly as well as you can in Houdini. it's very basic by comparison with Houdini, Not saying it's not great and hasn't got the job done for years, But there are things I can do in Houdini that just aren't possible in Turbulence, Big feeling sims, are easier to accomplish in Houdini,
Got to ask, why bother with Houdini if it's 10x faster in Turbulence?
If I could take the solver speed of Turbulence, and have it in Houdini with Houdini's control absolutely that would be great, also Turbulence 2 looks amazing, you can use multiple GPU's and they all take chunks adaptability allowing for huge sims. It's not out yet, so it's not a fair comparison, but it looks amazing for big size of sims.
http://on-demand.gputechconf.com/gtc/2015/video/S5611.html [on-demand.gputechconf.com]
check out 10 mins in. So that all being said, I have used TFD for years, And it does have some features I would like to have in Houdini, but If I had to spend the rest of my life with one, I would go Houdini,
Houdini Indie and Apprentice » OpenCL memory
- chris wells
- 57 posts
- Offline
OpenCL is faster if it can fit in GPU memory for me, I have a titanX so 12gigs and it's fast, so it seems worth it to use it, about %50 faster on the pyro sim I've been working on, However, that being said, Turbulence is about 10x faster with cuda on the same card vs cpu same system, so It seems like there is some room for improvement
I'll submit feature requests, and see what they say,
thanks
I'll submit feature requests, and see what they say,
thanks
Houdini Indie and Apprentice » vdb channels
- chris wells
- 57 posts
- Offline
Houdini Indie and Apprentice » OpenCL memory
- chris wells
- 57 posts
- Offline
thanks for the response, I'm more interested in how much vram it will use. I have a tendency to have gpu-z up all the time because gpu rendering, so I can see there how much vram a sim is using. I'd just like to have it so I can see total that will be used if the whole volume is used, so I can set the division size not to go over.
or have it jump to CPU when GPU ram is done.
with Turbulence, there are lots of things to change, to save ram, “don't use certain channels, or go slower but use less ram” which lets you get the biggest sim possible out of your system. With Houdini it kinda feels like click OpenCL and it will be faster until it runs out at which point you get problems. Really just guess work as far as I can tell, which seems not the houdini way
or have it jump to CPU when GPU ram is done.
with Turbulence, there are lots of things to change, to save ram, “don't use certain channels, or go slower but use less ram” which lets you get the biggest sim possible out of your system. With Houdini it kinda feels like click OpenCL and it will be faster until it runs out at which point you get problems. Really just guess work as far as I can tell, which seems not the houdini way
Edited by chris wells - Jan. 27, 2017 19:46:42
Houdini Indie and Apprentice » OpenCL memory
- chris wells
- 57 posts
- Offline
is there a way to see how much memory a sim will use? either system or gpu. Turbulence for example just shows you, with this voxel resolution you'll use max this much ram, which makes setting your division size easy to max out GPU ram.
also turbulence has a setting where once it runs out of GPU ram it switches to CPU, Is this possible. It seems like currently once you run out, the sim just errors out.
thanks
Chris
also turbulence has a setting where once it runs out of GPU ram it switches to CPU, Is this possible. It seems like currently once you run out, the sim just errors out.
thanks
Chris
Houdini Indie and Apprentice » vdb channels
- chris wells
- 57 posts
- Offline
so my vdb goes from
7mil density, 35 mil vel.x 35 mil vel.y 35 mil vel.z
to
7mil density, 7.5 mil vel.x 7.5 mil vel.y 7.5 mil vel.z
7mil density, 35 mil vel.x 35 mil vel.y 35 mil vel.z
to
7mil density, 7.5 mil vel.x 7.5 mil vel.y 7.5 mil vel.z
Houdini Indie and Apprentice » vdb channels
- chris wells
- 57 posts
- Offline
so I think I have this working.
it's simple but effective, you just take a volumevop, crunch the density, to make it essentially a hard edged mask, and then multiply that by the vel, that clears out the data outside of where the density is. and when you save it. file sizes go way down. 45% smaller, I would like it to expand a little the density, so the mask goes just outside the density, but I couldn't find a way to do that yet.
works pretty well for reducing vdb sizes. Honestly seems like something that would be super useful to alwasy do. if you just took the max of every other channel, temp, density whatever, and did the same thing to the vel channel it would save space.
let me know if anyone knows how to expand the density to make the muiltiply mask bigger, or if this is going to cause troubles down the road. But seems to me it just removes vel data that isn't near the density and not needed.
Thanks
Chris
it's simple but effective, you just take a volumevop, crunch the density, to make it essentially a hard edged mask, and then multiply that by the vel, that clears out the data outside of where the density is. and when you save it. file sizes go way down. 45% smaller, I would like it to expand a little the density, so the mask goes just outside the density, but I couldn't find a way to do that yet.
works pretty well for reducing vdb sizes. Honestly seems like something that would be super useful to alwasy do. if you just took the max of every other channel, temp, density whatever, and did the same thing to the vel channel it would save space.
let me know if anyone knows how to expand the density to make the muiltiply mask bigger, or if this is going to cause troubles down the road. But seems to me it just removes vel data that isn't near the density and not needed.
Thanks
Chris
Edited by chris wells - Jan. 26, 2017 15:12:34
Houdini Indie and Apprentice » vdb channels
- chris wells
- 57 posts
- Offline
Awesome the volume visualizer is what I was looking for, to show density, instead of vel.
I'm not explaining very well on the size thing. So looking deeper, it appears in my vdb I have.
7.4 million voxels of density, and 35 million voxels of vel.x 35 million of vel.y and 35 million of vel.z
I understand needing the 3 channels for vel. but is there any way to clip the vel channels by the density to make it so they aren't as big? I'm picturing some sort of dilating/eroding density out, inverting and then multiplying that by the vel channels to make sure there is no info out there that isn't used.
hopefully that makes more sense,
Thanks!
Chris
I'm not explaining very well on the size thing. So looking deeper, it appears in my vdb I have.
7.4 million voxels of density, and 35 million voxels of vel.x 35 million of vel.y and 35 million of vel.z
I understand needing the 3 channels for vel. but is there any way to clip the vel channels by the density to make it so they aren't as big? I'm picturing some sort of dilating/eroding density out, inverting and then multiplying that by the vel channels to make sure there is no info out there that isn't used.
hopefully that makes more sense,
Thanks!
Chris
Houdini Indie and Apprentice » vdb channels
- chris wells
- 57 posts
- Offline
I've been doing some testing, trying to do some speedups, once you have a pyro that is working well. However while testing I've ran into a couple of questions.
I deleted all the channels but vel and density. and saved out a vdb. at frame 75 the vdb was 3.5 gig, However I then deleted the vel channel and saved out a new vdb and the size of frame 75 was 92 meg. That is a huge difference, so why do the velocity channels take up so much space? 3/4 the channels. 39/40th of the data? or a velocity channel is 10x more data hungry than a density channel. my guess is the velocity channels are float 32 or something and the density is a 16bit int? Also there is velocity data in every voxel. Is there no way to have a cutoff where there is no density make it not have any velocity to make files smaller.
Then, and I know this must be simple but I can't figure it out, when I just do a geo, file and point it at the vdb. It defaults by showing the velocity channels. as in it's a cube of volume. How do I channel shuffle so I can see the density, I can delete the vel channels and then see the density channel. but I want to pick what channel is showing up in the viewport, and not sure why it deafults to vel instead of density.
Thanks
Chris
I deleted all the channels but vel and density. and saved out a vdb. at frame 75 the vdb was 3.5 gig, However I then deleted the vel channel and saved out a new vdb and the size of frame 75 was 92 meg. That is a huge difference, so why do the velocity channels take up so much space? 3/4 the channels. 39/40th of the data? or a velocity channel is 10x more data hungry than a density channel. my guess is the velocity channels are float 32 or something and the density is a 16bit int? Also there is velocity data in every voxel. Is there no way to have a cutoff where there is no density make it not have any velocity to make files smaller.
Then, and I know this must be simple but I can't figure it out, when I just do a geo, file and point it at the vdb. It defaults by showing the velocity channels. as in it's a cube of volume. How do I channel shuffle so I can see the density, I can delete the vel channels and then see the density channel. but I want to pick what channel is showing up in the viewport, and not sure why it deafults to vel instead of density.
Thanks
Chris
Houdini Indie and Apprentice » 'HFS' environment variable not set?
- chris wells
- 57 posts
- Offline
Thanks for the help everyone! That is working! That set PATH worked, and now it's working like I would expect.
I somehow was just not setting the PATH correctly before.
thanks again!
Chris
I somehow was just not setting the PATH correctly before.
thanks again!
Chris
-
- Quick Links