20120713 ch12

22
Texturering & Modeling a Procedual Approach 김김김

Upload: carrotcg

Post on 01-Nov-2014

470 views

Category:

Documents


6 download

DESCRIPTION

 

TRANSCRIPT

Texturering & Modelinga Procedual Approach

김정근

Chapter 12Noise, Hypertexture, Antialiasing, and

Gesture

3

AgendaThe NYU Torch

Smoke

Time Dependency

Smoke Rings

Optimization

Turbulence

4

The NYU Torch

5

Smoke

“hypertexture 를 사용해서 움직이는 연기 column 의

모양을 만듬”

6

기본적인 접근 : SmokeSmoke “column” 부드러운 Smoke “column” 을 작성하고 그 안에 x, y 상에서 교란 시킴

Column Opacity and Width이것은 최종결과에 영향을 미칠 수 있음

7

기본적인 접근 : Smoke

“Column Width 의 차이만 있으나 외관의 차이는 극적이다”

8

Time DependencySmoke “drift”

반대방향 안에 있는 turbulence 의 domain 를 움직여봄으로써 ,시간이 흐름에 따라 어떤 방향으로 “ drift” 하는 것처럼 보이는 연기를 만들려 함

9

Time Dependency

“ 연기의 특정한 형태는 시간이 지남에 따라 극적으로 달라질 수 있으며 아직 연기의 일반적인 느낌은 동일하게 유지”

상승하는 인상을 줌y 를 1 차원으로 아래쪽으로 이동

더 큰 y 값으로 운동의 속도를 증가 smoke 가 수직으로 움직이는 인상을 주지만 그것은 상단에 가깝게 흐트러지는 것처럼 오른쪽으로 차츰 사라짐

x 를 왼쪽으로 이동

10

Smoke Rings

11

Smoke Rings

turbulence 함수가 공간을 왜곡하면column 은 자체로 가로가 두배로 나타남

Column 은높게 일어나도록 해야하며 너무 낮게 발생하면 링이 공간에서 어딘가로 오프되듯이 형성되어 나타날때 column 그 자체가 아웃되지 않음

두 가지 gain 곡선을 채용y 의 함수로 column 근처 turbulence amplitude , y 의 함수로부터 멀리 column 에서 다른 컨트롤의 turbulence 진폭을 제어

낮은 스모크 링에 의해서 후자의 곡선은 항상 전자 뒤에 언제나 지체

12

Optimization

“ 연기는 Sample 볼륨 내에서 상당히 부족하기 때문에판단력있는 presampling 을 기반으로 최적화 하기 좋다”

13

첫번째 렌더링 Optimization

약 8 시간AT&T Pixel Machine with 64 DSP32 processors

640×480×640 볼륨의 단일 프레임

“ 애니메이션을 하기에 상당히 비현실적”

볼륨 내의 연기를 찾아 작은 해상도로 이미지를 미리 계산하여 속도를 높임

그 볼륨 내에서 최종 계산을 수행

14

더 구체적으로 Optimization

예비 Raymarch마지막 X, Y, Z 해상도 4 분의 1 로 예비 raymarch

1/64전체 계산하는 것처럼 많은 밀도 평가는 오직 1/64 만큼 필요함

각 4X4 에서모든 nonzero 밀도를 경계 z 를 따라 간격을 저장

Null interval 이 됨각 Pixel 에 이 간격이 모든 이웃 Pixel 의 간격과의 조합으로 확장 , 보수할 수 있음

15

최종으로 Optimization

Z intervals 최종 raymarching 의 도메인을 제한하는 Z 간격을 경계의 이미지를 사용

결과적으로30 배 이상 단축 , 약 16 분 소요 (subsampled prepass 에 대한 시간을 포함 )

Smoke 는공간내에서 희박하기 때문에 시간단축이 크며

밀도가 많은 Sample widths 가 zero 로 떨어지기 때문에 작은 디테일은 무시되지 않음

16

Optimization

17

Optimization

18

Turbulence

Turbulence대리석 , 구름 , 폭발 , 등을 만들기 위해 사용 , Noise 함수 위에 만들어진 간단한 프랙탈 생성 루프

“ 전혀 실제 turbulence 모델이 아니다”

19

Turbulence

주요 트릭 : fabs()functiongradient 불연속적인 “ fault lines” 을 만들고 turbulent 흐름의 결과를 보고 생각한 것이 눈속임으로 보이게 된다

20

Turbulence

phase shiftturbulence() 함수는 친숙한 대리석 트릭과 같이 최상의 결과를 제공

sin(point + turbulence(point) * point.x);

lofreqturbulence 의 가장 낮은 주파수 성분을 설정

hifreqturbulence 효과가 하나의 Pixel 수준 아래로 도달하도록 함수에 의해 사용

Q & A

감사합니다