per-pixel random problems?
    Matthew Woehlke 
    mw_triad at users.sourceforge.net
       
    Thu Dec 11 23:25:56 CET 2008
    
    
  
Lukast dev wrote:
> I use random in Sumi-e brush. You can look how it is used in brush.cpp
> 
> But basiclly
> #ifdef _WIN32
> #define srand48 srand
> #define drand48 rand
> #endif
Hmm, penalizing Windows users... not sure how I feel about that.
Really, you shouldn't do that, you should do this:
#ifndef HAVE_ERAND48
double erand48(quint16 seed[3])
{
     const quint64 a = 0x5DEECE66D, b = 0xB;
     quint64 n = seed[0] + (seed[1]<<16) + (seed[2]<<32);
     n = ((n * a) + b) & 0xFFFFFFFFFFFF;
     seed[0] = n & 0xFFFF;
     seed[1] = (n>>16) & 0xFFFF;
     seed[2] = (n>>32) & 0xFFFF;
     return ldexp(double(n), -47));
}
#endif
...and you should never use the non-thread-safe versions! ;-)
> and I'm using drand48();
> 
> Works quite fast :)
Well, yes, /one/ iteration should be /very/ fast. I was talking about 
doing several dozen per pixel :-).
-- 
Matthew
Please do not quote my e-mail address unobfuscated in message bodies.
-- 
|-\ /-\ \ | -+-   |-\  +  \ | -+- /-\
| | | | |\|  |    |-/ /-\ |\|  |  |
|-/ \-/ | \  |    |   | | | \ -+- \-/
    
    
More information about the kimageshop
mailing list