렌더링
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
렌더링은 3D 장면을 2D 이미지로 변환하는 과정으로, 컴퓨터 그래픽스에서 중요한 기술이다. 역사적으로는 벡터 모니터 시대에 전용 하드웨어를 사용하여 렌더링을 수행했으며, 1980년대에는 3D 그래픽 카드와 아케이드 게임에서 3D 렌더링 가속 기능이 등장했다. 1990년대 이후 GPU의 발전으로 실시간 렌더링이 가능해졌다. 렌더링은 건식, 습식, 천부 기법 등 다양한 방식으로 이루어지며, 2D 및 3D 렌더링으로 구분된다. 3D 렌더링은 로컬 일루미네이션, 글로벌 일루미네이션, 비사실적 렌더링 등 다양한 기법을 포함하며, 렌더링의 과학적, 수학적 기반은 렌더링 방정식과 BRDF를 통해 설명된다. 렌더링은 제품 디자인, 건축 시각화, 영화 제작 등 다양한 분야에서 활용되며, 3ds Max, 블렌더, 마야 등 다양한 렌더링 소프트웨어가 존재한다.
더 읽어볼만한 페이지
| 렌더링 | |
|---|---|
| 컴퓨터 그래픽 렌더링 | |
| 종류 | 오프라인 렌더링 실시간 렌더링 |
| 실시간 렌더링 | |
| 용도 | 비디오 게임 3차원 컴퓨터 그래픽 |
| 과정 | 컴퓨터 게임 개발 3D 모델링 애니메이션 3차원 컴퓨터 그래픽 |
| 오프라인 렌더링 | |
| 용도 | 영화 특수 효과 3차원 컴퓨터 그래픽 |
| 과정 | 3차원 컴퓨터 그래픽 합성 |
| 기술적 측면 | |
| 레이 트레이싱 | 레이 트레이싱 |
| 전역 조명 | 전역 조명 |
| 렌더링 엔진 | 렌더링 엔진 |
| 셰이딩 | 셰이딩 |
| 텍스처 매핑 | 텍스처 매핑 |
| 일본어 렌더링 관련 | |
| 일본어 표기 | レンダリング |
| 언어 | 일본어 |
2. 역사
렌더링 기술은 컴퓨터 그래픽스의 발전과 함께 진화해왔다. 초기에는 단순한 와이어프레임 모델을 표시하는 수준이었지만, 컴퓨팅 성능 향상과 알고리즘 발전에 따라 점차 사실적인 이미지를 생성할 수 있게 되었다. 1980년대 말에는 3D 렌더링 가속 기능을 갖춘 그래픽 카드와 아케이드 게임이 등장하기 시작했으며, 1990년대에는 이러한 기술이 보편화되었다. 오늘날 저전력 모바일 프로세서조차도 일반적으로 3D 그래픽 가속 기능을 통합하고 있다.
2. 1. 초기 렌더링 (1960-1970년대)
벡터 모니터 시대에는 디스플레이 처리 장치(DPU)가 시각적 요소 목록을 유지하고 음극선관(전자빔)을 제어하여 화면에 지속적으로 다시 그리는 전용 중앙 처리 장치(CPU) 또는 보조 프로세서였다. Evans & Sutherland의 Line Drawing System-1과 같은 고급 DPU는 와이어프레임 모델 이미지의 렌더링 속도를 높이기 위해 3D 좌표 변환 기능을 통합했다. Evans & Sutherland는 별과 와이어프레임 그래픽을 모두 렌더링할 수 있는 벡터 디스플레이인 디지스타 플라네타륨 투영 시스템도 제작했다. 디지스타 프로토타입은 영화 스타 트렉 2: 칸의 분노의 3D 별 필드를 렌더링하는 데 사용되었는데, 이는 극장 영화에서 처음으로 선보인 3D 컴퓨터 그래픽 시퀀스 중 일부였다.1970년대와 1980년대 초, 음영 처리된 3D 그래픽 렌더링은 일반적으로 PDP-10 같은 범용 컴퓨터에서 구현되었다(예: 유타 대학교 연구원 사용). 이는 복잡한 단계의 그래픽 파이프라인을 포함하고 데이터 주소 지정, 의사 결정 및 계산 기능이 필요했기 때문에 특수 하드웨어를 사용하여 속도를 높이기 어려웠으며, 이러한 기능은 일반적으로 CPU에서만 제공되었다.
2. 2. 래스터 그래픽스와 3D 렌더링의 발전 (1980년대)
1970년대와 1980년대 초, 음영 처리된 3D 그래픽 렌더링은 PDP-10과 같은 범용 컴퓨터에서 주로 구현되었다. 이는 복잡한 그래픽 파이프라인 단계와 데이터 주소 지정, 의사 결정, 계산 기능이 필요했기 때문에 특수 하드웨어로 가속하기 어려웠고, 이러한 기능은 일반적으로 CPU에서만 제공되었다. 슈퍼컴퓨터, 특수 설계된 멀티 CPU 컴퓨터, 컴퓨터 클러스터는 종종 광선 추적에 사용되었다.1981년, 제임스 H. 클라크와 마크 한나는 3D 래스터화 파이프라인의 일부 단계를 수행하는 초고집적 회로(VLSI) 칩인 지오메트리 엔진을 설계했다. 이들은 이 기술을 상용화하기 위해 실리콘 그래픽스(SGI)를 설립했다.
1980년대 홈 컴퓨터와 비디오 게임 콘솔에는 디스플레이 영역 스크롤, 채우기, 스프라이트 (컴퓨터 그래픽스) 및 선 그리기가 가능한 그래픽 보조 프로세서가 포함되었지만, 현실적인 이미지 렌더링에는 유용하지 않았다. 1980년대 말, 3D 렌더링 가속 기능을 갖춘 그래픽 카드와 아케이드 게임이 등장하기 시작했고, 1990년대에는 이 기술이 보편화되었다. 오늘날 저전력 모바일 프로세서조차도 일반적으로 3D 그래픽 가속 기능을 통합하고 있다.
2. 3. 실시간 렌더링과 GPU의 등장 (1990년대 이후)
1990년대의 3D 그래픽 가속기는 현대적인 GPU로 진화했다. GPU는 CPU와 마찬가지로 범용 프로세서이지만, 작고 유사하며 대부분 독립적인 여러 하위 작업(개별 픽셀 렌더링 등)으로 나뉘어 병렬로 수행될 수 있는 작업에 맞게 설계되었다. 즉, 1990년대의 3D 가속기가 특정 래스터화 알고리즘과 간단한 셰이딩 및 조명 효과를 가속화하도록 설계된 것과 달리, GPU는 이러한 방식으로 하위 작업으로 나눌 수 있는 모든 렌더링 알고리즘의 속도를 높일 수 있다.[16][17]GPU는 기존 3D 래스터화 파이프라인의 일부 단계, 즉 z-버퍼를 사용한 숨겨진 표면 제거 및 밉맵을 사용한 텍스처 매핑에 대한 특수 하드웨어 가속을 여전히 제공하지만, 이러한 기능이 항상 사용되는 것은 아니다.[16] 최근의 GPU는 경계 볼륨 계층 구조와 광선의 교차점을 찾는 속도를 높여 레이 트레이싱과 패스 트레이싱의 모든 변형의 속도를 높이는 데 도움이 되는 기능과 렌더링에 유용한 신경망 가속 기능을 갖추고 있다.[18][19]
GPU는 일반적으로 고대역폭 메모리 시스템과 통합되어 고해상도, 실시간 렌더링의 읽기 및 쓰기 대역폭 요구 사항을 지원하며, 특히 프레임을 렌더링하는 데 여러 번의 과정이 필요한 경우에 유용하다. 하지만 CPU보다 메모리 지연 시간이 더 높을 수 있으며, 이는 알고리즘의 임계 경로에 많은 메모리 접근이 포함된 경우 문제가 될 수 있다. GPU 설계는 높은 지연 시간을 불가피한 것으로 받아들이고 스레드 간의 효율적인 전환을 통해 이를 "숨기려고" 시도한다. 즉, 첫 번째 스레드가 읽기 또는 쓰기 완료를 기다리는 동안 다른 스레드가 계산을 수행할 수 있다.[16][20][21]
렌더링 알고리즘은 동일한 작업을 대부분 수행하는 작은 스레드 그룹을 사용하여 구현할 수 있는 경우에만 GPU에서 효율적으로 실행된다. 성능 및 아키텍처상의 이유로 GPU는 록스텝으로 ''워프'' 또는 ''웨이브프론트''라고 하는 약 16-64개의 스레드 그룹을 실행한다(그룹의 모든 스레드가 동시에 동일한 명령을 실행). 그룹의 모든 스레드가 특정 코드 블록을 실행할 필요가 없는 경우(조건으로 인해) 일부 스레드는 유휴 상태가 되거나 계산 결과가 폐기되어 성능이 저하된다.[16][21]
3. 렌더링의 종류
렌더링된 이미지는 다양한 시각적 특징으로 표현된다. 렌더링 연구 개발은 이러한 특징들을 효율적으로 시뮬레이션하는 방법을 찾는 데 목표를 두고 발전해왔다. 이러한 특징 중 일부는 특정 알고리즘 및 기술과 직접적으로 관련되어 있으며, 다른 일부는 함께 작용하여 나타난다.
- 쉐이딩 - 표면의 색상과 밝기가 조명에 따라 어떻게 변화하는가
- 텍스처 매핑 - 표면에 세밀한 질감을 표현하는 방법
- 범프 매핑 - 표면의 미세한 굴곡을 시뮬레이션하는 방법
- 안개/참여 매체 - 맑지 않은 대기나 공기를 통과할 때 빛이 어떻게 희미해지는가
- 그림자 - 빛을 가리는 효과
- 소프트 섀도우 - 부분적으로 가려진 광원으로 인해 발생하는 다양한 그림자
- 반사 - 거울처럼 빛을 반사하거나 매우 광택이 나는 표면
- 투명도 (광학), 투명도 (그래픽) 또는 불투명도 - 고체 물체를 통과하는 빛의 투과 (날카로운 투과)
- 반투명도 - 고체 물체를 통과하는 빛의 투과 (빛이 강하게 산란됨)
- 굴절 - 투명도와 관련된 빛의 굽힘 현상
- 회절 - 물체나 구멍을 통과하는 빛의 굽힘, 확산, 간섭으로 인해 광선이 방해받는 현상
- 간접 조명 - 광원으로부터 직접 받는 빛이 아닌, 다른 표면에서 반사된 빛으로 인해 밝혀지는 표면 (전역 조명)
- 카우스틱 (간접 조명의 일종) - 빛나는 물체에서 반사되거나 투명한 물체를 통과하며 집중된 빛이 다른 물체에 밝은 하이라이트를 생성하는 현상
- 피사계 심도 - 초점이 맞는 물체의 앞이나 뒤에 너무 멀리 떨어져 있는 물체가 흐릿하게 보이는 현상
- 모션 블러 - 고속으로 움직이거나 카메라가 움직일 때 물체가 흐릿하게 보이는 현상
- 비사실적 렌더링 - 회화나 그림처럼 보이도록 의도된 예술적 스타일의 장면 렌더링
렌더링의 종류는 다음과 같다.
- 로컬 일루미네이션, 다이렉트 일루미네이션
- 스캔라인 렌더링
- 레이 트레이싱
- 글로벌 일루미네이션
- 라디오시티
- 포톤 매핑
- MLT
- ERPT
- 비 사실적 렌더링
- 툰 렌더링
3. 1. 2D 렌더링
2D 렌더링은 2차원 벡터 그래픽스나 비트맵 이미지를 생성하는 과정이다. 2D 그래픽 및 페이지 레이아웃을 설명하는 표준화되고 상호 운용 가능한 방법을 제공하는 PostScript 형식이 있으며, Scalable Vector Graphics (SVG) 형식도 텍스트 기반이며 PDF 형식은 내부적으로 PostScript 언어를 사용한다.벡터 그래픽스 이미지 설명은 다음을 포함할 수 있다.
- 좌표 및 곡률 정보 (선분, 원호, 베지어 곡선 등 채워진 도형의 경계로 사용될 수 있음)
- 기본 도형의 중심 좌표, 너비 및 높이 (또는 경계 사각형 좌표) (예: 직사각형, 원, 타원)
- 선을 렌더링하기 위한 색상, 너비 및 패턴 (예: 대시 또는 점선)
- 도형 채우기를 위한 색상, 패턴 및 그라데이션
- 비트맵 이미지 데이터 (내장 또는 외부 파일)와 크기 및 위치 정보
- 렌더링할 텍스트 (크기, 위치, 방향, 색상 및 글꼴과 함께)
- 도형 또는 비트맵 이미지의 일부만 렌더링해야 하는 경우의 클리핑 정보
- 겹치는 도형을 렌더링하기 위한 투명도 및 합성 정보
- 색 공간 정보, 이미지를 서로 다른 디스플레이 및 프린터에서 일관되게 렌더링할 수 있음
- 3차원 객체나 광원의 정보로부터 3DCG를 묘화
- Adobe After Effects와 같은 효과를 주는 프로그램(에펙터)이 효과의 파라미터로부터 영상을 출력
- OS나 텍스트 편집기 또는 DTP 소프트웨어가 문자 코드로부터 문자를 표시
- DTM 소프트웨어가 MIDI 데이터 등으로부터 음성 신호를 생성 (특히, 실시간 연주가 아닌 사전에 음성 신호를 생성한 후 그것을 재생하는 것을 가리킴)
- 웹 브라우저가 HTML 등으로부터 웹 페이지를 표시
- 웹 애플리케이션 프레임워크 등에서 HTML 등을 열람 전부터 사전에 생성하는 것을 프리렌더링이라고 하며, 이렇게 하면 웹 브라우저의 부하가 감소하여 속도가 빨라지므로, 검색 엔진 최적화(SEO) 등이 향상
3. 2. 3D 렌더링
3D 렌더링은 3차원 공간에 배치된 객체, 광원, 카메라 등의 정보를 바탕으로 2차원 이미지를 생성하는 과정이다. 3D 렌더링은 크게 로컬 일루미네이션, 글로벌 일루미네이션, 비사실적 렌더링으로 나뉜다.렌더링된 이미지는 여러 가지 시각적 특징으로 표현된다. 렌더링 연구 개발은 이러한 특징을 효율적으로 시뮬레이션하는 방법을 찾는 데 목표를 두고 발전해왔다.
3D 장면 또는 2D 이미지를 렌더링하기 전에는 렌더링 소프트웨어가 이해할 수 있는 방식으로 3D 장면을 설명해야 한다. 3D 그래픽의 경우 텍스트 형식은 더 효율적인 바이너리 형식으로 대체되었으며, API를 사용하면 대화형 애플리케이션이 디스크에 파일을 생성하지 않고도 렌더링 구성 요소와 직접 통신할 수 있다. 장면 설명은 일반적으로 렌더링 전에 메모리에 생성된다.
기하학적 장면 묘사는 다음을 포함할 수 있다.
- 구와 원뿔과 같은 기하 기본체의 크기, 위치 및 방향
- 정점 좌표 및 표면 법선 유클리드 벡터 메쉬 (삼각형 또는 다각형)
- 장면 내에서 객체의 위치, 회전 및 크기 조정을 위한 기하 변환
- 장면이 어떻게 보이는지 설명하는 "카메라" 정보 (위치, 방향, 초점 거리, 시야각)
- 조명 정보 (위치, 유형, 밝기 및 색상)
- 표면의 광학적 특성 (예: 알베도, 반사율, 굴절률)
- 빛이 통과하는 매체의 광학적 특성 (투명한 고체, 액체, 구름, 연기) (예: 흡수 단면적 및 산란 단면적)
- 표면의 텍스처 매핑으로 사용되는 비트맵 이미지 데이터
- 복잡한 3D 형상 또는 장면을 절차적으로 생성하기 위한 작은 스크립트 또는 프로그램
- 애니메이션을 렌더링하기 위해 객체 및 카메라 위치와 기타 정보가 시간에 따라 어떻게 변경되는지에 대한 설명
개별 3D 객체 또는 "모델"을 저장하기 위해 많은 파일 형식이 존재한다. 이러한 파일은 더 큰 장면으로 가져오거나 렌더링 소프트웨어 또는 게임에서 필요에 따라 로드할 수 있다.
과학 및 공학 시각화는 종종 3D 스캔 또는 시뮬레이션에 의해 생성된 체적 데이터의 렌더링을 필요로 한다. 이러한 데이터의 가장 일반적인 소스는 진단을 위해 렌더링해야 하는 의료 CT 및 MRI 스캔일 것이다.
최근의 실험적인 접근 방식은 공간의 각 지점에서 들어오는 빛의 색상, 강도 및 방향을 정의하는 방사 필드를 사용하여 장면을 설명하는 것이다. 신경망은 일반적으로 비디오 프레임 또는 서로 다른 각도에서 촬영한 장면의 사진 모음을 훈련 데이터로 사용하여 이러한 근사치를 생성하고 평가하는 데 사용된다.
신경망과 관련된 알고리즘은 최근 3D 가우시안으로 장면을 근사하는 데 사용되었다. 결과 표현은 점군과 유사하지만, 점 대신 다양한 크기와 방향의 흐릿하고 부분적으로 투명한 덩어리를 사용한다는 점이 다르다.
3. 2. 1. 로컬 일루미네이션 (Local Illumination)
Local Illumination영어은 객체 표면에서 직접 반사되는 빛만을 고려하는 렌더링 방식이다. 다이렉트 일루미네이션이라고도 한다. 로컬 일루미네이션은 다음의 렌더링 방식을 포함한다.- 스캔라인 렌더링
- 레이 트레이싱
3. 2. 2. 글로벌 일루미네이션 (Global Illumination)

'''글로벌 일루미네이션'''(Global Illumination)은 직접광뿐만 아니라, 다른 객체나 환경에서 반사되어 간접적으로 도달하는 빛까지 고려하는 렌더링 방식이다.
- 라디오시티
- 포톤 매핑
- MLT
- ERPT
3. 2. 3. 비사실적 렌더링 (Non-Photorealistic Rendering)
인공 신경망을 사용하는 렌더링 기법을 신경 렌더링이라고 한다.[8][9] 신경 렌더링에는 2차원 이미지에서 3D 모델을 재구성하는 데 사용되는 이미지 기반 렌더링 기법이 포함된다.[8] 이러한 기법 중 하나는 물체의 여러 각도에서 촬영한 이미지 모음을 3D 모델로 변환하는 사진 측량법이다. 또한 Nvidia, Google 및 기타 다양한 회사에서 텍스트와 거친 그림을 기반으로 3D 모델을 생성하고 렌더링하는 데 최근 개발이 있었다.4. 렌더링 기법
렌더링된 이미지는 여러 가지 시각적 특징으로 이해할 수 있다. 렌더링 연구 개발은 이러한 특징을 효율적으로 시뮬레이션하는 방법을 찾는 데 크게 동기 부여되었다. 일부는 특정 알고리즘 및 기술과 직접 관련이 있으며, 다른 기능은 함께 생성된다.[12]
- 쉐이딩 - 표면의 색상과 밝기가 조명에 따라 어떻게 달라지는지
- 텍스처 매핑 - 표면에 디테일을 적용하는 방법
- 범프 매핑 - 표면에 작은 규모의 울퉁불퉁함을 시뮬레이션하는 방법
- 안개/참여 매체 - 맑지 않은 대기 또는 공기를 통과할 때 빛이 어떻게 흐려지는지
- 그림자 - 빛을 가리는 효과
- 소프트 섀도우 - 부분적으로 가려진 광원으로 인해 발생하는 다양한 어두움
- 반사 - 거울과 같은 또는 매우 광택이 나는 반사
- 투명도 (광학), 투명도 (그래픽) 또는 불투명도 - 고체 객체를 통해 빛을 날카롭게 투과
- 반투명도 - 고체 객체를 통해 빛을 매우 산란하여 투과
- 굴절 - 투명도와 관련된 빛의 굴절
- 회절 - 물체나 조리개를 지나가는 빛의 굴절, 확산 및 간섭으로 광선이 방해됨
- 간접 조명 - 광원으로부터 직접 빛이 아닌 다른 표면에서 반사된 빛에 의해 조명된 표면 (전역 조명이라고도 함)
- 카우스틱 (간접 조명의 한 형태) - 빛나는 물체에서 빛을 반사하거나 투명한 물체를 통해 빛을 집중시켜 다른 물체에 밝은 하이라이트를 생성
- 피사계 심도 - 초점이 맞는 물체 앞이나 뒤로 너무 멀리 떨어져 있으면 물체가 흐리거나 초점이 맞지 않게 보임
- 모션 블러 - 고속 움직임 또는 카메라의 움직임으로 인해 물체가 흐리게 보임
- 비사실적 렌더링 - 회화 또는 그림처럼 보이도록 의도된 예술적 스타일의 장면 렌더링
3차원 장면을 렌더링하는 방법은 속도, 메모리 사용량, 현실감 사이의 균형을 맞춰야 한다(현실감이 항상 필요한 것은 아니지만).[12] 수년에 걸쳐 개발된 렌더링 알고리즘은 컴퓨팅 능력과 메모리 용량이 증가함에 따라 더 발전된 방법이 실용화되면서 발전해왔다. 단일 최종 이미지에 여러 기술을 사용할 수 있다.[12]
이미지 평면의 픽셀을 반복하는 이미지 순서 렌더링 알고리즘과 장면의 객체를 반복하는 객체 순서 렌더링 알고리즘 간에는 중요한 차이점이 있다. 간단한 장면의 경우 픽셀보다 객체가 적기 때문에 객체 순서가 일반적으로 더 효율적이다.
- 벡터 그래픽: 1960-1970년대의 벡터 모니터는 전자 빔의 편향을 사용하여 화면에 직접 선분을 그렸다. 요즘에는 벡터 그래픽이 채워진 도형도 지원하는 래스터화 알고리즘으로 렌더링된다. 모든 2D 벡터 그래픽 렌더러는 먼저 3D 객체를 2D 이미지 평면에 투영하여 3D 객체를 렌더링하는 데 사용할 수 있다.
- 3D 래스터화: 2D 래스터화 알고리즘을 3D 렌더링에 더 효율적으로 사용하기 위해 조정되었다. 은면 제거는 주사선 렌더링 또는 Z 버퍼링 기술을 통해 처리한다. 객체가 덮는 픽셀을 다른 방식으로 색칠하여 다양한 사실적 또는 양식화된 효과를 얻을 수 있다. 표면은 일반적으로 래스터화되기 전에 삼각형의 폴리곤 메쉬로 나뉜다. 래스터화는 일반적으로 "객체 순서" 렌더링과 동의어이다.
- 광선 추적: 기하학적 공식을 사용하여 광선이 교차하는 첫 번째 객체를 계산한다. 각 픽셀에 대해 광선을 투사하고 장면에서 해당 지점을 찾아 "이미지 순서" 렌더링을 구현할 수 있다. 광선 추적은 그래픽 및 비그래픽 목적으로 사용되는 기본적인 연산이다. 예를 들어, 지점이 그림자에 있는지 여부를 결정하거나 적이 게임에서 무엇을 볼 수 있는지 확인하는 데 사용된다.
- 광선 추적: 경면 반사 및 굴절로 인해 발생하는 빛의 반사 경로를 시뮬레이션하며, 각 경로에 대해 다양한 수의 광선 추적 연산이 필요하다. 고급 형태는 몬테카를로 방법을 사용하여 면 광원, 피사계 심도, 흐린 반사 및 부드러운 그림자와 같은 효과를 렌더링하지만, 전역 조명 계산은 일반적으로 경로 추적의 영역에 속한다.
- 방사도: 장면의 표면을 조각으로 나누고 각 조각이 광원에서, 또는 다른 표면에서 간접적으로 받는 빛의 양을 추정하는 유한 요소법 접근 방식이다. 각 표면의 조도를 알게 되면 래스터화 또는 광선 추적을 사용하여 장면을 렌더링할 수 있다.
- 경로 추적: 광원에서 카메라로 이동할 때 광자가 취할 수 있는 가능한 경로의 샘플의 평균 밝기를 계산하는 단순화된 형태의 광선 추적을 사용하여 몬테카를로 적분을 사용한다(일부 이미지의 경우 픽셀당 수천 개의 경로를 샘플링해야 함). 이는 렌더링 방정식을 해결하는 편향되지 않은 렌더링 방법으로 도입되어 광선 추적에 엄격한 수학적 기초를 제공했다.
광선 행진은 부피 데이터 집합 또는 부호 거리 함수로 정의된 표면과 같은 복잡한 객체와 광선 간의 교차점을 찾는 데 사용되는 광선 추적 알고리즘의 일종이다. 광선 추적 및 경로 추적에 통합될 수 있으며, 스크린 공간 반사 및 기타 효과를 구현하기 위해 래스터화에서 사용된다.
광자 맵핑은 광원에서 객체까지 광자의 경로를 추적하여 조도에 대한 데이터를 누적한 다음 기존 광선 추적 또는 경로 추적 중에 사용한다. 빛의 원천에서 카메라로 추적된 광선만 사용하여 장면을 렌더링하는 것은 현실에 더 가깝지만, 엄청난 수의 광자를 시뮬레이션해야 하고, 실제로 카메라에 도달하는 것은 극히 일부이기 때문에 비실용적이다.
비디오 게임 그래픽을 포함한 실시간 렌더링은 일반적으로 래스터화를 사용하지만, 점점 더 광선 추적 및 경로 추적과 결합하고 있다. 현실적인 전역 조명을 가능하게 하기 위해, 실시간 렌더링은 종종 정지 객체의 미리 렌더링된 ("구워진") 조명에 의존한다. 움직이는 객체의 경우, ''광원 프로브''라는 기술을 사용할 수 있는데, 이는 공간의 선택된 지점(종종 보간을 더 쉽게 하기 위해 그리드상의 점)에서 장면의 전방향 보기를 렌더링하여 조명을 기록한다. 이것은 환경 맵과 유사하지만, 일반적으로 매우 낮은 해상도 또는 구면 고조파와 같은 근사치를 사용한다.





4. 1. 기본 요소 표현
제품의 형태와 비례는 투시도를 통해 정확하게 표현될 수 있으며, 빛에 의한 음영과 색상은 음영 및 색상 표현을 통해 나타낼 수 있다. 또한, 위치나 공간에 따라 공간 표현이 가능하며, 사용 재료나 패턴 등은 재질 표현을 통해 사실적으로 나타낼 수 있다.3D 장면이나 2D 이미지를 렌더링하기 전에는 렌더링 소프트웨어가 이해할 수 있는 방식으로 설명해야 한다. 역사적으로 2D 및 3D 렌더링의 입력은 텍스트 파일이었지만, 3D 그래픽에서는 텍스트 형식보다 효율적인 바이너리 형식이 대량으로 사용되고 있다. API를 통해 대화형 애플리케이션이 파일을 생성하지 않고도 렌더링 구성 요소와 직접 통신할 수 있게 되었다.[1]
기존의 렌더링 알고리즘은 3D 장면이나 2D 이미지의 기하학적 설명을 사용한다. 실제 세계에서 스캔한 데이터나 과학적 컴퓨터 시뮬레이션의 시각화를 렌더링하는 애플리케이션 및 알고리즘은 다른 유형의 입력 데이터가 필요할 수 있다.[2]
PostScript 형식은 2D 그래픽 및 페이지 레이아웃을 설명하는 표준화된 방법을 제공하며, Scalable Vector Graphics (SVG) 형식도 텍스트 기반이고, PDF 형식은 내부적으로 PostScript 언어를 사용한다. 반면, 많은 3D 그래픽 파일 형식이 표준화되었지만, 다른 렌더링 애플리케이션은 일반적으로 요구 사항에 맞게 조정된 형식을 사용한다.[3]
기하학적 장면 묘사는 다음을 포함할 수 있다:[4]
- 구와 원뿔과 같은 기하 기본체의 크기, 위치 및 방향
- 정점 좌표 및 표면 법선 유클리드 벡터 메쉬
- 장면 내에서 객체의 위치, 회전 및 크기 조정을 위한 기하 변환
- 장면이 어떻게 보이는지 설명하는 "카메라" 정보 (위치, 방향, 초점 거리, 시야각)
- 조명 정보 (위치, 유형, 밝기 및 색상)
- 표면의 광학적 특성 (예: 알베도, 반사율, 굴절률)
- 빛이 통과하는 매체의 광학적 특성 (예: 흡수 단면적 및 산란 단면적)
- 표면의 텍스처 매핑으로 사용되는 비트맵 이미지 데이터
- 복잡한 3D 형상 또는 장면을 절차적으로 생성하기 위한 작은 스크립트 또는 프로그램
- 애니메이션을 렌더링하기 위해 객체 및 카메라 위치와 기타 정보가 시간에 따라 어떻게 변경되는지에 대한 설명
개별 3D 객체 또는 "모델"을 저장하기 위해 많은 파일 형식이 존재한다. 현실적인 장면에는 가정용 물건, 차량 및 나무와 같은 수백 개의 항목이 필요할 수 있으며, 환경 아티스트는 종종 대규모 모델 라이브러리를 활용한다. 게임 제작에서 이러한 모델을 "자산"이라고 한다.[5]
과학 및 공학 시각화는 종종 3D 스캔 또는 시뮬레이션에 의해 생성된 체적 데이터의 렌더링을 필요로 한다. 이러한 데이터의 가장 일반적인 소스는 의료 CT 및 MRI 스캔이다. 체적 데이터는 매우 클 수 있으며, 특히 체적이 데이터를 포함하지 않는 빈 영역을 가진 ''희소''인 경우 특수화된 데이터 형식이 필요하다.[6]
렌더링 전에 레벨 셋은 체적 데이터를 위해 추출되어 마칭 큐브 알고리즘을 사용하여 삼각형의 메쉬로 변환될 수 있다. 또한 체적 데이터를 직접 사용하는 알고리즘이 개발되었으며, 이러한 유형의 체적 렌더링은 영화의 시각 효과에 광범위하게 사용된다. 보간 없이 저해상도 체적 데이터를 렌더링할 때 개별 큐브 또는 "복셀"이 보일 수 있으며, 이 효과는 게임 그래픽에 의도적으로 사용되기도 한다.[7]
실제 물체의 사진은 3D 객체의 텍스처로 사용하여 렌더링된 장면에 통합될 수 있다. 장면의 사진은 또한 파노라마 또는 환경 맵을 생성하기 위해 함께 연결될 수 있다. 구조광 3D 스캐너 또는 라이다를 사용한 실제 물체와 장면의 스캔은 때로는 색상 정보와 함께 공간의 수백만 개 개별 점의 좌표로 구성된 점 구름을 생성한다. 이러한 점 구름은 직접 렌더링되거나 렌더링 전에 메쉬로 변환될 수 있다.[8]
렌더링의 결과는 화면에 즉시 표시되거나, JPEG 또는 PNG와 같은 래스터 그래픽스 파일 형식으로 저장될 수 있다. 고급 렌더링 응용 프로그램은 일반적으로 OpenEXR 파일 형식을 사용하며, 품질 저하 없이 톤 매핑 또는 기타 조정을 나중에 적용할 수 있다.[9]
빠르게 렌더링된 애니메이션은 비디오 파일로 직접 저장할 수 있지만, 고품질 렌더링의 경우 개별 프레임이 별도의 파일로 출력되어 나중에 비디오 클립으로 결합된다.[10]
렌더러의 출력에는 때때로 RGB 색상 값 이상이 포함된다. 예를 들어, 스펙트럼은 여러 파장의 빛을 사용하여 샘플링할 수 있으며, 깊이나 이미지의 각 지점의 재질과 같은 추가 정보를 포함할 수 있다. 투명도 정보를 포함하여 렌더링된 전경 개체를 사진 또는 비디오와 합성할 수 있다. 또한 서로 다른 조명 또는 반사 및 확산 조명의 기여도를 별도의 채널로 저장하여 렌더링 후 조명을 조정할 수 있는 경우도 있다. OpenEXR 형식은 단일 파일에 많은 채널의 데이터를 저장할 수 있다.[11]
3D 장면을 렌더링하는 방법을 선택하는 것은 일반적으로 속도, 메모리 사용량, 현실감 사이에서 트레이드 오프가 필요하다. 수년에 걸쳐 개발된 알고리즘은 컴퓨팅 능력과 메모리 용량이 증가함에 따라 더 발전된 방법이 실용화되었다. 단일 최종 이미지에 여러 기술을 사용할 수 있다.[12]
이미지 평면의 픽셀을 반복하는 이미지 순서 렌더링 알고리즘과 장면의 객체를 반복하는 객체 순서 렌더링 알고리즘 간에는 중요한 차이점이 있다. 간단한 장면의 경우 픽셀보다 객체가 적기 때문에 객체 순서가 일반적으로 더 효율적이다.[13]
'''렌더링 알고리즘'''[14]
- 벡터 그래픽: 1960-1970년대의 벡터 모니터는 전자 빔의 편향을 사용하여 화면에 직접 선분을 그렸다. 요즘에는 벡터 그래픽이 채워진 도형도 지원하는 래스터화 알고리즘으로 렌더링된다. 모든 2D 벡터 그래픽 렌더러는 먼저 3D 객체를 2D 이미지 평면에 투영하여 3D 객체를 렌더링하는 데 사용할 수 있다.[15]
- 3D 래스터화: 2D 래스터화 알고리즘을 3D 렌더링에 더 효율적으로 사용할 수 있도록 조정하여, 은면 제거를 주사선 렌더링 또는 Z 버퍼링 기술을 통해 처리한다. 객체가 덮는 픽셀을 다른 방식으로 색칠하여 다양한 사실적 또는 양식화된 효과를 얻을 수 있다. 표면은 일반적으로 래스터화되기 전에 삼각형의 폴리곤 메쉬로 나뉜다. 래스터화는 일반적으로 "객체 순서" 렌더링과 동의어이다.[16]
- 광선 추적: 기하학적 공식을 사용하여 광선이 교차하는 첫 번째 객체를 계산한다.[17] 각 픽셀에 대해 광선을 투사하고 장면에서 해당 지점을 찾아 "이미지 순서" 렌더링을 구현하는 데 사용할 수 있다. 광선 추적은 그래픽 및 비그래픽 목적으로 사용되는 기본적인 연산이다.[18] 예를 들어, 지점이 그림자에 있는지 여부를 결정하거나 적이 게임에서 무엇을 볼 수 있는지 확인하는 데 사용된다.
- 광선 추적: 경면 반사 및 굴절로 인해 발생하는 빛의 반사 경로를 시뮬레이션하며, 각 경로에 대해 다양한 수의 광선 추적 연산이 필요하다. 고급 형태는 몬테카를로 방법을 사용하여 면 광원, 피사계 심도, 흐린 반사 및 부드러운 그림자와 같은 효과를 렌더링하지만, 전역 조명 계산은 일반적으로 경로 추적의 영역에 속한다.[19]
- 방사도: 장면의 표면을 조각으로 나누고 각 조각이 광원에서, 또는 다른 표면에서 간접적으로 받는 빛의 양을 추정하는 유한 요소법 접근 방식이다. 각 표면의 조도를 알게 되면 래스터화 또는 광선 추적을 사용하여 장면을 렌더링할 수 있다.[20]
- 경로 추적: 광원에서 카메라로 이동할 때 광자가 취할 수 있는 가능한 경로의 샘플의 평균 밝기를 계산하는 단순화된 형태의 광선 추적을 사용하여 몬테카를로 적분을 사용한다.[21] 이는 렌더링 방정식을 해결하는 편향되지 않은 렌더링 방법으로 도입되어 광선 추적에 엄격한 수학적 기초를 제공했다.[22]
위의 각 접근 방식에는 많은 변형이 있으며, 약간의 중복이 있다. 경로 추적은 별개의 기술 또는 특정 유형의 광선 추적이라고 간주될 수 있다.[23] 광선 추적 및 경로 추적과 관련된 용어의 사용은 시간이 지남에 따라 크게 변경되었다.[24]
광선 행진은 부피 데이터 집합 또는 부호 거리 함수로 정의된 표면과 같은 복잡한 객체와 광선 간의 교차점을 찾는 데 사용되는 광선 추적 알고리즘의 일종이다. 그것은 그 자체로 렌더링 방법은 아니지만, 광선 추적 및 경로 추적에 통합될 수 있으며, 스크린 공간 반사 및 기타 효과를 구현하기 위해 래스터화에서 사용된다.[25]
광자 맵핑이라고 하는 기술은 광원에서 객체까지 광자의 경로를 추적하여 조도에 대한 데이터를 누적한 다음 기존 광선 추적 또는 경로 추적 중에 사용한다.[26] 빛의 원천에서 카메라로 추적된 광선만 사용하여 장면을 렌더링하는 것은 현실에 더 가깝지만, 엄청난 수의 광자를 시뮬레이션해야 하고, 실제로 카메라에 도달하는 것은 극히 일부이기 때문에 비실용적이다.[27]
일부 저자는 기존의 광선 추적을 광자가 카메라에서 광원으로 거꾸로 경로를 추적하기 때문에 "후방" 광선 추적이라고 부르고, 광원(광자 맵핑에서와 같이)에서 경로를 따르는 것을 "전방" 광선 추적이라고 부른다.[28] 그러나 때로는 이러한 용어의 의미가 반전된다.[29] 광원에서 시작하는 광선을 추적하는 것을 모호성을 피하기 위해 "입자 추적" 또는 "광선 추적"이라고도 할 수 있다.[30]
비디오 게임 그래픽을 포함한 실시간 렌더링은 일반적으로 래스터화를 사용하지만, 점점 더 광선 추적 및 경로 추적과 결합하고 있다.[31] 현실적인 전역 조명을 가능하게 하기 위해, 실시간 렌더링은 종종 정지 객체의 미리 렌더링된 ("구워진") 조명에 의존한다. 움직이는 객체의 경우, 공간의 선택된 지점(종종 보간을 더 쉽게 하기 위해 그리드상의 점)에서 장면의 전방향 보기를 렌더링하여 조명을 기록하는 ''광원 프로브''라는 기술을 사용할 수 있다. 이것은 환경 맵과 유사하지만, 일반적으로 매우 낮은 해상도 또는 구면 고조파와 같은 근사치를 사용한다.[32]
4. 2. 주요 기법
3D 장면을 렌더링하는 방법을 선택하는 것은 일반적으로 속도, 메모리 사용량, 현실감 사이에서 균형을 맞춰야 한다(현실감이 항상 필요한 것은 아니지만). 수년에 걸쳐 개발된 알고리즘은 컴퓨팅 능력과 메모리 용량이 증가함에 따라 더 발전된 방법이 실용화되면서 발전해왔다. 단일 최종 이미지에 여러 기술을 사용할 수 있다.
이미지 평면의 픽셀을 반복하는 이미지 순서 렌더링 알고리즘과 장면의 객체를 반복하는 객체 순서 렌더링 알고리즘 간의 중요한 차이점이 있다. 간단한 장면의 경우 픽셀보다 객체가 적기 때문에 객체 순서가 일반적으로 더 효율적이다.
; 벡터 그래픽
: 1960-1970년대의 벡터 모니터는 전자 빔의 편향을 사용하여 화면에 직접 선분을 그렸다. 요즘에는 벡터 그래픽이 채워진 도형도 지원하는 래스터화 알고리즘으로 렌더링된다. 원칙적으로, 모든 2D 벡터 그래픽 렌더러는 먼저 3D 객체를 2D 이미지 평면에 투영하여 3D 객체를 렌더링하는 데 사용할 수 있다.
; 3D 래스터화
: 2D 래스터화 알고리즘을 3D 렌더링에 더 효율적으로 사용할 수 있도록 조정하여, 은면 제거를 주사선 렌더링 또는 Z 버퍼링 기술을 통해 처리한다. 객체가 덮는 픽셀을 다른 방식으로 색칠하여 다양한 사실적 또는 양식화된 효과를 얻을 수 있다. 표면은 일반적으로 래스터화되기 전에 삼각형의 폴리곤 메쉬로 나뉜다. 래스터화는 일반적으로 "객체 순서" 렌더링과 동의어이다.
; 광선 추적
: 기하학적 공식을 사용하여 광선이 교차하는 첫 번째 객체를 계산한다. 각 픽셀에 대해 광선을 투사하고 장면에서 해당 지점을 찾아 "이미지 순서" 렌더링을 구현하는 데 사용할 수 있다. 광선 추적은 그래픽 및 비그래픽 목적으로 사용되는 기본적인 연산이다. 예를 들어, 지점이 그림자에 있는지 여부를 결정하거나 적이 게임에서 무엇을 볼 수 있는지 확인하는 데 사용된다.
; 광선 추적
: 경면 반사 및 굴절로 인해 발생하는 빛의 반사 경로를 시뮬레이션하며, 각 경로에 대해 다양한 수의 광선 추적 연산이 필요하다. 고급 형태는 몬테카를로 방법을 사용하여 면 광원, 피사계 심도, 흐린 반사 및 부드러운 그림자와 같은 효과를 렌더링하지만, 전역 조명 계산은 일반적으로 경로 추적의 영역에 속한다.
; 방사도
: 장면의 표면을 조각으로 나누고 각 조각이 광원에서, 또는 다른 표면에서 간접적으로 받는 빛의 양을 추정하는 유한 요소법 접근 방식이다. 각 표면의 조도를 알게 되면 래스터화 또는 광선 추적을 사용하여 장면을 렌더링할 수 있다.
; 경로 추적
: 광원에서 카메라로 이동할 때 광자가 취할 수 있는 가능한 경로의 샘플의 평균 밝기를 계산하는 단순화된 형태의 광선 추적을 사용하여 몬테카를로 적분을 사용한다(일부 이미지의 경우 픽셀당 수천 개의 경로를 샘플링해야 함). 이는 렌더링 방정식을 해결하는 편향되지 않은 렌더링 방법으로 도입되어 광선 추적에 엄격한 수학적 기초를 제공했다.
위의 각 접근 방식에는 많은 변형이 있으며, 약간의 중복이 있다. 경로 추적은 별개의 기술 또는 특정 유형의 광선 추적이라고 간주될 수 있다. 광선 추적 및 경로 추적과 관련된 용어는 시간이 지남에 따라 크게 변경되었다.
광선 행진은 부피 데이터 집합 또는 부호 거리 함수로 정의된 표면과 같은 복잡한 객체와 광선 간의 교차점을 찾는 데 사용되는 광선 추적 알고리즘의 일종이다. 그 자체로 렌더링 방법은 아니지만, 광선 추적 및 경로 추적에 통합될 수 있으며, 스크린 공간 반사 및 기타 효과를 구현하기 위해 래스터화에서 사용된다.
광자 맵핑은 광원에서 객체까지 광자의 경로를 추적하여 조도에 대한 데이터를 누적한 다음 기존 광선 추적 또는 경로 추적 중에 사용한다. 빛의 원천에서 카메라로 추적된 광선만 사용하여 장면을 렌더링하는 것은 현실에 더 가깝지만, 엄청난 수의 광자를 시뮬레이션해야 하고, 실제로 카메라에 도달하는 것은 극히 일부이기 때문에 비실용적이다.
일부 저자는 기존의 광선 추적을 광자가 카메라에서 광원으로 거꾸로 경로를 추적하기 때문에 "후방" 광선 추적이라고 부르고, 광원(광자 맵핑에서와 같이)에서 경로를 따르는 것을 "전방" 광선 추적이라고 부른다. 그러나 때로는 이러한 용어의 의미가 반전된다. 광원에서 시작하는 광선을 추적하는 것을 모호성을 피하기 위해 "입자 추적" 또는 "광선 추적"이라고도 할 수 있다.
비디오 게임 그래픽을 포함한 실시간 렌더링은 일반적으로 래스터화를 사용하지만, 점점 더 광선 추적 및 경로 추적과 결합하고 있다. 현실적인 전역 조명을 가능하게 하기 위해, 실시간 렌더링은 종종 정지 객체의 미리 렌더링된 ("구워진") 조명에 의존한다. 움직이는 객체의 경우, 공간의 선택된 지점(종종 보간을 더 쉽게 하기 위해 그리드상의 점)에서 장면의 전방향 보기를 렌더링하여 조명을 기록하는 ''광원 프로브''라는 기술을 사용할 수 있다. 이것은 환경 맵과 유사하지만, 일반적으로 매우 낮은 해상도 또는 구면 고조파와 같은 근사치를 사용한다. (블렌더는 반사 맵을 포함하여 더 일반적인 클래스의 사전 기록된 조명 데이터에 '광원 프로브'라는 용어를 사용한다.)
3차원 장면을 렌더링하는 가장 간단한 방법 중 하나는 시점("눈" 또는 "카메라")에서 시작하는 광선이 장면의 기하학적 모양과 교차하는지 테스트하고, 각 픽셀에 대해 다른 광선 방향을 사용하여 이 테스트를 반복하는 것이다. 이 방법을 ''광선 투사''라고 하며, 초기 컴퓨터 그래픽에서 중요했으며 더 발전된 알고리즘의 기본 구성 요소이다. 광선 투사는 ''구성적 솔리드 기하학''(CSG) 연산으로 정의된 모양을 렌더링하는 데 사용할 수 있다.
초기 광선 투사 실험에는 1960년대 아서 아펠의 연구가 포함된다. 아펠은 각 보이는 표면 지점에서 광원을 향해 추가 광선을 투사하여 그림자를 렌더링했다. 그는 또한 광원에서 객체를 향해 무작위 광선을 투사하고 교차점을 플로터로 그려 조명의 밀도를 렌더링하려고 시도했다. (나중에 ''광자 매핑''과 유사함).
많은 객체가 포함된 장면을 렌더링할 때 모든 객체와 광선 교차를 테스트하는 것은 매우 비용이 많이 든다. 특수 자료 구조를 사용하여 많은 수의 객체를 빠르게 제외(예: 카메라 뒤에 있는 객체)하여 이 프로세스의 속도를 높인다. 이러한 구조는 관련 객체를 찾는 데이터베이스 인덱스와 유사하다. 가장 일반적인 것은 객체 트리의 각 분기에 대해 미리 계산된 경계 상자 또는 구를 저장하는 ''경계 부피 계층 구조''(BVH)와 재귀적으로 공간을 두 부분으로 나누는 ''k-d 트리''이다. 최신 GPU에는 BVH 교차 테스트를 위한 하드웨어 가속이 포함되어 있다. K-d 트리는 초기 컴퓨터 그래픽에서 자주 사용된 ''이진 공간 분할''의 특수한 경우이다(이는 또한 화가 알고리즘에 대한 래스터화 순서를 생성할 수 있다). 역사적으로 또 다른 인기 있는 기술인 ''옥트리''는 여전히 체적 데이터에 자주 사용된다.
기하학적 공식은 구, 다각형, 다면체와 같은 모양과 광선의 교차점을 찾는 데 충분하지만 대부분의 곡면의 경우 분석적 해가 없거나 제한된 정밀도의 부동 소수점 연산을 사용하여 정확하게 계산하기 어렵다. 근 찾기 알고리즘 (예: 뉴턴 방법)을 사용할 수 있다. 이러한 합병증을 피하기 위해 곡면은 종종 삼각형 메쉬로 근사된다. 볼륨 렌더링 (예: 구름 및 연기 렌더링) 및 일부 표면(예: 프랙탈)은 기본 광선 투사 대신 레이 마칭이 필요할 수 있다.
레이 캐스팅은 시뮬레이션된 카메라에서 광선을 역추적하여 이미지를 렌더링하는 데 사용할 수 있다. 광선이 시작된 표면의 점을 찾은 후, 광원은 다른 광선을 추적하여 해당 지점에 그림자가 드리워지는지 확인한다. 그렇지 않은 경우, ''반사율 모델''(예: 무광 표면에 대한 람베르트 반사, 또는 광택 표면에 대한 퐁 반사 모델)을 사용하여 빛에서 도착하는 광자가 카메라 쪽으로 반사될 확률을 계산하고, 이를 빛의 밝기와 곱하여 픽셀 밝기를 결정한다. 광원이 여러 개 있는 경우 빛의 밝기 기여도를 함께 더한다. 컬러 이미지의 경우, 계산은 여러 파장의 빛(예: 빨간색, 녹색 및 파란색)에 대해 반복된다.
''고전적인 레이 트레이싱''(또는 ''Whitted-스타일'' 또는 ''재귀'' 레이 트레이싱)은 이 방식을 확장하여 거울과 투명한 객체를 렌더링할 수 있다. 카메라에서 역추적된 광선이 거울의 지점에서 시작되면 기하 광학의 반사 공식을 사용하여 반사된 광선이 어느 방향에서 왔는지 계산하고, 해당 방향으로 다른 광선을 역추적한다. 광선이 투명한 표면에서 시작되면, 반사된 광선과 굴절된 광선 모두에 대해 광선을 역추적합니다 (스넬의 법칙을 사용하여 굴절 방향을 계산함). 따라서 레이 트레이싱은 광선의 분기 "트리"를 지원해야 한다. 간단한 구현에서 각 광선을 추적하기 위해 재귀 함수가 호출된다.
레이 트레이싱은 일반적으로 각 픽셀에 대해 여러 샘플의 평균을 취하여 안티앨리어싱을 수행한다. 또한 피사계 심도 및 모션 블러와 같은 효과를 위해 여러 샘플을 사용할 수 있다. 이러한 각 기능에 대해 균등하게 간격을 둔 광선 방향 또는 시간이 사용되는 경우 많은 광선이 필요하며, 일부 앨리어싱이 남게 된다. ''쿡 스타일'', ''확률적'', 또는 ''몬테 카를로 레이 트레이싱''은 균등하게 간격을 둔 샘플 대신 무작위 샘플링을 사용하여 이러한 문제를 해결한다. 이러한 유형의 레이 트레이싱은 확률 분포에서 광선을 샘플링하기 때문에 일반적으로 ''분산 레이 트레이싱'', 또는 ''분포 레이 트레이싱''이라고 한다. 분포 레이 트레이싱은 또한 그림자 처리를 테스트할 때 빛에 대한 무작위 샘플의 점을 사용하여 큰 빛으로부터 현실적인 "부드러운" 그림자를 렌더링할 수 있으며, 스펙트럼의 빛에서 여러 파장을 샘플링하여 색수차를 시뮬레이션할 수 있다.
실제 표면 재료는 작고 (또는 미세한) 돌기와 홈이 있기 때문에 거의 모든 방향으로 소량의 빛을 반사한다. 분포 레이 트레이서는 가능한 광선 방향을 샘플링하여 이를 시뮬레이션할 수 있으며, 이를 통해 광택 및 금속 표면으로부터 흐릿한 반사를 렌더링할 수 있다. 그러나 현실적인 간접 조명을 시뮬레이션하기 위해 이 절차를 재귀적으로 반복하고 각 표면 지점에서 둘 이상의 샘플을 채취하는 경우, 광선의 트리가 빠르게 거대해진다. ''패스 트레이싱''은 간접 조명을 보다 효율적으로 처리하여 분기를 피하고, 광원에서 카메라까지 가능한 모든 경로의 분포가 무편향된 방식으로 샘플링되도록 보장한다.
레이 트레이싱은 패스 트레이싱이 영화 렌더링의 표준이 되기 전까지 애니메이션 영화에서 반사를 렌더링하는 데 자주 사용되었다. 슈렉 2 및 몬스터 대학교와 같은 영화에서도 래스터화를 사용하여 렌더링하기 전에 장면이나 프레임에 대한 간접 조명을 사전 계산하기 위해 분산 레이 트레이싱 또는 패스 트레이싱을 사용했다.
GPU 기술의 발전으로 게임에서 실시간 레이 트레이싱이 가능해졌지만, 현재는 거의 항상 래스터화와 함께 사용된다. 이를 통해 곡면 및 상호 반사 객체의 반사, 광범위한 거리 및 표면 방향에 걸쳐 정확한 그림자를 포함하여 래스터화만으로는 어려운 시각적 효과를 얻을 수 있다. 레이 트레이싱 지원은 DirectX, Metal, Vulkan과 같은 게임에서 사용되는 최신 그래픽 API에 포함되어 있다.
레이 트레이싱은 블랙홀 시뮬레이션과 시공간 곡률 및 상대론적 효과를 광선 시뮬레이션 중에 고려하여 빛의 속도에 가까운 속도로 이동하는 물체의 모양을 렌더링하는 데 사용되었다.
라디오시티(동일한 이름의 방사휘도에서 명명됨)는 빛에 의해 조명된 물체를 렌더링하는 방법으로, 빛은 거칠거나 무광택 표면에서 반사된다. 이러한 유형의 조명을 ''간접광'', ''환경 조명'' 또는 ''확산 조명''이라고 하며, 이를 현실적으로 렌더링하는 문제를 ''전역 조명''이라고 한다. 래스터화 및 기본 형태의 광선 추적(분산 광선 추적 및 패스 추적 제외)은 아티스트가 선택한 균일한 "주변" 조명량을 추가하는 방식으로 간접광을 대략적으로 근사할 수 있다. 라디오시티 기술은 또한 직사각형 형광 조명 패널과 같은 ''면광''이 있는 장면을 렌더링하는 데 적합하며, 이는 래스터화 및 기존 광선 추적에 어렵다. 라디오시티는 물리 기반 방법으로 간주되며, 이는 물리학의 방정식과 실험 데이터를 사용하여 환경에서 빛의 흐름을 시뮬레이션하는 것을 목표로 하지만, 모든 표면이 불투명하고 완벽하게 Lambertian이라고 가정하는 경우가 많아 현실성이 감소하고 적용 범위가 제한된다.
원래 라디오시티 방법(1984년에 처음 제안됨)은 현재 ''고전적인 라디오시티''라고 불리며, 장면에 있는 표면과 광원은 ''패치''라고 하는 조각으로 분할되며, 이 과정을 ''메싱''이라고 한다(이 단계는 유한 요소법을 만듭니다). 그런 다음 렌더링 코드는 각 패치에서 방출되거나 확산적으로 반사되는(분산) 빛의 어떤 부분이 각 다른 패치에서 수신되는지 결정해야 한다. 이러한 분수는 ''형태 계수'' 또는 ''뷰 팩터''라고 한다(처음에는 복사 열 전달을 모델링하기 위해 엔지니어링에서 사용됨). 형태 계수는 수신 표면의 알베도와 곱해지고 행렬에 넣는다. 그런 다음 장면의 조명은 선형 대수학의 방법으로 해결할 수 있는 행렬 방정식(또는 동등하게 선형 방정식 시스템)으로 표현될 수 있다.
라디오시티 방정식을 풀면 각 패치에서 방출되고 반사되는 총 빛의 양이 제공되며, 이를 면적으로 나누어 ''라디오시티''라는 값을 얻는다. 이 값은 래스터화 또는 광선 추적 시 패치의 보이는 부분에 해당하는 픽셀의 색상을 결정하는 데 사용할 수 있다. 실시간 렌더링의 경우 이 값(또는 일반적으로 지역 표면 알베도에 의존하지 않는 조도)을 미리 계산하여 텍스처(''조도 맵''이라고 함)에 저장하거나 3D 모델의 정점 데이터로 저장할 수 있다. 이 기능은 조명을 계산한 후 건물의 내부를 실시간으로 걸어볼 수 있도록 건축 시각화 소프트웨어에 사용되었다.
고전적인 라디오시티에서 사용되는 행렬의 큰 크기(패치 수의 제곱)는 현실적인 장면에 문제를 일으킨다. 실제 구현에서는 Jacobi 또는 가우스-자이델 반복을 사용할 수 있으며, 이는 (최소한 Jacobi의 경우) 잔존하는 빛의 양(표면에 아직 흡수되지 않음)이 중요하지 않을 때까지 한 번에 한 번의 바운스로 빛의 전파를 시뮬레이션하는 것과 같다. 필요한 반복(바운스) 횟수는 패치 수가 아닌 장면에 따라 다르므로 총 작업량은 패치 수의 제곱에 비례한다(반대로, 가우스 소거법을 사용하여 행렬 방정식을 풀려면 패치 수의 세제곱에 비례하는 작업이 필요합니다). 형태 계수는 메모리에 완전한 행렬을 저장하지 않도록 필요할 때 다시 계산할 수 있다.
렌더링의 품질은 종종 패치의 크기에 의해 결정된다(예: 그림자의 가장자리를 정확하게 묘사하려면 매우 미세한 메시가 필요하다). 중요한 개선 사항은 ''계층적 라디오시티''로, 서로 멀리 떨어져 있는 표면 간의 빛의 전달을 시뮬레이션하기 위해 더 거친 메시(더 큰 패치)를 사용하고 필요에 따라 패치를 적응적으로 세분화한다. 이를 통해 라디오시티를 훨씬 더 크고 복잡한 장면에 사용할 수 있다.
라디오시티 방법의 대안 및 확장 버전은 광택 표면 및 거울과 같은 비-Lambertian 표면을 지원하며, 표면 패치뿐만 아니라 물체의 볼륨 또는 "클러스터"를 사용하기도 한다. 확률적 또는 몬테 카를로 라디오시티는 다양한 방식으로 무작위 샘플링을 사용한다(예: 모든 패치를 통합하는 대신 입사광의 샘플을 취하여 성능을 향상시킬 수 있지만 노이즈가 추가됨)(이 노이즈는 패스 트레이싱 노이즈와 달리 결정론적 반복을 최종 단계로 사용하여 줄일 수 있음). 라디오시티의 단순화되고 부분적으로 미리 계산된 버전은 광선장의 근사치를 저장하는 ''옥트리 라디오시티''와 같은 기술과 결합되어 실시간 렌더링에 널리 사용된다.
'''경로 추적'''은 ''물리 기반 렌더링''으로 알려진 접근 방식의 일부로서, 영화 효과를 포함하여 현실적인 장면을 렌더링하는 지배적인 기술이 되었다. 예를 들어, 인기 있는 오픈 소스 3D 소프트웨어인 블렌더는 사이클 렌더러에서 경로 추적을 사용한다. 전역 조명에 경로 추적을 사용하여 생성된 이미지는 일반적으로 래디에이터를 사용할 때보다 노이즈가 더 많지만(현실적인 조명을 위한 주요 경쟁 알고리즘), 래디에이터는 복잡한 장면에 적용하기 어려울 수 있으며, 조사율의 테셀레이션된 표현을 사용함으로써 발생하는 아티팩트가 발생하기 쉽다.
경로 추적은 ''분산 광선 추적''과 마찬가지로, 몬테 카를로 적분 또는 준 몬테 카를로 방법 적분을 사용하는 ''확률적'' 또는 ''랜덤화된'' 광선 추적의 한 종류이다. 이 기술은 렌더링 방정식과 동일한 논문에서 1986년 짐 카지야에 의해 제안되고 명명되었다. 카지야는 분산 광선 추적의 복잡성 대부분을 한 번에 카메라에서 단일 경로만 추적함으로써 피할 수 있다는 것을 관찰했다(카지야의 구현에서, 이 "분기 없음" 규칙은 각 표면 교차점으로부터 각 광원에 있는 임의로 선택된 지점까지 추가 광선을 추적함으로써 깨졌다). 카지야는 각 경로 단계에서 어떤 광선을 따라갈지 선택하는 것과 같은 무작위 결정을 내리기 위해 ''층별 샘플링'' 및 ''중요도 샘플링''을 사용하여 출력 이미지에 존재하는 노이즈를 줄일 것을 제안했다. 이러한 기술을 사용하더라도 경로 추적은 당시 사용 가능한 컴퓨터를 사용하여 영화 렌더링에 실용적이지 않았을 것이다. 왜냐하면 분산을 허용 가능한 수준으로 줄일 수 있는 충분한 샘플을 생성하는 데 드는 계산 비용이 너무 높았기 때문이다. 경로 추적을 사용하여 전적으로 렌더링된 최초의 장편 영화인 몬스터 하우스는 20년 후에 개봉되었다.
기본 형태의 경로 추적은 코스틱과 빛이 좁은 공간을 통해 간접적으로 들어오는 장면을 렌더링하는 데 비효율적(너무 많은 샘플 필요)이다. 1990년대에 이러한 약점을 해결하기 위한 시도가 이루어졌다. ''양방향 경로 추적''은 광자 매핑과 유사하며, 광원과 카메라에서 광선을 개별적으로 추적한 다음 이러한 경로를 연결하는 방법을 찾는다(그러나 광자 매핑과 달리 일반적으로 모든 픽셀에 대해 동일한 캐시된 데이터를 사용하는 대신 각 픽셀에 대해 새로운 광선 경로를 샘플링한다). ''메트로폴리스 광선 수송''은 이전에 추적된 경로를 수정하여 경로를 샘플링하며, 다른 "밝은" 경로와 유사한 경로를 탐색하는 데 더 많은 시간을 할애한다.
4. 3. 재료 및 도구
사실감을 표현하기 위해 제품의 특징을 잘 나타낼 수 있는 여러 재료들을 혼합하여 사용한다. 가장 많이 사용된 재료로는 매직 마커와 수채화 물감이 있다. 매직 마커는 색상이 풍부하고 선명하며 건조 시간이 매우 빠르다. 목재, 금속, 도자기, 천, 가죽 등의 재질감을 표현할 때는 혼용 기법을 사용하는 것이 효과적이다.5. 렌더링의 과학적, 수학적 기반
렌더링된 이미지는 다양한 시각적 특징으로 이해할 수 있다. 렌더링 연구 개발은 이러한 특징을 효율적으로 시뮬레이션하는 방법을 찾는 데 크게 동기 부여되었다. 일부는 특정 알고리즘 및 기술과 직접 관련이 있으며, 다른 기능은 함께 생성된다.
- 쉐이딩 - 표면의 색상과 밝기가 조명에 따라 어떻게 달라지는지
- 텍스처 매핑 - 표면에 디테일을 적용하는 방법
- 범프 매핑 - 표면에 작은 규모의 울퉁불퉁함을 시뮬레이션하는 방법
- 안개/참여 매체 - 맑지 않은 대기 또는 공기를 통과할 때 빛이 어떻게 흐려지는지
- 그림자 - 빛을 가리는 효과
- 소프트 섀도우 - 부분적으로 가려진 광원으로 인해 발생하는 다양한 어두움
- 반사 - 거울과 같은 또는 매우 광택이 나는 반사
- 투명도 (광학), 투명도 (그래픽) 또는 불투명도 - 고체 객체를 통해 빛을 날카롭게 투과
- 반투명도 - 고체 객체를 통해 빛을 매우 산란하여 투과
- 굴절 - 투명도와 관련된 빛의 굴절
- 회절 - 물체나 조리개를 지나가는 빛의 굴절, 확산 및 간섭으로 광선이 방해됨
- 간접 조명 - 광원으로부터 직접 빛이 아닌 다른 표면에서 반사된 빛에 의해 조명된 표면 (전역 조명이라고도 함)
- 카우스틱 (간접 조명의 한 형태) - 빛나는 물체에서 빛을 반사하거나 투명한 물체를 통해 빛을 집중시켜 다른 물체에 밝은 하이라이트를 생성
- 피사계 심도 - 초점이 맞는 물체 앞이나 뒤로 너무 멀리 떨어져 있으면 물체가 흐리거나 초점이 맞지 않게 보임
- 모션 블러 - 고속 움직임 또는 카메라의 움직임으로 인해 물체가 흐리게 보임
- 비사실적 렌더링 - 회화 또는 그림처럼 보이도록 의도된 예술적 스타일의 장면 렌더링
'''경로 추적'''은 ''물리 기반 렌더링''으로 알려진 접근 방식의 일부로서, 영화 효과를 포함하여 현실적인 장면을 렌더링하는 지배적인 기술이 되었다.[48] 예를 들어, 인기 있는 오픈 소스 3D 소프트웨어인 블렌더는 사이클 렌더러에서 경로 추적을 사용한다. 전역 조명에 경로 추적을 사용하여 생성된 이미지는 일반적으로 래디에이터를 사용할 때보다 노이즈가 더 많지만(현실적인 조명을 위한 주요 경쟁 알고리즘), 래디에이터는 복잡한 장면에 적용하기 어려울 수 있으며, 조사율의 테셀레이션된 표현을 사용함으로써 발생하는 아티팩트가 발생하기 쉽다.
경로 추적은 ''분산 광선 추적''과 마찬가지로, 몬테 카를로 적분 또는 준 몬테 카를로 방법 적분을 사용하는 ''확률적'' 또는 ''랜덤화된'' 광선 추적의 한 종류이다. 이 기술은 렌더링 방정식과 동일한 논문에서 1986년 짐 카지야에 의해 제안되고 명명되었다. 카지야는 분산 광선 추적의 복잡성 대부분을 한 번에 카메라에서 단일 경로만 추적함으로써 피할 수 있다는 것을 관찰했다. 카지야는 각 경로 단계에서 어떤 광선을 따라갈지 선택하는 것과 같은 무작위 결정을 내리기 위해 ''층별 샘플링'' 및 ''중요도 샘플링''을 사용하여 출력 이미지에 존재하는 노이즈를 줄일 것을 제안했다.
기본 형태의 경로 추적은 코스틱과 빛이 좁은 공간을 통해 간접적으로 들어오는 장면을 렌더링하는 데 비효율적이다. 1990년대에 이러한 약점을 해결하기 위한 시도가 이루어졌다. ''양방향 경로 추적''은 광자 매핑과 유사하며, 광원과 카메라에서 광선을 개별적으로 추적한 다음 이러한 경로를 연결하는 방법을 찾는다. ''메트로폴리스 광선 수송''은 이전에 추적된 경로를 수정하여 경로를 샘플링하며, 다른 "밝은" 경로와 유사한 경로를 탐색하는 데 더 많은 시간을 할애하여 더욱 밝은 경로를 발견할 가능성을 높인다. ''다중 중요도 샘플링''은 둘 이상의 샘플링 방법에서 샘플을 결합할 때, 특히 일부 샘플이 다른 샘플보다 훨씬 노이즈가 많은 경우 분산을 줄이는 방법을 제공한다.
이후의 작업은 에릭 비치의 1997년 박사 학위 논문에서 요약되고 확장되었으며, 이는 컴퓨터 그래픽스 커뮤니티에서 경로 추적에 대한 관심을 높이는 데 도움이 되었다. 1998년에 처음 출시된 아놀드 렌더러는 경로 추적이 영화 프레임을 렌더링하는 데 실용적이며, 영화 산업에서 무편향 및 물리 기반 렌더링에 대한 수요가 있다는 것을 증명했다. 다른 상업용 및 오픈 소스 경로 추적 렌더러가 나타나기 시작했다. 계산 비용은 CPU 및 컴퓨터 클러스터 성능의 빠른 발전에 의해 해결되었다.
경로 추적의 상대적인 단순성과 몬테 카를로 방법으로서의 본질은 그래픽 처리 장치에서 구현하는 데 매력적이다.
사실적인 렌더러의 구현에는 항상 물리 시뮬레이션 또는 에뮬레이션의 기본 요소가 있으며, 실제 물리적 프로세스를 닮거나 추상화하는 몇 가지 계산이 포함된다.
"''물리 기반''"이라는 용어는 렌더링 외부에서 더 일반적이고 널리 받아들여지는 물리적 모델과 근사를 사용함을 나타낸다. 관련 기술의 특정 세트가 렌더링 커뮤니티에서 점차적으로 확립되었다.
기본 개념은 적당히 간단하지만 계산하기 어렵고, 더 일반적인 렌더러를 위한 단일하고 우아한 알고리즘이나 접근 방식은 찾기 어려웠다. 견고성, 정확성 및 실용성에 대한 요구 사항을 충족하기 위해 구현은 다양한 기술의 복잡한 조합이 될 것이다.
렌더링 연구는 과학적 모델의 적용과 효율적인 적용 모두를 다룬다.
렌더링에 사용되는 수학에는 선형대수, 미적분학, 수치 수학, 신호 처리, 몬테카를로 방법 등이 있다.
'''렌더링 방정식'''
이것은 렌더링의 핵심적인 학술/이론적 개념이다. 렌더링의 비지각적 측면을 가장 추상적으로 공식화한 표현으로 사용된다. 더 완벽한 모든 알고리즘은 이 방정식의 특정 공식에 대한 해로 볼 수 있다.
:
의미: 특정 위치와 방향에서, 발산하는 빛(Lo)은 방출된 빛(Le)과 반사된 빛의 합이다. 반사된 빛은 모든 방향에서 들어오는 빛(Li)에 표면 반사율과 입사각을 곱한 것의 합이다. 이 방정식은 외부 빛을 상호 작용점을 통해 내부 빛에 연결함으로써, 전체 '빛 수송', 즉 장면 내의 모든 빛의 이동을 나타낸다.
'''양방향 반사율 분포 함수'''(BRDF)는 다음과 같이 표면과 빛의 상호 작용에 대한 간단한 모델을 표현한다.
:
빛의 상호 작용은 확산 반사 및 거울 반사와 같은 훨씬 더 간단한 모델로 종종 근사되지만, 둘 다 BRDF일 수도 있다.
렌더링은 실질적으로 기하 광학이라고 알려진 빛의 입자적 측면에 전적으로 관련되어 있다. 빛을 기본적인 수준에서 입자가 반사되는 것으로 취급하는 것은 단순화된 것이지만 적절하다. 빛의 파동적 측면은 대부분의 장면에서 무시할 수 있으며, 시뮬레이션하기가 훨씬 더 어렵다. 주목할 만한 파동적 측면 현상으로는 CD와 DVD의 색상에서 볼 수 있는 회절과 LCD에서 볼 수 있는 편광이 있다. 필요한 경우 두 가지 유형의 효과 모두 반사 모델의 외관 지향적인 조정을 통해 만들어진다.
인간 시각에 대한 이해는 비록 덜 주목받지만, 렌더링에 유용하다. 이는 주로 영상 디스플레이와 인간의 시각이 제한된 범위를 갖기 때문이다. 렌더러는 광범위한 밝기와 색상을 시뮬레이션할 수 있지만, 현재의 디스플레이(영화 스크린, 컴퓨터 모니터 등)는 이를 모두 처리할 수 없어 일부 정보를 폐기하거나 압축해야 한다. 인간의 시각 또한 한계가 있으며, 현실감을 창출하기 위해 넓은 범위의 이미지를 제공할 필요가 없다. 이는 이미지를 디스플레이에 맞추는 문제를 해결하는 데 도움이 되며, 또한 특정 미묘함은 눈에 띄지 않으므로 렌더링 시뮬레이션에서 어떤 지름길을 사용할 수 있는지 제시할 수 있다. 이와 관련된 주제는 톤 매핑이다.
모든 렌더링 시스템은 어떤 접근 방식을 취하든 간에 '''샘플링 문제'''를 다루어야 한다. 기본적으로, 렌더링 과정은 이미지 공간에서 색상으로의 연속 함수를 유한한 수의 픽셀을 사용하여 묘사하려 한다. 나이퀴스트-섀넌 샘플링 정리(또는 코텔니코프 정리)에 따르면, 표시될 수 있는 모든 공간 파형은 최소 두 개의 픽셀로 구성되어야 하며, 이는 이미지 해상도에 비례한다. 간단히 말해서, 이것은 이미지 내에서 1픽셀보다 작은 색상 또는 강도의 세부 사항, 피크 또는 트로프를 표시할 수 없다는 생각을 표현한다.
필터링 없이 단순한 렌더링 알고리즘을 사용하면 이미지 함수의 고주파수가 최종 이미지에 보기 흉한 앨리어싱을 발생시킨다. 앨리어싱은 일반적으로 픽셀 격자가 보이는 객체의 자글거림, 또는 들쭉날쭉한 가장자리로 나타난다. 앨리어싱을 제거하기 위해 모든 렌더링 알고리즘은 (좋은 이미지를 생성하려면) 이미지 함수에 일종의 로우패스 필터를 사용하여 고주파수를 제거해야 하며, 이를 안티앨리어싱이라고 한다.
6. 렌더링의 활용
렌더링은 다양한 분야에서 활용되며, 컴퓨터의 성능과 메모리 대역폭에 영향을 받는다. 특히 실시간 렌더링의 속도를 높이기 위해 특수 하드웨어가 개발되었다.
1990년대 3D 그래픽 가속기는 현대적인 GPU로 발전했다. GPU는 CPU와 유사한 범용 프로세서이지만, 작고 독립적인 여러 작업(예: 픽셀 렌더링)을 병렬로 처리하는 데 특화되어 있다. 초기 3D 가속기가 특정 래스터화 알고리즘과 셰이딩, 조명 효과를 가속화한 반면, GPU는 이러한 방식으로 분할 가능한 모든 렌더링 알고리즘의 속도를 높일 수 있다.[1]
GPU는 z-버퍼를 이용한 숨겨진 표면 제거, 밉맵을 사용한 텍스처 매핑 등 그래픽 파이프라인의 일부 단계를 가속화하는 하드웨어를 제공하지만, 항상 사용되는 것은 아니다.[1] 최근 GPU는 경계 볼륨 계층 구조를 활용하여 레이 트레이싱 및 패스 트레이싱 속도를 높이고, 신경망 가속 기능을 통해 렌더링 성능을 향상시킨다.[2][3]
GPU는 고대역폭 메모리 시스템과 통합되어 고해상도, 실시간 렌더링의 대역폭 요구를 지원한다. 특히 여러 번의 렌더링 과정이 필요한 경우 유용하지만, CPU보다 지연 시간이 길어 알고리즘의 임계 경로에 메모리 접근이 많으면 문제가 될 수 있다. GPU는 높은 지연 시간을 스레드 간 효율적인 전환으로 "숨기려" 한다. 즉, 한 스레드가 읽기/쓰기 완료를 기다리는 동안 다른 스레드가 계산을 수행한다.[1][4][5]
GPU에서 렌더링 알고리즘은 작은 스레드 그룹으로 구현될 때 효율적이다. 예를 들어, 레이 트레이싱된 이미지에서 작은 픽셀 사각형을 렌더링할 때 모든 스레드는 동일 객체, 광선, 조명 계산을 수행할 가능성이 높다. GPU는 성능 및 아키텍처 상의 이유로 ''워프'' 또는 ''웨이브프론트''라 불리는 16-64개의 스레드 그룹을 록스텝으로 실행한다. 그룹 내 모든 스레드가 특정 코드 블록을 실행할 필요가 없을 때(조건에 따라) 일부 스레드는 유휴 상태가 되거나 계산 결과가 폐기되어 성능이 저하된다.[1][5]
렌더링은 다음과 같은 다양한 분야에서 활용된다.
7. 렌더링 관련 소프트웨어
다음은 주요 렌더링 관련 소프트웨어 목록이다.
| 소프트웨어 |
|---|
| 3ds Max |
| 블렌더 |
| 시네마 4D |
| 마야 |
| 렌더맨 |
| V-Ray |
| 아놀드 |
| 3DShow |
| Artlantis영어 |
| 브라질 (Brazil) |
| can-cad |
| final render |
| fryrender |
| 라이트웨이브 |
| 맥스웰 렌더 |
| 멘탈 레이 |
| POV-Ray |
| 셰이드 3D |
| 소프트이미지 |
| 테라젠 |
| 뷰 (Vue) |
참조
[1]
간행물
Oxford English Dictionary
2024-03-01
[2]
간행물
Oxford English Dictionary
2024-06-01
[3]
간행물
Oxford English Dictionary
2024-03-01
[4]
간행물
Oxford English Dictionary
2024-06-01
[5]
웹사이트
What is a Rendering Engine? | Dictionary
https://arvisual.eu/[...]
2024-02-21
[6]
학회
High-Resolution Image Synthesis with Latent Diffusion Models
2022-06-01
[7]
학술지
State of the Art on Neural Rendering
2020-05-01
[8]
학술지
State of the Art on Neural Rendering
https://onlinelibrar[...]
[9]
잡지
A New Trick Lets Artificial Intelligence See in 3D
https://www.wired.co[...]
2022-02-08
[10]
학술지
Theory for Off-Specular Reflection from Roughened Surfaces
https://www.graphics[...]
1967-09-01
[11]
학술지
Continuous shading of curved surfaces
http://www.cs.uiowa.[...]
[12]
웹사이트
History | School of Computing
https://www.cs.utah.[...]
2021-11-22
[13]
학술지
Illumination for computer generated pictures
http://jesper.kallio[...]
[14]
학술지
Texture and reflection in computer generated images
[15]
학술지
Models of light reflection for computer synthesized pictures
1977-07-20
[16]
학회
Shadow algorithms for computer graphics
http://design.osu.ed[...]
2011-07-15
[17]
학회
Casting curved shadows on curved surfaces
[18]
학회
Simulation of wrinkled surfaces
http://research.micr[...]
[19]
학회
On visible surface generation by a priori tree structures
[20]
학술지
An improved illumination model for shaded display
[21]
학회
A reflectance model for computer graphics
[22]
학회
Pyramidal parametrics
[23]
학술지
Space subdivision for fast ray tracing
[24]
학회
Compositing digital images
http://keithp.com/~k[...]
[25]
학회
Distributed ray tracing
http://www.cs.rutger[...]
[26]
학회
Modeling the interaction of light between diffuse surfaces
[27]
학술지
Continuous tone representation of three-dimensional objects taking account of shadows and interreflection
https://dl.acm.org/d[...]
Association for Computing Machinery
1985-07-01
[28]
학회
The hemi-cube: a radiosity solution for complex environments
http://www.arnetmine[...]
2020-03-25
[29]
학회
Backward ray tracing
[30]
서적
An efficient antialiasing technique
http://portal.acm.or[...]
1991-07-01
[31]
서적
Graphics Gems II
Morgan Kaufmann
[32]
학회
A rapid hierarchical radiosity algorithm
[33]
웹사이트
Generalization of Lambert's Reflectance Model
http://www1.cs.colum[...]
1994-07-01
[34]
학술지
Tone reproduction for realistic computer generated images
http://smartech.gate[...]
[35]
학회
Reflection from layered surfaces due to subsurface scattering
[36]
간행물
Bi-directional path tracing
https://www.cs.princ[...]
2024-09-02
[37]
서적
Proceedings of the 21st annual conference on Computer graphics and interactive techniques - SIGGRAPH '94
ACM
2018-05-07
[38]
논문
Photon maps in bidirectional monte carlo ray tracing of complex objects
[39]
간행물
Optimally combining sampling techniques for Monte Carlo rendering
https://dl.acm.org/d[...]
2024-09-02
[40]
간행물
Metropolis light transport
[41]
간행물
Metropolis light transport
[42]
간행물
Instant Radiosity
[43]
간행물
Precomputed Radiance Transfer for Real-Time Rendering in Dynamic, Low Frequency Lighting Environments
http://www.mpi-inf.m[...]
[44]
논문
A Data-Driven Reflectance Model
https://www.merl.com[...]
2024-11-23
[45]
간행물
OpenDR: An approximate differentiable renderer
http://files.is.tue.[...]
Springer International Publishing
2024-09-02
[46]
논문
Practical Path Guiding for Efficient Light-Transport Simulation
https://jannovak.inf[...]
The Eurographs Association & John Wiley & Sons, Ltd.
2024-09-04
[47]
논문
Spatiotemporal reservoir resampling for real-time ray tracing with dynamic direct lighting
https://cs.dartmouth[...]
2024-09-02
[48]
문서
"렌더링 3次元シーンを入力とした描画処理 入力:3次元物体,カメラ,光源情報 出力:画像"
http://hideki-todo.c[...]
2015
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com