Showing posts with label theory. Show all posts
Showing posts with label theory. Show all posts
Sunday, September 16, 2012
Manifold Exploration
Manifold Exploration talk from Wenzel Jakob on Vimeo.
http://www.cs.cornell.edu/projects/manifolds-sg12/
개요:
비왜곡 몬테 카를로 방법을 사용하여 렌더링 하는 경우에 특정한 어려운 종류의 빛 전송 경로가 있습니다. 특히 경로들이 스펙큘러나 글로시 표면을 담고 있는 경로를 따라 보여지고 조명되는 경우에, 쓸모없을 정도로 느린 수렴의 원인이 됩니다.
이 논문에서 우리는 렌더링시 스펙큘러 패쓰을 다루기 위한 새로운 방법인 Manifold Exploration 을 소개합니다. 이는 패쓰들의 세트들이 이미지에 자연스럽게 그 패쓰 공간 내에서 manifolds를 형성하는데 기여하며, 이는 단순한 방정식 반복 풀이를 통해 논리적으로 탐구될 수 있다는 생각에 기반하고 있습니다.
이 논문은 단지 기존에 레이트레이싱 시스템에서 이용가능한 지오메트리 정보를 사용하여 필요한 방정식을 어떻게 공식화 하고 해결하는지를 보여주며, 두 가지 서로다른 마르코프 체인 몬테 카를로 프레임웍에서 일반적인 경로 집합으로부터 정확하게 일루미네이션을 계산하기 위해서 어떻게 이 방법을 사용하는지를 보여줍니다.
그 결과 렌더링 알고리즘은 스펙큘러, 거의 스펙큘러, 글로시, 및 디퓨즈 표면의 상호작용과 등방성 혹은 높은 이방성 볼륨 스케터링 상호작용을 다루는데, 이 모두는 동일한 기본 알고리즘을 사용합니다.
실행은 다양한 도전적인 씬들을 통해 시연되었고, 이전 방법들과 비교하여 평가되었습니다.
Labels:
algorithm,
manifoldexploration,
mlt,
montecarlo,
rendering,
theory,
unbiased
Friday, July 6, 2012
Stanford Bunny
![]() |
The Stanford Bunny rendered inYafRay from Wikipedia |
Siggraph 영상을 보다보면 쉽게 볼 수 있는 토끼 한마리가 있습니다.
각종 시뮬레이션이나 테스트 영상에 수시로 등장하는데요,
Stanford Bunny 라고 불립니다.
1994년 스탠포드 대학의 Greg Turk 와 Marc Levoy 에 의해 개발이 된 3D 그래픽용 테스트 모델입니다.
이 토끼는 세라믹 토끼 피규어를 3D스캐닝하여 만든 69,451 트라이앵글로 구성되어 있습니다.
이 데이터는 폴리곤 단순화라든가 압축, 표면 스무딩 등의 다양한 그래픽 알고리즘을 테스트하는데 사용될 수 있습니다.
지오메트리 복잡성이나 트라이앵글 갯수의 관점에서 오늘날의 기준으로 보면, 단순한 모델로 여겨집니다. 이 데이터셋과 관련해 여느 3D스캔 데이터에서 발생할 수 있는 몇 가지 문제점들이 있습니다.
연결된 다면체에서 데이터에 구멍들이 나 있는데 이는 스캐닝의 한계 때문이거나 속이 빈 오브젝트 때문이기도 합니다.
이런 문제점이 있기는 하지만 이 토끼는 여러가지 알고리즘을 벤치마크 하기 위한 사실적인 인풋을 제공합니다.
이 모델은 원래 4가지 다른 해상도의 ply(polygons)파일 포맷으로 이용가능 했는데 69,451폴리곤 모델이 가장 널리 이용됩니다(원문이 being the highest 인데 가장 많이 사용된다는 뜻인지 최대값이라는 의미인지 잘 모르겠습니다.)
- 위키피디아
Friday, June 29, 2012
On Filtering the Noise from the Random Parameters in Monte Carlo Rendering
몬테카를로 렌더링 시스템은 훌륭한 이미지를 만들어 낼 수 있지만 낮은 샘플링에서는 많은 노이즈를 만들어 냅니다.
이 연구에서는, 몬테 카를로 시스템에서 사용된 무작위 변수들의 직접적인 영향에 의해 나타나는 이미지 영역의 노이즈를 관찰하여 보다 적은 입력 샘플 값으로부터 함수 관계를 추정함으로써 동일한 몬테카를로 노이즈를 만들고자 합니다.
이를 위해서 렌더링 시스템을 블랙박스라고 간주하고 시스템의 입력과 출력 사이의 통계적 종속성을 계산합니다.
그런 다음 몬테카를로 방법에 의해 영향을 받는 샘플 값의 중요도를 감소시키기 위해 이미지 공간에 적용시 이 정보를 사용하여 cross-bilateral 필터를 사용하여 무작위 변수에 의해 나타나는 노이즈만 제거하고 씬의 중요한 디테일은 보존하게 합니다.
샘플 값들 사이의 함수관계를 사용하는 과정과 몬테카를로 노이즈를 필터링 하기 위한 무작위 변수 입력 과정은 무작위 변수 필터링 (RPF) 라고 불리며, 이 방법을 통해서 단지 몇 분만에 수천배나 많은 샘플로 렌더링 된 이미지와 유사한 이미지를 만드는 방법을 설명합니다.
나아가서, 이 알고리즘은 무작위 변수를 위해 어떠한 물리적 의미를 지정하지 않았기 때문에 일반적이며, 몬테카를로 방법의 다양한 효과들(피사계 심도, 에이리어 광원, 모션블러, 패스트레이싱 등을 포함한)에 적용가능 합니다.
여기 이전의 접근법으로 만들어진 것들에 비해 높은 품질을 가지지만 낮은 샘플링율로 만든 스틸 이미지와 애니메이션 시퀀스를 공개합니다.
Labels:
montecarlo,
rendering,
tech,
theory
Monday, April 16, 2012
The ART of Rendering
이 글은 fxguide.com 에서 Mike Seymour씨가 쓴
The Art of Rendering ( http://www.fxguide.com/featured/the-art-of-rendering/ ) 을
원저자의 허락 하에 번역한 글입니다. Mike Seymour씨에게 감사의 뜻을 표합니다.
(This post was translated under the permission of the original writer, Mike Seymour. Thanks for the permission.)
무단전재나 재배포는 허용되지 않습니다.
잘못 번역된 부분이 많이 있을 것으로 예상되니 댓글로 알려주시면 수정하겠습니다.
===============================================================================
렌더링은 언제나 현실을 흉내 내기 위해서 얼마나 많은 컴퓨터를 기꺼이 투입할 것인가를 관리하는 연습이며 그 비용은 돈과 시간의 형태로 나타납니다.
전체 CG/VFX세계의 상품 하나를 고려해 보면 – 렌더링이 현재 핫토픽입니다. CG수퍼바이저 Scott Metzger씨는 렌더러에 관한 얘기를 하려면 언제나 누군가를 짜증나게 할 수 밖에 없다고 농담처럼 말합니다. “렌더러는 종교와도 같죠 ㅎㅎ. 렌더링은 종교에요! 특히나 지금 시대에는, 정말로 흥미롭게도, 많은 일들이 일어나고 있고 수 많은 렌더러가 있습니다. 그리고 많은 일들이 발생하죠. 제겐 현재 우리 산업에서 가장 흥미로운 부분입니다.”
픽사의 RenderMan 제품 부사장인 Dana Batali 씨가 지난 씨그라프중에 fxguide에 말한 것 처럼 “렌더링은 화면에 픽셀들을 나타내기 위해서 필요한 컴퓨터예산 중 가장 큰 부분을 차지합니다.” 그는 당시 ‘sims’(옷과 같은 물리 시뮬레이션 등)는 대부분의 영화에서 컴퓨터예산 중 단지 5퍼센트만을 차지했다고 지적했습니다.
렌더링이 랜더팜을 장악하고 있기 때문에, 어쩌면 하나의 씬에서 파괴 시뮬레이션을 위해 쏟는 만큼의 노력을 렌더링에서 완벽한 빛을 시뮬레이션 하기 위해 쏟을 수는 없습니다.
렌더러들은 대학 프로젝트와 같이, 개략적으로 작성하기는 매우 쉽습니다. 하지만 제작 환경에서 사용하기는 매우 어렵습니다. Solid Angle의 Arnold 렌더러는 잘 최적화된 C++코드로도 약 20만줄이나 되는데, 많은 속임수 없이 매우 직접적인 구현이 되는 것으로 여겨집니다. 렌더링 시간과 씬 복잡성 관점에서 보면 제작 요구사항은 엄청납니다.
그리고 씨그라프2010에서 Arnold의 설립자 Marcos Fajardo씨가 지적했듯이, 문제는 단지 최종 랜더시간에만 있는 것은 아닙니다 – 최종 랜더 CPU 시간은 시간당 0.1달러에 불과하지만 아티스트들의 시간은 시간당40달러에 육박하므로 인터렉티브함 역시 중요합니다.
여러분이 가진 시간 내에서 가능한 좋아 보이는 결과를 얻을 수 있는 최선의 접근법을 선택하는 것과, 이미지의 어떠한 속성들이, 예를 들어 복잡한 셰이딩, 복잡한 모션블러, 섭서페이스 스캐터링이나 다른 중요한 빛 효과들 중 어떤 것들이 장면에서 역할을 가지며 어떤 속성들을 더 타협해야 하는지 정밀하게 선택하는 것, 여기에 렌더링의 핵심이 있습니다.
렌더링은 타협안을 속이려 하는 예술입니다.
Pascal Beekmans 에 의해 Modo로 랜더링. Stats: 해상도: 1500*500, Indirect Illumination Monte Carlo, - 24.8B Vertices - 8.27B Poly.
Tuesday, March 29, 2011
Stochastic Progressive Photon Mapping
Labels:
photon,
progressive,
rendering,
sppm,
stochastic,
theory
Wednesday, October 15, 2008
Global Illumination 의 종류와 이해 및 V-Ray의 GI 솔루션
아래 글은 http://www.spot3d.com/vray/help/150R1 에 있는 GI 연산방법의 분류에 대한 내용을 번역한 것입니다.
The rendering equation
거의 모든 현대의 GI랜더러들은 1986년 James T.Kajiya의 논문 "The Rendering Equation"에 의해 소개된 랜더링 방정식에 기반하고 있습니다. 이 방정식은 빛이 어떻게 씬 전체에 전파되는가를 기술하고 있습니다. 또한 Kajiya는 그의 논문에서 path tracing이라 불리는 Monte Carlo 방법을 사용하는 랜더링 방정식에 기반하여 이미지를 계산하기 위한 방법을 제안하고 있습니다.
이 방정식은 사실 엔지니어링 분야에서는 오래전부터 알려져 왔으며 서로 다른 환경에서 방사성 열 전달을 계산하기 위해 사용되어 왔습니다. 하지만 Kajiya 가 처음으로 이 방정식을 컴퓨터 그래픽에 적용하였습니다.
또한 이 랜더링 방정식은 단지 "전자기학을 위한 맥스웰 방정식의 근사치"입니다. 이는 모든 광학적 현상을 모형화하기 위한 것이 아닙니다. 단지 기하광학에 기반하고 있으며 따라서 회절(diffraction)이나 간섭(interference), 편광(polarization)과 같은 것들은 시뮬레이션 할 수 없습니다. 하지만 분광(dispersion)과 같은 파장에 의존한 효과는 쉽게 수정하여 적용될 수 있습니다.
또 한가지 더욱 철학적인 점은 이 랜더링 방정식이 빛이 어떻게 행동하는가 하는 수학적 모델로부터 나온다는 점입니다. 컴퓨터 그래픽을 위해서는 매우 좋은 모델이지만, 빛이 실세계에서 행동하는 것을 정확히 설명하지는 못합니다. 예를 들어서 랜더링 방정식은 빛 줄기가 무한히 미세하게 얇으며 빛의 속도가 무한하다고 가정을 합니다. 하지만 이들 가정은 어느 것도 실제 물리세계에서는 사실이 아닙니다.
랜더링 방정식이 기하광학에 기초하고 있기 때문에 레이트레이싱은 랜더링 방정식을 풀기 위한 매우 편리한 방법입니다. 실제로 대부분의 랜더러는 랜더링 방정식을 레이트레이싱에 기반하여 해결하고 있습니다.
랜더링 방정식의 여러 다른 공식이 가능하지만 Kajiya에 의해 제안된 것은 아래와 같습니다 :
L(x,x1)은 x1지점에서부터 x지점까지 통과하는 빛;
g(x, x1) 는 지오메트리(혹은 visibility term);
e(x, x1) 는 x1포인트에서 x포인트를 향해 빛이 방출되는 세기:
r(x, x1, x2) 는 x2포인트로부터 x1포인트를 통해 x포인트로 가는 분산된 빛;
S는 씬의 모든 표면의 합이며 x,x1과 x2는 S로부터의 지점.
이 방정식이 의미하는 바는 : 씬 내에서 x1지점으로부터 주어진x지점에 도달하는 빛이 모든 다른 x2지점에서 x1지점으로 방출되는 빛과 x를 향해 반사된 빛의 합이라는 의미입니다:
I: Exact vs approximate methods
앞서 언급했듯이, 우리는 이 방정식을 정확히 해결할 수 없습니다 - 비록 매우 작은 것들이라도 언제나 에러들이 존재합니다. 몇몇 랜더링 방법에서는 원하는 수준의 에러가 사용자에 의해 사전에 지정되어지며 이것이 연산의 정확도를 결정합니다 (예를 들면 GI 샘플 밀도, GI ray 갯수나 포톤의 수). 이러한 방법들의 단점은 사용자들이 최종 결과물이 완성될 때까지 전체 연산과정을 기다려야 한다는 점입니다. 또 한가지 단점은 주어진 시간 내에 충분한 퀄리티를 만들어내는 설정방법을 찾기 위해 많은 시행착오를 거쳐야 한다는 점입니다. 하지만 이들 방법의 큰 장점은 지정한 정확도 내에서는 매우 효율적이라는 점입니다. 왜냐하면 알고리즘은 랜더링 방정식의 어려운 부분을 분리하여 해결하는데 집중할 수 있으며 그리고 나서 그 결과를 합칠 수 있기 때문입니다 (예를 들어 독립적인 영역으로 이미지를 분리하여 몇 번의 연산과정을 수행하는 것 등입니다.)
또 다른 방법에서는 이미지가 점진적으로 계산되어집니다 - 초반에는 에러가 크지만 알고리즘이 부가적인 연산을 수행하면서 에러가 점점 작아지는 것입니다. 어느 순간에 우리는 전체 이미지에 대해 적당한 결과를 갖게 됩니다. 그러면 우리는 연산을 종료시킬 수 있으며 그 중간결과를 사용할 수 있게 됩니다.
Exact (unbiased or brute-force) methods.
장점:
* 매우 정확한 결과를 냅니다.
* 이 방법이 만드는 한가지 문제는 노이즈 입니다.
* 이 방법을 사용하는 랜더러들은 이미지품질을 위한 단지 몇 개의 제어옵션을 가집니다.
* 일반적으로 매우 적은 추가메모리를 사용합니다.
단점:
* Unbiased 방법은 adaptive가 아니므로 노이즈가 없는 이미지를 위해서는 매우 느립니다.
* exact 방법에 의해서는 몇가지 효과는 연산될 수 없습니다(예를 들면 포인트 라이트로부터 완벽한 거울을 통해 보여지는 커스틱스)
* 이들 방법에서는 퀄리티 요구수준을 강제하기 힘듭니다.
* Exact 방법은 일반적으로 최종이미지에 직접 적용됩니다. 따라서 Gi솔루션을 저장한 다음 다시 사용할 수 없습니다.
예:
* Path tracing (brute-force GI in some rendereres).
* Bi-directional path tracing.
* Metropolis light transport.
Approximate (biased) methods:
장점:
* Adaptive하므로 일반적으로 exact방법에 비해서 많이 빠릅니다.
* exact 방법에서는 불가능한 효과들을 연산할 수 있습니다. (예를 들면 완벽한 거울을 통과하는 포인트라이트의 커스틱스)
* 품질 요구사항이 설정될 수 있으며 그에 맞게 솔루션이 수정될 수 있습니다.
* 일부 approximate 방법에서는 GI솔루션을 저장하고 다시 사용할 수 있습니다.
단점:
* 비록 일반적으로 오류가 매우 작게 만들어지더라도 완전히 정확한 결과를 내지는 못합니다.
* 얇은 벽체아래의 빛샘과 같은 오류들이 가능합니다.
* 품질을 제어하는 복잡한 설정.
* 일부 approximate방법은 많은 부가적인 메모리를 사용한다.
예:
* Photon mapping.
* Irradiance caching.
* Radiosity.
* Light cache in V-Ray.
Hybrid methods:
일부 효과를 위해서는 exact방법을 사용하며 일부를 위해서는 approximate 방법을 사용합니다.
장점:
* 속도와 품질의 결합
단점:
* 설정하는데 더욱 복잡합니다.
예:
* Final gathering with Min/Max radius 0/0 + photon mapping in mental ray.
* brute force GI + photon mapping or light cache in V-Ray.
* Light tracer with Min/Max rate 0/0 + radiosity in 3ds Max.
* 어떠한 방법은 점근적으로 unbiased가 될 수 있습니다 - 이는 처음에는 다소 bias 로 시작했으나 연산이 수행됨에 따라서 점차적으로 감소되는 것입니다.
II: Gathering vs shooting methods
Shooting methods
이는 빛으로부터 시작하며 빛 에너지가 씬 전체에 퍼지는 방법입니다. 슈팅 방법은 exact 나 aporoximate 방식이 될 수 있습니다.
장점:
* 커스틱스와 같은 빛의 특정 효과를 쉽게 흉내 낼 수 있습니다.
단점:
* 카메라뷰를 고려하지 않습니다. 따라서 이미지상에 보이지 않거나 기여하지 않는 씬의 일부분에 대해 많은 시간을 소모합니다 (예를 들어 눈에 보이지 않는 커스틱스가 여전히 연산되어집니다)
* 빛 가까이에 있는 씬의 부분은 보다 정확한 솔루션을 내지만 빛에서 먼 부분은 부정확하게 연산됩니다.
* 오브젝트라이트나 환경라이트(스카이라이트) 와 같은 효과를 효율적으로 흉내내지 못합니다. 비물리적인 광원은 흉내내기 힘듭니다.
예:
* photon mapping (approximate).
* particle tracing (approximate).
* light tracing (exact).
* some radiosity methods (approximate).
Gathering methods
이 방법은 카메라와/또는 씬의 지오메트리로부터 시작합니다. 개더링 방법 역시 exact나 approximate 방법이 될 수 있습니다.
장점:
* 우리가 관심 있는 씬의 한 부분에 기반하여 작업을 합니다. 따라서 슈팅법에 비해 더욱 효율적입니다.
* 이미지에서 보이는 모든 부분에 매우 정확한 솔루션을 만듭니다.
* 비물리적인 조명과 같은 다양한 빛 효과를 흉내낼 수 있습니다.
단점:
* 포인트 라이트나 작은 에리어 라이트로부터의 커스틱스와 같은 일부 빛 효과는 흉내내기 어렵거나 불가능합니다.
예:
* path tracing (exact)
* irradiance caching (final gathering in mental ray), (approximate).
* some radiosity methods (approximate).
Hybrid methods
이 방법은 슈팅과 개더링을 혼합한 것으로 역시 exact 와 approximate 방법이 될 수 있습니다.
장점:
* 거의 모든 빛 효과를 흉내낼 수 있습니다.
단점:
* 설정이 복잡합니다.
예:
* final gathering + photon mapping in mental ray (approximate).
* irradiance map/brute force GI + photon map in V-Ray (approximate).
* bi-directional path tracing and metropolis light transport (exact).
* some radiosity methods (approximate).
III: Approximate methods: view-dependent vs view-independent solutions
어떠한 approximate방법은 GI솔루션의 저장이 가능합니다. 이 저장된 캐시는 뷰에 대해 독립적이거나 의존적일 수 있습니다.
Shooting methods
장점:
* 슈팅방법은 일반적으로 뷰에 독립적인 솔루션을 만듭니다.
단점:
* 솔루션이 일반적으로 품질이 낮습니다 (흐릿하거나 부족한 디테일). 디테일한 솔루션은 많은 시간과 메모리를 필요로 합니다.
* Adaptive 솔루션을 적용하기 힘듭니다.
* 빛에서 먼 영역은 정확도가 낮습니다.
예:
* photon mapping
* some radiosity methods
Gathering methods
개더링 법과 몇몇 하이브리드 방법은 뷰의존법과 뷰독립법 둘 다 사용합니다.
View-dependent solutions
장점:
* 씬에서 단지 필요한 부분만 고려합니다 ( 보이지 않는 부분에 대해 시간을 낭비하지 않습니다).
* 지오메트리 종류에 제한이 없이 어떠한 종류의 지오메트리와도 작업할 수 있습니다.
* (모든 자세한 디테일을 유지하면서) 매우 고품질의 결과를 만들어낼 수 있습니다.
* 일부 방법에서는 뷰 의존 부분의 글로시 반사와 굴절 등의 솔루션도 저장할 수 있습니다.
* 뷰독립 솔루션에 비해 적은 메모리를 필요로 합니다.
단점:
* 다른 카메라 위치에 대해 업데이트를 필요로 합니다: 솔루션의 일부 수행된 부분이 재사용 되는 수가 있습니다.
예:
* Irradiance caching (in V-Ray, mental ray, finalRender, Brazil r/s, 3ds Max's light tracer).
View-independent solutions
장점:
* 단지 한번만 솔루션이 수행되면 됩니다.
단점:
* 뷰에서 보이지 않는 부분까지 포함하여 씬 내의 모든 지오메트리가 고려됩니다.
* 씬 내의 지오메트리의 종류가 삼각면이나 사각면의 메쉬로 제한됩니다. (프로시저럴 혹은 무한 지오메트리는 허용되지 않습니다)
* 상세한 솔루션은 많은 메모리를 필요로 합니다.
* 단지 솔루션의 디퓨즈 부분만이 캐시됩니다 : 뷰 의존적 부분 (글로시 반사) 은 여전히 연산되어야 합니다.
예:
* Some radiosity methods.
Hybrid methods
서로다른 뷰 의존적 방법과 뷰 독립적 방법이 조합될 수 있습니다.
예:
* photon mapping and irradiance caching in V-Ray.
* photon mapping and final gathering in mental ray.
* radiosity and light tracer in 3ds Max.
GI methods supported by V-Ray
V-Ray는 GI 방정식을 해결하는 다양한 방법을 제공합니다 - exact, approximate, shooting, gathering. 일부 방법은 특정 종류의 씬에 더욱 적합합니다.
Exact methods
V-Ray는 두가지의 exact 방법을 지원합니다. brute force GI 와 progressive path tracing 입니다. 두 방법의 차이점은 brute force GI는 전통적인 이미지 구성 알고리즘 (버켓 랜더링)을 사용하며 adaptive 하다는 것이고, 반면에 path tracing 은 전체 이미지를 한번에 처리하며 adaptive하지 않다는 점입니다.
Approximate methods
그 외의 모든 방법(irradiance map, lightcache, photon map)은 approximate 방법을 사용합니다.
Shooting methods
Photon map 은 V-Ray에서 유일한 슈팅방법입니다. 커스틱스 또한 gathering 방법과 조합하여 포톤맵핑으로 수행될 수 있습니다.
Gathering methods
그 외의 모든 방법(bruce force GI, irradiance map, light cache) 은 gathering 방법입니다.
Hybrid methods
V-Ray는 서로다른 GI 엔진을 프라이머리와 세컨더리 바운스에 사용할 수 있습니다. 이는 사용자들이 자신의 목적에 맞게 exact 와 approximate, shooting과 gathering 알고리즘을 조합할 수 있게 해줍니다. 조합가능한 방법은 GI examples page.에서 볼 수 있습니다.
Subscribe to:
Posts (Atom)