2013-06-13 5 views
0

누구나 다음과 같은 종류의 잡음을 생성하는 방법을 알고 있습니까?간섭 성 구형 잡음?

  • 세 입력, 3 개 개의 출력
  • 출력이 항상 동일한 크기가 재차 같은 입력을 받으면
  • 의 벡터 발생하며, 동일한 출력을 리턴한다
  • 그것을 (가 펄린 노이즈처럼 부드러운 나타나는 경우 최고)
  • 그것은 상당히 임의

EDIT로 표시되어야 지속적인해야합니다 : 그것은 또한 NI 것 그것이 등방성이라면 ce. 그러나 그것은 전부 필요하지 않습니다.

+0

계속 하시겠습니까? 입력이 매끄럽게 변하기 때문에 출력도 부드럽게 변화해야합니까? 마치이 좌표가 술주정 뱅이의 도보 알고리즘이나 시간 매개 변수 인 것처럼? – sh1

+0

예, 방금 각 입력에 대한 함수의 첫 번째 및 두 번째 파생어가 연속적이라는 것을 의미합니다. 시간이 지남에 따라 각 입력을 부드럽고 무작위로 변경하면 출력 벡터가 순조롭게 정렬되지만 원활하게 처리 될 것으로 기대합니다. 술주정 뱅이의 "인지 된 중력"벡터와 더 비슷합니다. – Miles

답변

0

나는 길을 찾았지만 매우 빠를 수는 없지만 다른 언어로 쉽게 이식 할 수 있도록 설계된 C 유사 의사 코드입니다.

vec3 sphereNoise(vec3 input, float radius) 
{ 
    vec3 result; 
    result.x = simplex(input.x, input.y); //could use perlin instead of simplex 
    result.y = simplex(input.y, input.z); //but I prefer simplex for its speed 
    result.z = simplex(input.z, input.x); //and its lack of directional artifacts 

    //uncomment the following line to make it a spherical-shell noise 
    //result.normalize(); 
    result *= radius; 
    return result; 
}