It seems like you need to swap tangent vectors in cross node.
And use length of the transformed texture vector as displace amount and don't touch P in Displace node.
Found 20 posts.
Search results Show results as topic list.
Technical Discussion » vector displacement still artifacts
- bloomendale
- 20 posts
- Offline
Houdini Lounge » turning noise on in fluid source breaks particles
- bloomendale
- 20 posts
- Offline
Dive inside Fluid Source -> Points From Volume SOP -> Group SOP which groups particles inside sdf volume (raw_volume_by_sdf) and change “Iso surface” parameter from 0 to something like 0.0001
Technical Discussion » using vopsop to get rid of copysop
- bloomendale
- 20 posts
- Offline
tamte
@bloomendale -be careful about stripping of features you think are not necessary, just because it works on simple grid
foreach is not important in this simple case, but for example sami.tawil had in his original scene clustering turned on, so the piece ids will no longer match points and therefore some kind of reindexing or computing new points is needed
and since you stripped up-vector completely, your pieces will be flipping in cases beyond flat grid deforming in Y, so it's better to add some proper rotation computation, polyframe is just a mean to get tangent vector based on topology which can be used as up vector for cases like this
Absolutely. My example is only for initial setup.
another specifications - different setup)
Technical Discussion » using vopsop to get rid of copysop
- bloomendale
- 20 posts
- Offline
Actually you don't need foreach loop, polyframe sop (and hence up-vector), ray sop, sort sop…
Technical Discussion » Flip
- bloomendale
- 20 posts
- Offline
You loose your v attribute in vop pop. You have output from your IF subnetwork connected to particle velocity output. But IF subnet cooks only if it meets condition, and all other particles get 0.
Technical Discussion » Pop point clouds
- bloomendale
- 20 posts
- Offline
Because your pop merge pulls out particles always from Source POP. So they are just created and that's all.
It is not like you takes the state of the particles from previous frame, add only source POP from current frame and pop merge all these particles and use as pointcloud.
The problem with pops is that they are special kind of primitive and can't be used directly as points (and as pointcloud). So you can bring them to DOPS (or use Solver SOP which internally is dopnet) where they are internally converted to points and use these points from previous iteration as pointcloud.
It is not like you takes the state of the particles from previous frame, add only source POP from current frame and pop merge all these particles and use as pointcloud.
The problem with pops is that they are special kind of primitive and can't be used directly as points (and as pointcloud). So you can bring them to DOPS (or use Solver SOP which internally is dopnet) where they are internally converted to points and use these points from previous iteration as pointcloud.
Technical Discussion » is my computer too slow? (test my file).
- bloomendale
- 20 posts
- Offline
Technical Discussion » issue with rotation of partition with $CR
- bloomendale
- 20 posts
- Offline
1) I think it's better to transform template points and copy boxes onto them only at the end of the network.
2) Transform SOP applies transformations to the geometry as a whole, not per point/primitive.
So you can use point SOP to adjust Y coord - $TY+$CR
and modify one of the attribs copy SOP uses to orient geo on template points - orient, rot, N, up etc..
let's say you want to use N - then change it with something like
vector("“) * rotaxis($CR*50, ”")
in point SOP.
Or you can do the same in VOP SOP but faster.
2) Transform SOP applies transformations to the geometry as a whole, not per point/primitive.
So you can use point SOP to adjust Y coord - $TY+$CR
and modify one of the attribs copy SOP uses to orient geo on template points - orient, rot, N, up etc..
let's say you want to use N - then change it with something like
vector("“) * rotaxis($CR*50, ”")
in point SOP.
Or you can do the same in VOP SOP but faster.
Technical Discussion » Glued to moving statick object, then collision doesn't work
- bloomendale
- 20 posts
- Offline
I think it's something with Split Impulse feature of the bullet solver and glued objects.
You can increase Number of substeps in bullet solver to something like 50+ (better 100+).
Or disable Split impulse
Or put two bullet solvers - one for boxes and one for sticky object. This way you don't have to increase substeps and overall sim looks most believable.
I don't know why it happens though.
You can increase Number of substeps in bullet solver to something like 50+ (better 100+).
Or disable Split impulse
Or put two bullet solvers - one for boxes and one for sticky object. This way you don't have to increase substeps and overall sim looks most believable.
I don't know why it happens though.
Technical Discussion » Source Relationship VS H12 sourcing
- bloomendale
- 20 posts
- Offline
Hi.
I have problem sourcing velocity with new nodes (Fluid source SOP). It has only “Stamp points” mode and if i have for example Primitive Sphere (only 1 point at the center) or simple box (8 points) i don't get proper velocity volumes.
What is the right way for sourcing velocity from such primitives (or volumes)? I ended up scattering points, transforming them with initial geo and sourcing velocity from them.
On the other hand there is old way - use source relationships and enable them in solver. In this case i don't need even v attribute. All i need is change type to Point Velocity in Relationships tab of the solver and it somehow calculates proper field.
As i understand it is Gas Calculate under the hood, which uses index field of all the sources (all dyn. objects in source relationships) and for EVERY(?) voxel computes velocity. Am i right? Or how does it work?
I attached simple example (used source relationships).
How can i achive same result with new nodes (smoke follows movement of the box) without changing box object to add more points to sample vel field.
BIG thanks in advance.
I have problem sourcing velocity with new nodes (Fluid source SOP). It has only “Stamp points” mode and if i have for example Primitive Sphere (only 1 point at the center) or simple box (8 points) i don't get proper velocity volumes.
What is the right way for sourcing velocity from such primitives (or volumes)? I ended up scattering points, transforming them with initial geo and sourcing velocity from them.
On the other hand there is old way - use source relationships and enable them in solver. In this case i don't need even v attribute. All i need is change type to Point Velocity in Relationships tab of the solver and it somehow calculates proper field.
As i understand it is Gas Calculate under the hood, which uses index field of all the sources (all dyn. objects in source relationships) and for EVERY(?) voxel computes velocity. Am i right? Or how does it work?
I attached simple example (used source relationships).
How can i achive same result with new nodes (smoke follows movement of the box) without changing box object to add more points to sample vel field.
BIG thanks in advance.
Technical Discussion » Network flow. SOPs - DOPs.
- bloomendale
- 20 posts
- Offline
Thanks for detailed answer.
1) So pulling geometry data out to sops will not force dopnet to cook(recook) unless you advance timestep and dopnet just doesn't have data for that time.
2) As for using sopsolver vs sopnet in dopnet - it's at least twice slower. I don't know why.
Another reason why i'm asking all that is sopgeo, sopsolver creates some data on my dyn. objects, while sopnet isn't. It leads to more memory consumption and slower calculations.
So to calculate for example some vector to use as force on my dyn objects i can use sopsolver which creates new geometry data or adds attribute to default geometry data (it may be inefficient ) only at solve stage - so my rbd solver will solve force data from previous step only.
While using sopnet in dopnet i can import geometry data here - use point per object with vector attribute and then some force dop will pull out this data using point() expression. It works faster (2x+) but sometimes just errors out, i don't know why (it may be some kind of circular dependency - sopnet import data from dopnet and then dopnet uses result).
So the main question is about using sop solver or just sopnet (faster sopnet in dops.
For example several shelf tools uses sopnets, not sopsolvers - Make Breakable etc..
Big thanks in advance.
1) So pulling geometry data out to sops will not force dopnet to cook(recook) unless you advance timestep and dopnet just doesn't have data for that time.
2) As for using sopsolver vs sopnet in dopnet - it's at least twice slower. I don't know why.
Another reason why i'm asking all that is sopgeo, sopsolver creates some data on my dyn. objects, while sopnet isn't. It leads to more memory consumption and slower calculations.
So to calculate for example some vector to use as force on my dyn objects i can use sopsolver which creates new geometry data or adds attribute to default geometry data (it may be inefficient ) only at solve stage - so my rbd solver will solve force data from previous step only.
While using sopnet in dopnet i can import geometry data here - use point per object with vector attribute and then some force dop will pull out this data using point() expression. It works faster (2x+) but sometimes just errors out, i don't know why (it may be some kind of circular dependency - sopnet import data from dopnet and then dopnet uses result).
So the main question is about using sop solver or just sopnet (faster sopnet in dops.
For example several shelf tools uses sopnets, not sopsolvers - Make Breakable etc..
Big thanks in advance.
Technical Discussion » gravity expression
- bloomendale
- 20 posts
- Offline
Technical Discussion » Network flow. SOPs - DOPs.
- bloomendale
- 20 posts
- Offline
Technical Discussion » Network flow. SOPs - DOPs.
- bloomendale
- 20 posts
- Offline
Hi.
I have a problem understanding the order the nodes are executing. It is simple in SOPs - top to bottom, left to right. But what about several networks with links (fetch, import etc) to each other?
1) DOP Import SOP. Does it just import geometry from dyn. objects or all DOP network is being executed. I mean is it importing whatever geometry and position data already exist or does it push to run all DOP network and get the resulting data?
2) What is the proper way to use SOPs to calculate something for DOPs.
Let's say i have a sphere and a bunch of boxes. I need every box to follow one point of sphere. For this simple task i can use the same order of dyn objects as order of points in sphere so $OBJID == $PT or even pull that data from SOPs to new custom data on dyn. objects.
Then i can use expressions in Motion, RBD State, Force nodes to calculate vector and use it as velocity or force.
But what if i need some more complex calculations i can do in SOPs (VOP SOP for example). How and when should i bring it in?
I attached example, where “tforce” Sopnet inside Autodopnet is working just fine, finding the right force. But if i copy all these nodes to new Geometry node the same level as Autodopnet it's just stop working. I even Object merged the result back in tforce sopnet - it's not working.
Is there some rule of scope where i need all stuff be inside its “mother” network or something??
Hope someone could explain to me when this tforce sopnet is being executed, and what is the overall flow of the network.
Any info will be greatly appreciated.
p.s. There is problem sometimes where cubes are just stuck on random frame - i change solver rbd-bullet and back and it solves the problem, Is it bug or all my setup is just wrong?
I have a problem understanding the order the nodes are executing. It is simple in SOPs - top to bottom, left to right. But what about several networks with links (fetch, import etc) to each other?
1) DOP Import SOP. Does it just import geometry from dyn. objects or all DOP network is being executed. I mean is it importing whatever geometry and position data already exist or does it push to run all DOP network and get the resulting data?
2) What is the proper way to use SOPs to calculate something for DOPs.
Let's say i have a sphere and a bunch of boxes. I need every box to follow one point of sphere. For this simple task i can use the same order of dyn objects as order of points in sphere so $OBJID == $PT or even pull that data from SOPs to new custom data on dyn. objects.
Then i can use expressions in Motion, RBD State, Force nodes to calculate vector and use it as velocity or force.
But what if i need some more complex calculations i can do in SOPs (VOP SOP for example). How and when should i bring it in?
I attached example, where “tforce” Sopnet inside Autodopnet is working just fine, finding the right force. But if i copy all these nodes to new Geometry node the same level as Autodopnet it's just stop working. I even Object merged the result back in tforce sopnet - it's not working.
Is there some rule of scope where i need all stuff be inside its “mother” network or something??
Hope someone could explain to me when this tforce sopnet is being executed, and what is the overall flow of the network.
Any info will be greatly appreciated.
p.s. There is problem sometimes where cubes are just stuck on random frame - i change solver rbd-bullet and back and it solves the problem, Is it bug or all my setup is just wrong?
Technical Discussion » Optimizing/Render RBD point objects
- bloomendale
- 20 posts
- Offline
vlow
Hi, i am having some problems managing data/sims/cache to render my RBD instance objects.
Would like to ask what is the usual workflow and if im doing anything wrong
My current scene workflow
- defining a source to emit particles using a popnet
- then using rbd point object to bring in the particles (cached bgeo)
- also in geo path i am overriding point value with a a range of SOP geo using `$OBJID%5+1`
- i have animated obj interacting with rbd point object
- cached this out as .sim with compression
Here is where the issues start to arise,
- reading the .sim files is taking a hit on my system and getting slow in playing back the cache to see result
- avg cached file size is about 70mb using compression
Questions,
- what is recommended to render these rbd point objects?
- where can i import these objects and assign my shader?
- if my shader has displacement does it treat each geo as unique?
- if i need the rbdpoint objects to interact with pyro how do i manage this data since reading them is already taking a long time?
Thanks in advance for any advice. Yes this is also posted on odforce. Was trying to get a wider audience here..
Do you bring in the whole popnet in dops every frame? You need to do it only with new particles otherwise you will have tons of doubles in sim.
Technical Discussion » Windforce DOP problem
- bloomendale
- 20 posts
- Offline
Hi.
I have small problem with windforce DOP. Dynamic objects stop moving after certain amount of time. Scale Force channel has some influence on how long object will move. And maybe type of noise plays some role too.
Attached example file. Just hit play.
Is it a bug?
tested with .683
Thanks in advance.
I have small problem with windforce DOP. Dynamic objects stop moving after certain amount of time. Scale Force channel has some influence on how long object will move. And maybe type of noise plays some role too.
Attached example file. Just hit play.
Is it a bug?
tested with .683
Thanks in advance.
Technical Discussion » Glue for emitted RBD objects
- bloomendale
- 20 posts
- Offline
ok. here is example file.
i colored modified/added nodes in red in glue fractured object dop.
i colored modified/added nodes in red in glue fractured object dop.
Technical Discussion » Glue for emitted RBD objects
- bloomendale
- 20 posts
- Offline
Hi.
I'd add some attribute to define “clusters” of boxes with unique value per cluster.
Then modify glue fractured rbd DOP: copy utility rbd object (to which all real rbd objects are glued) as many times as you have unique values in “cluster” attrib (copy object DOP with nuniquevals(chsop(../soppath“), D_POINT, ”cluster")) as number of objects and name of each utility object as cluster + uniqueval(chsop(“../soppath”, D_POINT, “cluster”, $OBJ).
And then modify “glue object” channel in rbd state DOP in rbd fractured DOP to something like this:
cluster + point($DOPNET +“:”+$OBJID+“/Geometry”, 0, “cluster”, 0)
I'd add some attribute to define “clusters” of boxes with unique value per cluster.
Then modify glue fractured rbd DOP: copy utility rbd object (to which all real rbd objects are glued) as many times as you have unique values in “cluster” attrib (copy object DOP with nuniquevals(chsop(../soppath“), D_POINT, ”cluster")) as number of objects and name of each utility object as cluster + uniqueval(chsop(“../soppath”, D_POINT, “cluster”, $OBJ).
And then modify “glue object” channel in rbd state DOP in rbd fractured DOP to something like this:
cluster + point($DOPNET +“:”+$OBJID+“/Geometry”, 0, “cluster”, 0)
Houdini Lounge » PyroFx, OpenCL ON ->clBuildProgram (-11) Error.
- bloomendale
- 20 posts
- Offline
Houdini Lounge » PyroFx, OpenCL ON ->clBuildProgram (-11) Error.
- bloomendale
- 20 posts
- Offline
Hello i'm new to Houdini and may ask some dumb questions so be gentle)
Just installed 12 (free) and tried to test new pyroFx, but when i turned on OpenCl checkbox in pyrosolver got this in console:
OpenCL Exception: Error in processing command line: Don't understand command line argument “Effects”!clBuildProgram (-11)
I have 580gtx 3gb, latest drivers (295.73). Should i install something else? afaik opencl is included in nvidia drivers package.
Thanks in advance.
Just installed 12 (free) and tried to test new pyroFx, but when i turned on OpenCl checkbox in pyrosolver got this in console:
OpenCL Exception: Error in processing command line: Don't understand command line argument “Effects”!clBuildProgram (-11)
I have 580gtx 3gb, latest drivers (295.73). Should i install something else? afaik opencl is included in nvidia drivers package.
Thanks in advance.
-
- Quick Links