이 문서는 연구 중심 렌더링 시스템인 Mitsuba 3의 개요를 제공합니다. 플랫폼 간 호환성, 고성능, Python 통합, 차별성 및 다양한 렌더링 모드 지원을 포함한 주요 기능을 자세히 설명합니다. 학문적 목적을 위한 인용 정보와 함께 설치 지침 및 사용 예도 포함되어 있습니다.
미츠바 렌더러 3
선적 서류 비치 | 튜토리얼 비디오 | 리눅스 | 맥OS | 윈도우 | PyPI |
---|---|---|---|---|---|
️
경고
️
현재 문서화되지 않은 불안정한 작업이 대량으로 진행되고 있습니다.
master
브랜치. 우리는 당신이 우리의 사용을 적극 권장합니다
최신 릴리스
추후 공지가 있을 때까지.
이미 다가오는 변경 사항을 시험해보고 싶다면 다음을 살펴보십시오.
이 포팅 가이드.
여기에는 앞으로 나올 대부분의 새로운 기능과 주요 변경 사항이 포함되어야 합니다.
소개
Mitsuba 3는 순방향 및 역방향 조명을 위한 연구 중심 렌더링 시스템입니다.
스위스 EPFL에서 개발된 운송 시뮬레이션입니다.
핵심 라이브러리와 기능을 구현하는 플러그인 세트로 구성됩니다.
재료와 광원부터 완전한 렌더링 알고리즘까지 다양합니다.
Mitsuba 3은 대상 변경이 가능 합니다. 이는 기본 구현과
데이터 구조는 다양한 작업을 수행하기 위해 변환될 수 있습니다. 을 위한
예를 들어, 동일한 코드로 스칼라(고전적인 한 번에 한 광선) RGB 전송을 모두 시뮬레이션할 수 있습니다.
또는 GPU의 차동 스펙트럼 전송. 이 모든 것이 기반이 됩니다
이 프로젝트를 위해 특별히 개발된 JIT( Just-In-Time ) 컴파일러인 Dr.Jit입니다.
주요 특징
크로스 플랫폼 : Mitsuba 3는 Linux( x86_64
), macOS에서 테스트되었습니다.
( aarch64
, x8664
) 및 Windows ( x8664
).
고성능 : 기본 Dr.Jit 컴파일러는 렌더링 코드를 융합합니다.
다음을 사용하여 최첨단 성능을 달성하는 커널로
CPU 및 CUDA/OptiX 백엔드를 대상으로 하는 LLVM 백엔드
레이 트레이싱 하드웨어 가속을 통해 NVIDIA GPU를 목표로 합니다.
Python 우선 : Mitsuba 3는 Python과 긴밀하게 통합되어 있습니다. 재료,
텍스처, 심지어 전체 렌더링 알고리즘도 Python으로 개발할 수 있습니다.
시스템이 즉석에서 JIT 컴파일(및 선택적으로 차별화)을 수행합니다.
이는 컴퓨터 그래픽 연구에 필요한 실험을 가능하게 하며,
다른 학문.
차별화 : Mitsuba 3는 차별화 가능한 렌더러입니다.
입력에 대한 전체 시뮬레이션의 파생물을 계산할 수 있습니다.
카메라 포즈, 기하학, BSDF, 텍스처 및 볼륨과 같은 매개변수. 그것
EPFL에서 개발된 최근 미분 가능 렌더링 알고리즘을 구현합니다.
스펙트럼 및 편광 : Mitsuba 3는 단색광으로 사용 가능
렌더러, RGB 기반 렌더러 또는 스펙트럼 렌더러. 각 변형은 다음을 수행할 수 있습니다.
원하는 경우 선택적으로 편광 효과를 고려하십시오.
튜토리얼 비디오, 문서
우리는 부드러운 소개를 제공하는 여러 YouTube 비디오를 녹화했습니다.
미츠바3와 Dr.Jit. 이 외에도 완전한 Juypter 노트북을 찾을 수 있습니다.
다양한 애플리케이션, 사용법 가이드, 참조 문서를 다루고 있습니다.
readthedocs에서.
설치
우리는 PyPI를 통해 사전 컴파일된 바이너리 휠을 제공합니다. 이 방법으로 Mitsuba를 설치하는 것은 실행만큼 간단합니다.
pip 미츠바 설치
명령줄에서. Python 패키지에는 기본적으로 13가지 변형이 포함되어 있습니다.
scalar_rgb
scalar_spectral
scalarspectralpolarized
llvmadrgb
llvmadmono
llvmadmono_polarized
llvmadspectral
llvmadspectral_polarized
cudaadrgb
cudaadmono
cudaadmono_polarized
cudaadspectral
cudaadspectral_polarized
처음 두 개는 RGB 중 하나를 사용하여 한 번에 한 광선 시뮬레이션을 수행합니다.
또는 스펙트럼 색상 표현 중 후자 두 개는 역으로 사용될 수 있습니다.
CPU 또는 GPU에서 렌더링합니다. 추가 변형에 액세스하려면 다음을 수행해야 합니다.
CMake를 사용하여 Dr.Jit의 사용자 정의 버전을 컴파일합니다. 다음을 참조하세요.
선적 서류 비치
이에 대한 자세한 내용은.
요구사항
Python >= 3.8
(선택 사항) GPU 계산의 경우: Nvidia driver >= 495.89
(선택 사항) CPU에서 벡터화/병렬 계산의 경우: LLVM >= 11.1
용법
다음은 렌더링이 얼마나 간단한지 보여주는 간단한 "Hello World" 예제입니다.
Python에서 Mitsuba 3을 사용하는 장면:
# 별칭 "mi"를 사용하여 라이브러리 가져오기 import mitsuba as mi# renderermi.setvariant('scalarrgb')의 변형 설정# 장면 로드 = mi.loaddict(mi.cornellbox())# 장면 렌더링 = mi. render(scene)# 렌더링된 이미지를 EXR 파일에 씁니다mi.Bitmap(img).write('cbox.exr')
다양한 애플리케이션을 다루는 튜토리얼과 예제 노트북을 찾을 수 있습니다.
문서에서.
에 대한
이 프로젝트는 Wenzel Jakob이 만들었습니다.
코드의 중요한 기능 및/또는 개선 사항은 다음에 의해 기여되었습니다.
세바스티앙 슈파이어러,
니콜라스 루셀,
멀린 니미에-데이비드,
델리오 비치니,
티지안 젤트너,
밥티스트 니콜레,
미구엘 크레스포,
빈센트 르로이,
장쯔이.
학술 프로젝트에서 Mitsuba 3를 사용하는 경우 다음을 인용하십시오.
@software{Mitsuba3,title = {Mitsuba 3 렌더러},author = {Wenzel Jakob 및 Sébastien Speierer 및 Nicolas Roussel 및 Merlin Nimier-David 및 Delio Vicini 및 Tizian Zeltner 및 Baptiste Nicolet 및 Miguel Crespo 및 Vincent Leroy 및 Ziyi Zhang},note = {https://mitsuba-renderer.org},버전 = {3.1.1}, 연도 = 2022}