선적 서류 비치 | 튜토리얼 비디오 | 리눅스 | 맥OS | 윈도우 | PyPI |
---|---|---|---|---|---|
현재 master
브랜치에는 문서화되지 않은 불안정한 작업이 대량으로 진행되고 있습니다. 추후 공지가 있을 때까지 최신 릴리스를 사용하는 것이 좋습니다.
이미 예정된 변경 사항을 시험해보고 싶다면 이 포팅 가이드를 살펴보세요. 여기에는 앞으로 나올 대부분의 새로운 기능과 주요 변경 사항이 포함되어야 합니다.
Mitsuba 3는 스위스 EPFL에서 개발된 순방향 및 역방향 광 전송 시뮬레이션을 위한 연구 중심 렌더링 시스템입니다. 이는 재료 및 광원부터 완전한 렌더링 알고리즘에 이르기까지 다양한 기능을 구현하는 핵심 라이브러리와 플러그인 세트로 구성됩니다.
Mitsuba 3은 대상 변경이 가능 합니다. 즉, 기본 구현과 데이터 구조를 변환하여 다양한 작업을 수행할 수 있습니다. 예를 들어 동일한 코드로 GPU에서 스칼라(한 번에 한 광선) RGB 전송이나 차동 스펙트럼 전송을 모두 시뮬레이션할 수 있습니다. 이 모든 것은 이 프로젝트를 위해 특별히 개발된 전문 JIT( Just-In-Time ) 컴파일러인 Dr.Jit를 기반으로 합니다.
크로스 플랫폼 : Mitsuba 3는 Linux( x86_64
), macOS( aarch64
, x86_64
) 및 Windows( x86_64
)에서 테스트되었습니다.
고성능 : 기본 Dr.Jit 컴파일러는 CPU를 대상으로 하는 LLVM 백엔드와 광선 추적 하드웨어 가속 기능이 있는 NVIDIA GPU를 대상으로 하는 CUDA/OptiX 백엔드를 사용하여 최첨단 성능을 달성하는 커널에 렌더링 코드를 융합합니다.
Python 우선 : Mitsuba 3는 Python과 긴밀하게 통합되어 있습니다. 재료, 텍스처, 심지어 전체 렌더링 알고리즘까지 Python으로 개발할 수 있으며, 시스템은 이를 즉시 JIT 컴파일(및 선택적으로 차별화)합니다. 이를 통해 컴퓨터 그래픽 및 기타 분야 연구에 필요한 실험이 가능해졌습니다.
차별화 : Mitsuba 3는 미분 가능한 렌더러입니다. 즉, 카메라 포즈, 기하학, BSDF, 텍스처 및 볼륨과 같은 입력 매개변수와 관련하여 전체 시뮬레이션의 파생물을 계산할 수 있습니다. EPFL에서 개발된 최근 미분 가능 렌더링 알고리즘을 구현합니다.
스펙트럼 및 편광 : Mitsuba 3는 단색 렌더러, RGB 기반 렌더러 또는 스펙트럼 렌더러로 사용할 수 있습니다. 원하는 경우 각 변형은 선택적으로 편광 효과를 설명할 수 있습니다.
Mitsuba 3와 Dr.Jit을 부드럽게 소개하는 여러 YouTube 동영상을 녹화했습니다. 이 외에도 readthedocs에서 다양한 애플리케이션, 방법 가이드 및 참조 문서를 다루는 완전한 Juypter 노트북을 찾을 수 있습니다.
우리는 PyPI를 통해 사전 컴파일된 바이너리 휠을 제공합니다. 이 방법으로 Mitsuba를 설치하는 것은 실행만큼 간단합니다.
pip install mitsuba
명령줄에서. Python 패키지에는 기본적으로 13가지 변형이 포함되어 있습니다.
scalar_rgb
scalar_spectral
scalar_spectral_polarized
llvm_ad_rgb
llvm_ad_mono
llvm_ad_mono_polarized
llvm_ad_spectral
llvm_ad_spectral_polarized
cuda_ad_rgb
cuda_ad_mono
cuda_ad_mono_polarized
cuda_ad_spectral
cuda_ad_spectral_polarized
처음 두 개는 RGB 또는 스펙트럼 색상 표현을 사용하여 한 번에 한 광선씩 고전적인 시뮬레이션을 수행하는 반면, 후자 두 개는 CPU 또는 GPU에서 역 렌더링에 사용할 수 있습니다. 추가 변형에 액세스하려면 CMake를 사용하여 Dr.Jit의 사용자 정의 버전을 컴파일해야 합니다. 이에 대한 자세한 내용은 설명서를 참조하세요.
Python >= 3.8
Nvidia driver >= 495.89
LLVM >= 11.1
다음은 Python에서 Mitsuba 3을 사용하여 장면을 렌더링하는 것이 얼마나 간단한지 보여주는 간단한 "Hello World" 예입니다.
# Import the library using the alias "mi"
import mitsuba as mi
# Set the variant of the renderer
mi . set_variant ( 'scalar_rgb' )
# Load a scene
scene = mi . load_dict ( mi . cornell_box ())
# Render the scene
img = mi . render ( scene )
# Write the rendered image to an EXR file
mi . Bitmap ( img ). write ( 'cbox.exr' )
다양한 애플리케이션을 다루는 튜토리얼과 예제 노트북은 문서에서 찾을 수 있습니다.
이 프로젝트는 Wenzel Jakob이 만들었습니다. 코드의 중요한 기능 및/또는 개선 사항은 Sébastien Speierer, Nicolas Roussel, Merlin Nimier-David, Delio Vicini, Tizian Zeltner, Baptiste Nicolet, Miguel Crespo, Vincent Leroy 및 Ziyi Zhang이 기여했습니다.
학술 프로젝트에서 Mitsuba 3를 사용하는 경우 다음을 인용하십시오.
@software { Mitsuba3 ,
title = { Mitsuba 3 renderer } ,
author = { Wenzel Jakob and Sébastien Speierer and Nicolas Roussel and Merlin Nimier-David and Delio Vicini and Tizian Zeltner and Baptiste Nicolet and Miguel Crespo and Vincent Leroy and Ziyi Zhang } ,
note = { https://mitsuba-renderer.org } ,
version = { 3.1.1 } ,
year = 2022
}