алгоритм noise в perlin noise

Тема в разделе "WASM.ASSEMBLER", создана пользователем _hidden_, 13 май 2005.

  1. _hidden_

    _hidden_ New Member

    Публикаций:
    0
    Регистрация:
    10 май 2005
    Сообщения:
    30
    Адрес:
    Russia
    Что такое perlin noise знают многие. Вещь полезная в графике. Да вот только реализовать качественно у меня никак не получается...



    Необходим алгоритм основной функции типа

    float noise1d(int x)

    которая выводит некое случайное значение основанное на аргументе x.



    Один из лучших туториалов по сабжу приводит вот такой алгоритм:



    function IntNoise(32-bit integer: x)



    x = (x<<13) ^ x;

    return ( 1.0 - ( (x * (x * x * 15731 + 789221) + 1376312589) & 7fffffff) / 1073741824.0);



    end IntNoise function



    Все бы ничего, но как говорит автор он придумал эту функцию почти от балды.



    Исходники perlin noise от самого perlin'a у меня есть, но у меня не получается их скомпилять (наверное нужно нарыть gcc), и как они работают непонятно - там в тексте черт ногу сломит.



    К чему я все это... есть ведь кнут со своими алгоритмами случайных чисел... никто не знает где бы нарыть такой же алгоритмически и математически обоснованый алгоритм, но для noise различной размерности.