init
This commit is contained in:
commit
f5c1616018
679 changed files with 188502 additions and 0 deletions
32
Assets/Pixel3D/Shaders/Random.cginc
Normal file
32
Assets/Pixel3D/Shaders/Random.cginc
Normal file
|
@ -0,0 +1,32 @@
|
|||
uint rng_state;
|
||||
|
||||
//Hash invented by Thomas Wang
|
||||
void wang_hash(uint seed) {
|
||||
rng_state = (seed ^ 61) ^ (seed >> 16);
|
||||
rng_state *= 9;
|
||||
rng_state = rng_state ^ (rng_state >> 4);
|
||||
rng_state *= 0x27d4eb2d;
|
||||
rng_state = rng_state ^ (rng_state >> 15);
|
||||
}
|
||||
|
||||
//Xorshift algorithm from George Marsaglia's paper
|
||||
uint rand_xorshift() {
|
||||
rng_state ^= (rng_state << 13);
|
||||
rng_state ^= (rng_state >> 17);
|
||||
rng_state ^= (rng_state << 5);
|
||||
|
||||
return rng_state;
|
||||
}
|
||||
|
||||
float randValue() {
|
||||
return rand_xorshift() * (1.0 / 4294967296.0);
|
||||
}
|
||||
|
||||
void initRand(uint seed) {
|
||||
wang_hash(seed);
|
||||
}
|
||||
|
||||
float randValue(uint seed) {
|
||||
initRand(seed);
|
||||
return randValue();
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue