# Noise Sop only in X and Y

looking for a way to add cycling noise to the points of a circle SOP so that there is only x and Y point transformation, none in Z.Tried transform SOP with scale 0 in Z.

Python and 088 solution would be swell also

There are other ways to do it (like in CHOPs), but this is a simple SOP network that uses the second input of the Point SOP to accomplish it.

088 and python expressions in the Point SOP, but it is also possible with 077’s Point SOP.

noNoiseOnZ.tox (1.22 KB)

Hi , thanks,

I’m not seeing any expressions in the Point SOP, or anywhere actually. Maybe it’s just late.

I was thinking I would do this procedurally like so, then I wondered if maybe I should pre-render and bring it in textured on a circle SOP. I tried that an noticed that the cook time was pretty high (.5 ms). There may be other issues , as I pointed out on another thread:

viewtopic.php?f=4&t=4734

but in general- which should give better performance: A circle SOP with noise-animated points, or pre-rendering the same, importing and texture mapping that onto a non-animated circle SOP ?

Interesting, this seems to work ok on a sphere, but not on a circle?

cod65, the expression in the point SOP is a modification of the default expression in the Position parameter.
The modification is simply to add a “2” to inputPoint.
What this does is essentially tell the Point SOP to take the position information of the second input.

Something seems illogical to me though (aside from the fact that it doesn’t seem to work on a circle SOP) : why would inputPoint require an index of 2?
If you are using a Switch, the second input would always be 1 wouldn’t it? So why change the logic here?

Alex

I’m thinking a circle has no points inside it’s interior, so it’s not possible for the interior to be defined beyond a flat plane, unless the circle is subdivided into polys first.

All I’m really trying to do is have a disc that has a noisy , undulating edge, like a highly stylized sun icon. I’m thinking that the noise SOP is gonna be too processing costly anyway- hence why I tried importing a bitmap animation instead. But that was kind of ‘heavy’ too, for the dumb little gag it is. I notice also that a sphereSOP wont work if the z scale is zero. I guess a circle SOP doesnt really have a defined ‘z’ either.

Hello.

Just did some digging.
The reason the circle is not affected by the Noise SOP, is that it displaces point attributes along the direction of their normals.
Given that the circle has point normals of (0,0,1) (meaning pointing straight along Z for all points), the points can only ever be displaced along Z.

We’re contemplating making this an option, as it otherwise makes it difficult to perturb flat objects nicely.

In regards to inputPoint1, inputPoint2 names, you are correct, its 1-based whereas OP switch inputs are usually 0-based. It was based on the tscript convention of “\$PT, \$PT2”.
We will look into changing this, but it would mean ‘inputPoint’, and ‘inputPoint1’ for two choices which may seem odd.

In the meantime, to get the Noise SOP to displace the circle, delete the current Point SOP, and append another Point SOP immediately after the circle.
ie. the chain shoulde be: circle → point → noise

Use the Point SOP to change normals to be equal to its point positions:
ie, Add Normals and set it to: me.inputPoint.x me.inputPoint.y me.inputPoint.z

Now the Noise SOP should displace the circle’s points (radially outward) along x and y only.

Cheers,
Rob

thanks, that works great with bezier and nurbs curve. Very useful, though I notice the noise SOP alone is reporting 1.2 ms cook time. I guess whether or not that is too costly depends on the scenario. I’m still not sure if texture mapping an alpha/bitmap version on a circle is the way to go . Back to the lab…