Widziałem ten generator liczb pseudolosowych do użytku w modułach cieniujących, o których mowa tu i tam w sieci :
float rand(vec2 co){
return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
}
Jest różnie nazywany „kanonicznym” lub „jednym wierszem, który znalazłem gdzieś w sieci”.
Jakie jest pochodzenie tej funkcji? Czy wartości stałe są tak arbitralne, jak się wydają, czy też jest jakaś sztuka w ich wyborze? Czy jest dyskusja na temat zalet tej funkcji?
EDYCJA: Najstarszym odniesieniem do tej funkcji, z jakim się spotkałem, jest archiwum z lutego 2008 roku , oryginalna strona została usunięta z sieci. Ale nie ma tam więcej dyskusji na ten temat niż gdziekolwiek indziej.