2009-04-22 2 views

답변

39

Aagh! 이 답변은 매우 알려지지 않았습니다!

물론 질문이 정확하지 않은 것은 아닙니다.

"렌더링"은 매우 다양한 주제입니다. 렌더링의 한 가지 문제는 카메라 가시성 또는 "숨겨진 표면 알고리즘"입니다. 각 픽셀에 어떤 물체가 보이는지 파악합니다. 가시성 알고리즘에는 다양한 범주가 있습니다. 그것은 일 것입니다. 포스터가 물었던 것입니다 ("래스터 화"와 "레이 트레이싱"의 이분법으로 생각했습니다).

Sutherland 외 "ACM Computer Surveys 1974 년의 10 가지 숨겨진 표면 알고리즘의 특성화"라는 고전적인 분류 기준은 매우 오래된 것입니다. 그러나 여전히 어떻게 생각했는지에 대한 프레임 워크를 제공하는 데 탁월합니다 그러한 알고리즘들을 분류하는 것이다.

숨겨진 표면 알고리즘의 한 클래스는 객체 (삼각형, 대수 표면, NURBS 등을 포함한 다양한 표현을 가질 수있는)로 각 픽셀을 통과하는 카메라 선의 교차점을 계산하는 "광선 캐스팅"을 포함합니다. .

숨겨진 표면 알고리즘의 다른 클래스에는 "z 버퍼", "스캔 라인 기술", "목록 우선 순위 알고리즘"등이 있습니다. 그들은 계산주기가 많지 않고 z 버퍼를 저장할 메모리가 충분하지 않은 시대의 알고리즘으로 창조적이었습니다.

요즘에는 계산과 메모리가 모두 저렴하기 때문에 세 가지 기술이 거의 없습니다. (1) 모든 것을 삼각형으로 다이빙하고 z 버퍼를 사용합니다. (2) 레이 캐스팅; (3) 투명성 등을 처리하기 위해 확장 z 버퍼를 사용하는 레이즈 류 알고리즘. 최신 그래픽 카드는 # 1을 수행합니다. 하이 엔드 소프트웨어 렌더링은 일반적으로 # 2 또는 # 3 또는 조합을 수행합니다. 다양한 레이 트레이싱 하드웨어가 제안되었지만 때로는 빌드되었지만 잡히지는 않았지만 최신 GPU는 하드 트레이스 된 래스터 화 기술에 비해 심각한 속도의 단점이 있음에도 불구하고 실제로 광선 추적에 충분히 프로그래밍 할 수 있습니다. 다른 이국적인 알고리즘은 오랜 세월에 걸쳐 길을 잃었습니다. (볼륨 렌더링이나 다른 특별한 목적을 위해 다양한 정렬/스플 렛팅 알고리즘을 사용할 수 있습니다.)

"래스터 라이징"은 실제로 "객체가있는 픽셀을 파악하는 것"을 의미합니다. 협약은 광선 추적 (ray tracing)을 제외하라고 지시하지만 이는 불안정합니다. 래스터 화가 "어떤 픽셀이이 셰이프를 오버랩합니까"라고 대답 할 수 있습니다. 반면 광선 추적은 "차이가 보이는 객체는이 픽셀 뒤에 있습니다"라고 대답 할 수 있습니다.

이제는 숨겨진 표면 제거가 "렌더링"분야에서 해결해야 할 유일한 문제는 아닙니다. 각 픽셀에 어떤 객체가 표시되는지 알면 시작에 불과합니다. 당신은 또한 그것이 어떤 색깔인지 알 필요가 있습니다. 이것은 빛이 장면 주위로 전파되는 방식을 계산하는 것을 의미합니다. 일반적으로 그림자, 반사 및 "전역 조명"(조명에서 직접 오는 것과는 대조적으로 객체간에 반사되는)을 처리하는 기술이 많이 있습니다.

"광선 추적"은 그림자, 반사, 전역 조명 등의 가시성을 결정하기 위해 광선 캐스팅 기술을 적용하는 것을 의미합니다. 모든 것에 광선 추적을 사용하거나 카메라 가시성 및 광선 추적을 위해 다양한 래스터 화 방법을 사용할 수 있습니다. 그림자, 반성 및 병사를 "광자 매핑"과 "경로 추적"은 광선 추적을 사용하여 특정 종류의 광선 전파를 계산하는 기술입니다. 그래서 어떻게 든 근본적으로 다른 렌더링 기술이라고 말할 수 있습니다. "radiosity"방법 (전 지구적인 빛 전파를 해결하기위한 유한 요소 접근법이지만, 대부분의 분야에서 최근 유리하지 못함)과 같이 광선 추적을 사용하지 않는 전역 조명 기술이 있습니다. 그러나 광 전파를 위해 라디오 시티 또는 광자 매핑을 사용하는 경우에도 일반적으로 표준 기술 (레이 캐스팅, 버퍼/래스터 화 등) 중 하나를 사용하여 최종 사진을 어떻게 든 작성해야합니다.

특정 모양 표현 (NURBS, 볼륨, 삼각형)을 언급 한 사람도 약간 혼란 스럽습니다. 이것은 광선 추적 대 래스터 화에 대한 직각 문제입니다. 예를 들어, 네비게이션을 직접 추적하거나 네뷸을 삼각형으로 주사하여 추적 할 수 있습니다. 삼각형을 직접 z- 버퍼로 래스터화할 수 있지만 고차원 파라 메트릭 서페이스를 스캔 라인 순서로 직접 래스터화할 수도 있습니다 (c.f. Lane/Carpenter/etc CACM 1980).

+0

"래스터 라이 제이션"에 대한 +1은 실제로 "물체가 놓여있는 픽셀을 알아내는 것"을 의미합니다. 그것을 깨닫는 데 오랜 세월이 걸렸습니다. – Bossliaw

1

위키피디아의 렌더링 기사는 다양한 techniques을 다룹니다.

소개 단락 :

많은 렌더링 알고리즘 이 연구되어 왔으며, 렌더링에 사용되는 소프트웨어의 최종 화상을 얻을 다른 기술들을 사용할 수있다.

장면의 모든 광선을 추적하면 은 비실용적이며 걸릴 것입니다. 을 추적해도 이미지를 생성 할만큼 큰 부분은 이 지능적으로 제한되지 않으면 과도한 양의 시간이 걸립니다.

그러므로 더 효율적인 광 전송 모델링 기법 네 느슨한 가족 나왔다 : 래스터 화, 주사선 렌더링 포함 기하학적 고급 광학 효과없이, 화상 평면 장면 물체를 투영 ; 캐스팅 선 특정 관점을 몬테 카를로 기술을 사용하는 경우에만 형상 및 반사 강도의 매우 기본적인 광학 법, 아마도 에 기초 관찰 화상을 계산하는 을 줄일 관찰로 장면을 고려 유물; radiosity은 유한 요소를 사용하여 요소 수학을 시뮬레이션합니다. 확산 확산 표면에서 ; 및 추적 레이는 레이 캐스팅에 유사하지만, 더 고급 광학 시뮬레이션을 고용하고 은 일반적으로 종종 크기 느린의 주문 ​​인 속도보다 현실적인 결과를 얻을 몬테카를로 기법을 사용합니다.

대부분의 고급 소프트웨어는 두 개 이상의 기술을 결합하여 합리적인 가격 인 의 우수한 결과를 얻습니다.

또 다른 차이점은 이미지 평면의 픽셀을 통해 반복하고 장면 객체를 위해 반복 알고리즘 객체 이미지 위하여 알고리즘 사이이다. 일반적으로 객체는 이고 일반적으로 장면의 객체 수가 더 적으므로 픽셀보다 효율적입니다.

이 설명에서 radiosity은 나에게 개념이 다릅니다.

3

실제로 광선 추적과 매우 비슷하지만 복잡한 장면에서 다양한 이점을 제공하는 photon mapping이라는 기술이 있습니다. 사실, 제대로 수행되면 실제 (즉, 광학의 모든 법칙을 준수합니다) 렌더링을 제공하는 유일한 방법입니다 (적어도 알고 있습니다). 성능이 레이 트레이싱보다 훨씬 나쁘기 때문에 (필자는 광원을 카메라에서 광자로 가져간 경로를 사실상 반대로 시뮬레이션 함) 현저하게 사용되는 기술입니다. 단점. 확실히 흥미로운 알고리즘입니다. 레이 트레이싱 (ray tracing)이 끝나기 전까지는 와이드 스케일 (widescale)에서 사용하지 않을 것입니다.

+1

광선 추적과 마찬가지로이 방법에는 다각형이 필요하지 않습니다. 구체는 완벽하게 표현 될 수 있습니다. 실제로, 폴리곤을 사용하여 가장 복잡한 객체를 모델링하는 것이 가장 쉽습니다. – Noldorin

+1

구가 Raytracing에서도 완벽하게 표현 될 수 있습니다. –

+1

사실적인 렌더링을 제공하는 다른 방법은 경로 추적 (Path Tracing)입니다.이 방법은 결정적 섀도 잉 검사 대신 임의의 광 흐름을 사용하지만 레이 트레이싱과 같습니다. 광자 매핑보다 훨씬 느립니다. :) – FeepingCreature

관련 문제