2009-07-15 2 views
5

OpenGL에서 체적 구름을 렌더링하고 싶습니다. 체적 구름을 렌더링하는 간단한 기술을 설명하는 흥미로운 논문을 발견했습니다. (http://www.inframez.com/events_volclouds_slide18.htm) 그러나 "프랙탈 큐브"(또는 perlin-noise 큐브)를 만드는 방법을 모르겠습니다.프랙탈 큐브를 만드는 방법은 무엇입니까?

제 질문은 큐브의 타일링 가능한 프랙탈 텍스처를 만드는 방법입니다.

편집 : 제 목표는 구름 스카이 박스가 아닌 체적 구름 오브젝트를 만드는 것입니다.

답변

3

켄 펄린 자신이 쓴 펄린 노이즈에 좋은 소개, here입니다. 그는 1 차원 또는 2 차원 소음 함수를 생성하는 방법에 대해 이야기 한 다음 3D로 작동하는 방법을 보여주기 위해이를 일반화하여 원하는 것처럼 견고한 큐브를 생성합니다.

+0

이것은 내가 찾고있는 것입니다 : http://www.noisemachine.com/talk1/16.html –

+0

내 구현 : http://code.google.com/p/jslibs/source/browse/trunk/src /jsprotex/noise.cpp –

0

2D 빌보드 구름 텍스처를 사용하는 경우 구름이 구름처럼 보이는 알파 혼합 2D 텍스처를 만듭니다. 그들이 당신에게 요구하는 것은 거의 똑같습니다. 텍스처 만 큐브 주위를 부드럽게 둘러 쌉니다 (스카이 박스처럼). perlin-noise filter은 마치 구름처럼 보이게 만드는 알고리즘처럼 보입니다.

내 바로 가기 방법은 Photoshop의 구름 필터를 사용하여 텍스처를 만드는 것입니다. 알파 블렌딩에 대해서는 this tutorial의 기본 개념을 따르되 원형 그라디언트는 수행하지 마십시오. 끊김없는 하늘 상자 모양으로 잘라냅니다 (즉, 6면이 있고 입방체 주위를 적절하게 접을 수 있음).

+0

"입자 효과 튜토리얼"링크를 이용해 주셔서 감사합니다. –

0

그들이 말하는 '프랙탈 큐브'텍스처는 Perlin 노이즈의 옥타브 수에서 생성 된 FBM (Fractal Brownian Motion) 프랙탈이라고 생각합니다. This 게임 프로그래밍 챕터에서는 게임 젬이 어떻게 구성되는지 설명합니다. 기본적인 아이디어는 Perlin 노이즈의 여러 '옥타브'를 결합하는 것입니다. 각 옥타브는 이전 옥타브의 두 배 정도의 주파수를가집니다. 노이즈 기능을 수정하여 완벽하게 바둑판 식으로 배열 할 수 있습니다. Photoshop의 클라우드 필터는 기본적으로 FBM 노이즈이며 매끄럽게 타일링되므로 Photoshop에 액세스 할 수 있으면 바로 사용할 수 있습니다. 당신이 좋은 구름 렌더링에 정말 관심이 있다면

0

후 마크 해리스의 알고리즘은 복잡한이기는하지만 꽤 좋은 : http://www.markmark.net/clouds/

+0

이것 좀 봐 : http://www.youtube.com/watch?v=C9CfhyajVjY –

+0

솔직히 말해서, 그 구름은 평범한 것입니다. 필자는 Perlin 노이즈 클라우드 렌더링과 결합 된 셀룰러 오토 마타 기반 클라우드 시뮬레이션이라고 추측합니다. – Eric

관련 문제