[Sidefx-houdini-list] Rand() glitch

Jordi Bares jordibares at the-mill.com
Wed Oct 10 04:45:41 EDT 2007


I does make sense.

The problem though is proximity of the random generated numbers, not the
actual mechanism so I would still keep the suggestion of wrapping the rand
function so we get a new one.

I guess I can do that myself via the 123.hip/456.hip, isn't it?

Thanks
Jb

On 9/10/07 22:07, "Mark Elendt" <mark at sidefx.com> wrote:

> On Tuesday Oct 09 at 21:23, Jordi Bares wrote:
>> Thanks all for the comment, I though I was mad.
>> 
>> BTW, this is something SideFX could wrap as a different function, don't you
>> think?
>> 
>> Like pirand()
> 
> The issue is that you want to be able to generate the same random
> numbers (when you play your animation again, you want it to be the
> same).
> 
> So, rand(seed) needs to return the same value, for the same seed.
> 
> Consider two expressions: rand($F) and rand($F+1)
> For frame 1, you have: rand(1) and rand(2)
> 
> But then, for frame 2, you have: rand(2) and rand(3)
> 
> This means that the first expression will give you the same random
> number that you had in the second expression the previous frame.
> 
> Even if you did: rand($PT + $F*$PI) and rand($PT + $F*$PI + 1), you'd
> still end up with the same problem.
> 
> Point 1/Frame 1:  rand(4.141596), rand(5.141596)
> Point 2/Frame 1:  rand(5.141596), rand(6.141596)
> 
> So, again, the first expression will be giving you the same random
> number you had the previous frame for the second expression.
> 
> I hope this makes sense...
> 
> Personally, when I need a random expression, I end up typing some
> random digits after the decimal:
>     rand($PT + .319591)
>     rand($PT + .9381)
> 
> The only way to "fix" this, would be to have a unique ID for each
> parameter which would be re-generated identically each time you loaded
> the .hip file.  We don't have this right now.
> 
> Of course, if you wanted something that wouldn't be the same every
> time you evaluated it, then, that's a whole different issue and is
> relatively easy to solve.
> 
> I hope this makes sense.
> 
>> On 9/10/07 16:00, "jlait at sidefx.com" <jlait at sidefx.com> wrote:
>> 
>>> On Tue, Oct 09, 2007 at 03:06:30PM +0100, Jordi Bares wrote:
>>>> Hi, I am using rand() function to select randomly textures and I feed a
>>>> different value every time (incremented by 1) and I see the rand() function
>>>> is generating the same exact set of numbers shifted by one.
>>>> 
>>>> At the moment my solution is to feed the number^2 so I shift more than 1
>>>> pictures and avoid the repetition but it is very ugly.
>>>> 
>>>> My question is... What is the best way to generate pseudo-random numbers
>>>> based on integers?
>>> 
>>>     rand($PT + $F*$PI)
>>> 
>>>     I also recommend $E as a multiplier.
> 
> _______________________________________________
> Sidefx-houdini-list mailing list
> Sidefx-houdini-list at sidefx.com
> https://lists.sidefx.com:443/mailman/listinfo/sidefx-houdini-list





More information about the Sidefx-houdini-list mailing list