예전에 Terragen 이라는 프로그램으로 지형 생성하는 것을 본적이 있고, 거기에 사용되는 알고리즘이 Perlin Noise 였다. 그래서 Perlin Noise 를 만든 Perlin 의 문서를 뒤지다가 이 책을 알게 되었다. (이 책 때문에 Wavlete 을 공부하게 되었다.) 그냥 한번 책을 펴봤는데, 정말 좋은 내용들이 많았다. 이 책은 물론 사실 디자이너를 위한 책이 아니다. Texture 와 Modeling 을 어떠한 수학적 규칙에 의해 생성하는 것으로, 실제로는 디자이너보다는 프로그래머가 봐야 할 듯 하다.
비슷한 것으로는 유명한 프랙탈(Fractal)과 프랙탈 중의 하나인 맨델브로 집합(Mandelbrot set)이 있다.[1] 또 이 Procedural Texture 를 설명하기 위해서 OpenGL 노랭이 책인 GLSL 책에도 나오는 벽돌 알고리즘이 쉬운 예이다.
또한 텍스쳐를 사용해서 어떠한 물체를 만드는 방법(Modeling)도 소개한다. 가장 쉬운 예가 Height Map 을 이용한 지형 생성이고, 이때 Perlin Noise 가 사용되곤 한다. 또 이러한 텍스쳐를 사용하여 기체 같은 볼륨 렌더링을 위한 Modeling 을 하기도 한다.
제목으로 알 수 있듯이 전반적으로는 이 두가지, 텍스쳐링과 모델링을 하는 것이고, 모두 수학기반인 Procedural 방법을 사용하여 생성하는 것을 다루는 것이다. Ken Perlin 을 포함한 5명의 저자들이 각기 다른 여러 부분들을 참여 하였기 때문에 꽤 다른 여러가지 분야들이 있는데, 그 중에 이러한 효과들을 볼 수 있는 곳을 몇가지 뽑았다.
1. Perling Noise
(1) 나무 무늬 (http://freespace.virgin.net/hugo.elias/models/m_perlin.htm)
g = perlin(x,y,z) * 20
grain = g - int(g)
Perlin Noise 와 이런 간단한 코드만으로 나무 이미지를 만들었다.
2. Hypertexture
(1) Fireball (http://mrl.nyu.edu/~perlin/experiments/hypertexture/)
(2) Arch (http://mrl.nyu.edu/~perlin/experiments/hypertexture/)
3. Volumetric Cloud Modeling
(1) 적운(Cumulus cloud) (http://cobweb.ecn.purdue.edu/~ebertd/)
(2) Fractal Terrain (http://pages.cpsc.ucalgary.ca/~sheelagh/courses/453/fractal-terrain.pdf)
Terragen 에서 눈의 이미지(이것까지 Procedural 인지는 잘 모르겠음)를 덮은 모습이다. 자세한건 위의 링크에 있는 강의용 PDF 파일을 참고.
4. Procedural Shape
(1) 부식된 해골(Corroded skull) (http://mrl.nyu.edu/perlin/experiments/blend/)
기존 해골 모델링에 노이즈를 적용시켜서 부패한것 같은 이미지와 기존의 모델과 함성한 것이다. 더 자세한걸 알고 싶으면 'Procedural Shape Synthesis on Subdivision Surfaces' 라는 제목의 논문을 참고.(http://www.mrl.nyu.edu/publications/proceduralshape/)
그외에도 책에는 악어 비늘이나, Genetic Algorithm 을 사용한 텍스쳐나, 토성의 띠 같은 깜짝 놀랠만한 이미지들이 많은데, 스캔하기도 귀찮고 스캐너의 화질도 좋은 편이 아니라, 몇개만 인터넷에서 찾아서 퍼왔다.
항상 그렇듯이(!), 이러한 이론들은 컴퓨터가 막 보편화되기 시작하는 80년대부터 그 논문이나 관련된 것들이 나오기 시작했다. 현재 얼마나 발전될 여지가 있는지는 모르겠으나, 지형 프로그램인 Terragen 을 제외하면 대중적으로 그렇게 실용화하여 사용되지는 않으니, 컴퓨터가 더 빨라지고, 더 효과적인 알고리즘들이 나오면 좀 더 발전의 여지가 있을꺼라 생각한다. 관심있는 사람은 인터넷을 검색하거나 책을 사서 보시길. ~.~
ps. 추측이지만, (거의 확실!) 예전 잠깐 떠들썩 했던 64kb 3d 게임 같은 것들도 모두 이런 텍스쳐를 사용할 것이다. 실제 메모리에 이미지 같은 것들은 전혀 로딩하지 않고, 뭔가 로딩과 비슷한 preprocessing 을 거친 후 화려한 화면이 나온다. 그것은 거기에 사용되는 텍스쳐를 메모리에 생성하는 과정일 것이다.
ps2. 사운드도 마찬가지다. 위에서 말한 64kb 게임은 물론이고, 실제로 작곡에 쓰이는 음향 프로그램들이 이러한 procedural 한 방법으로 각 악기의 소리를 제작하는 프로그램이 있다고 들었다. 따라서, 현재 대부분의 프로그램들은 소리를 직접 샘플링하고 그것을 저장하느라 많은 용량과 많은 메모리가 필수적으로 필요했는데, 그 프로그램의 경우는 그러한 것들이 전혀 필요하지 않았다. (아쉽게도 프로그램 이름도 까먹었고, 말만 들었고, 실제 써본적은 없다. 뭐, 논문들은 찾으면 나오리라~~)
ps3. (추가) 위에서 아직 procedural texture 가 그리 실용화 되지 않았다고 했는데, 틀렸다. Allegorithmic(http://www.allegorithmic.com/)이라는 회사에서는 procedural texture 를 전문적으로 다루고 있고, Pixar 의 RenderMan 도 많은 부분(혹은 대부분) 이 방법을 사용한다고 한다.
비슷한 것으로는 유명한 프랙탈(Fractal)과 프랙탈 중의 하나인 맨델브로 집합(Mandelbrot set)이 있다.[1] 또 이 Procedural Texture 를 설명하기 위해서 OpenGL 노랭이 책인 GLSL 책에도 나오는 벽돌 알고리즘이 쉬운 예이다.
또한 텍스쳐를 사용해서 어떠한 물체를 만드는 방법(Modeling)도 소개한다. 가장 쉬운 예가 Height Map 을 이용한 지형 생성이고, 이때 Perlin Noise 가 사용되곤 한다. 또 이러한 텍스쳐를 사용하여 기체 같은 볼륨 렌더링을 위한 Modeling 을 하기도 한다.
제목으로 알 수 있듯이 전반적으로는 이 두가지, 텍스쳐링과 모델링을 하는 것이고, 모두 수학기반인 Procedural 방법을 사용하여 생성하는 것을 다루는 것이다. Ken Perlin 을 포함한 5명의 저자들이 각기 다른 여러 부분들을 참여 하였기 때문에 꽤 다른 여러가지 분야들이 있는데, 그 중에 이러한 효과들을 볼 수 있는 곳을 몇가지 뽑았다.
1. Perling Noise
(1) 나무 무늬 (http://freespace.virgin.net/hugo.elias/models/m_perlin.htm)
g = perlin(x,y,z) * 20
grain = g - int(g)
Perlin Noise 와 이런 간단한 코드만으로 나무 이미지를 만들었다.
2. Hypertexture
(1) Fireball (http://mrl.nyu.edu/~perlin/experiments/hypertexture/)
(2) Arch (http://mrl.nyu.edu/~perlin/experiments/hypertexture/)
3. Volumetric Cloud Modeling
(1) 적운(Cumulus cloud) (http://cobweb.ecn.purdue.edu/~ebertd/)
(2) Fractal Terrain (http://pages.cpsc.ucalgary.ca/~sheelagh/courses/453/fractal-terrain.pdf)
Terragen 에서 눈의 이미지(이것까지 Procedural 인지는 잘 모르겠음)를 덮은 모습이다. 자세한건 위의 링크에 있는 강의용 PDF 파일을 참고.
4. Procedural Shape
(1) 부식된 해골(Corroded skull) (http://mrl.nyu.edu/perlin/experiments/blend/)
기존 해골 모델링에 노이즈를 적용시켜서 부패한것 같은 이미지와 기존의 모델과 함성한 것이다. 더 자세한걸 알고 싶으면 'Procedural Shape Synthesis on Subdivision Surfaces' 라는 제목의 논문을 참고.(http://www.mrl.nyu.edu/publications/proceduralshape/)
그외에도 책에는 악어 비늘이나, Genetic Algorithm 을 사용한 텍스쳐나, 토성의 띠 같은 깜짝 놀랠만한 이미지들이 많은데, 스캔하기도 귀찮고 스캐너의 화질도 좋은 편이 아니라, 몇개만 인터넷에서 찾아서 퍼왔다.
항상 그렇듯이(!), 이러한 이론들은 컴퓨터가 막 보편화되기 시작하는 80년대부터 그 논문이나 관련된 것들이 나오기 시작했다. 현재 얼마나 발전될 여지가 있는지는 모르겠으나, 지형 프로그램인 Terragen 을 제외하면 대중적으로 그렇게 실용화하여 사용되지는 않으니, 컴퓨터가 더 빨라지고, 더 효과적인 알고리즘들이 나오면 좀 더 발전의 여지가 있을꺼라 생각한다. 관심있는 사람은 인터넷을 검색하거나 책을 사서 보시길. ~.~
ps. 추측이지만, (거의 확실!) 예전 잠깐 떠들썩 했던 64kb 3d 게임 같은 것들도 모두 이런 텍스쳐를 사용할 것이다. 실제 메모리에 이미지 같은 것들은 전혀 로딩하지 않고, 뭔가 로딩과 비슷한 preprocessing 을 거친 후 화려한 화면이 나온다. 그것은 거기에 사용되는 텍스쳐를 메모리에 생성하는 과정일 것이다.
ps2. 사운드도 마찬가지다. 위에서 말한 64kb 게임은 물론이고, 실제로 작곡에 쓰이는 음향 프로그램들이 이러한 procedural 한 방법으로 각 악기의 소리를 제작하는 프로그램이 있다고 들었다. 따라서, 현재 대부분의 프로그램들은 소리를 직접 샘플링하고 그것을 저장하느라 많은 용량과 많은 메모리가 필수적으로 필요했는데, 그 프로그램의 경우는 그러한 것들이 전혀 필요하지 않았다. (아쉽게도 프로그램 이름도 까먹었고, 말만 들었고, 실제 써본적은 없다. 뭐, 논문들은 찾으면 나오리라~~)
ps3. (추가) 위에서 아직 procedural texture 가 그리 실용화 되지 않았다고 했는데, 틀렸다. Allegorithmic(http://www.allegorithmic.com/)이라는 회사에서는 procedural texture 를 전문적으로 다루고 있고, Pixar 의 RenderMan 도 많은 부분(혹은 대부분) 이 방법을 사용한다고 한다.
- 프랙탈 관련 이미지는 검색을 하면 많이 나온다. 참고 : http://en.wikipedia.org/wiki/Fractal [본문으로]







536932
127
559





댓글을 달아 주세요