이 문서는 CommonMark Markdown 파서의 고성능 Java 구현인 flexmark-java에 대한 포괄적인 개요를 제공합니다. 빠른 시작, 사용 가능한 확장 및 페그다운에서 마이그레이션에 대한 지침과 함께 속도, 확장성 및 자세한 소스 위치 추적을 포함한 기능을 자세히 설명합니다. 이 문서는 또한 지속적인 개발 및 기여 지침을 다루고 있습니다.
flexmark-java
flexmark-java는 다음을 사용하는 CommonMark(사양 0.28) 파서의 Java 구현입니다.
블록을 먼저 처리하고 Markdown 구문 분석 아키텍처 다음에 인라인을 적용합니다.
장점은 속도, 유연성, 마크다운 소스 요소 기반 AST,
요소를 구성하는 어휘소의 개별 문자까지 소스 위치와
확장성.
API를 사용하면 구문 분석 프로세스를 세부적으로 제어할 수 있으며 대규모 구문 분석에 최적화되어 있습니다.
설치된 확장 프로그램 수 파서 및 확장에는 파서에 대한 다양한 옵션이 제공됩니다.
동작 및 HTML 렌더링 변형. 최종 목표는 파서와 렌더러가
높은 정확도로 다른 파서를 모방합니다. 이제 이 부분이 다음과 같이 부분적으로 완료되었습니다.
마크다운 프로세서 에뮬레이션 구현
이 프로젝트의 동기는 내 Markdown Navigator에서 페그다운 파서를 교체해야 한다는 것이었습니다.
JetBrains IDE용 플러그인. pegdown에는 훌륭한 기능 세트가 있지만 일반적으로 속도가 느립니다.
이상적이고 병리학적 입력의 경우 구문 분석 중에 중단되거나 실질적으로 중단됩니다.
️버전 0.60.0에는 재구성, 이름 변경, 정리 및
구현 클래스의 최적화. 변경 사항은 다음에 자세히 설명되어 있습니다.
버전-0.60.0-변경 사항.
최신
요구사항
버전 0.62.2 이하, Java 8 이상, Java 9+ 호환. 버전 0.64.0 또는
이상, Java 11 이상.
프로젝트는 Maven에 있습니다: com.vladsch.flexmark
코어에는 org.jetbrains:annotations:24.0.1 이외의 종속성이 없습니다. 확장에 대해서는 다음을 참조하세요.
아래 확장 설명.
API는 새로운 확장과 기능을 수용하기 위해 계속 발전하고 있습니다.
빠른 시작
Maven의 경우 코어 및 모든 모듈을 포함하는 종속성으로 flexmark-all을 추가합니다.
다음 샘플:
원천:
BasicSample.java
Gradle을 통한 빌드
Android 스튜디오로 빌드하기
중복 파일로 인한 추가 설정:
자세한 내용은 다음 문서에서 확인할 수 있습니다.
Wiki 홈 사용 예
확장 세부정보
확장 기능 작성
페그다운 마이그레이션 도우미
PegdownOptionsAdapter 클래스는 pegdown Extensions.* 플래그를 flexmark 옵션으로 변환하고
확장 목록. 편의를 위해 Pegdown Extensions.java가 포함되어 있으며 새 옵션을 찾을 수 없습니다.
페그다운 1.6.0에서. 이는 flexmark-profile-pegdown 모듈에 있지만 다음을 가져올 수 있습니다.
이 저장소의 소스: PegdownOptionsAdapter.java, Extensions.java 및 자신만의 소스 만들기
프로젝트 요구에 맞게 수정된 버전입니다.
확장 플래그를 정적 PegdownOptionsAdapter.flexmarkOptions(int)에 전달하거나
PegdownOptionsAdapter를 인스턴스화하고 편리한 메서드를 사용하여 설정, 추가 및 제거할 수 있습니다.
확장 플래그. PegdownOptionsAdapter.getFlexmarkOptions()는 다음의 새로운 복사본을 반환합니다.
DataHolder는 항상 페그다운 확장 플래그를 반영하는 옵션을 사용합니다.
기본 flexmark-java 페그다운 에뮬레이션은 덜 엄격한 HTML 블록 구문 분석을 사용하여
빈 줄에 HTML 블록이 있습니다. Pegdown은 모든 태그가 있는 경우에만 빈 줄의 HTML 블록을 중단합니다.
HTML 블록이 닫힙니다.
원래의 페그다운 HTML 블록 구문 분석 동작에 더 가까워지려면
부울 strictHtml 인수:
사용자 정의 링크 확인자가 포함된 샘플도 사용할 수 있습니다.
재정의해야 하는 경우 링크의 URL이나 속성 및 사용자 정의 노드 렌더러를 변경합니다.
생성된 링크 HTML.
flexmark-java에는 다음보다 더 많은 확장 기능과 구성 옵션이 있습니다.
pegdown 1.6.0에서 사용할 수 있는 확장 기능 외에 pegdown도 있습니다.
PegdownOptionsAdapter를 통해 사용 가능한 확장
최신 추가 및 변경 사항
버전 0.60.0 구현의 주요 재구성 및 코드 정리는 다음을 참조하세요.
버전-0.60.0-님의 훌륭한 작업 덕분에 변경되었습니다.
Alex Karezin은 모듈 종속성에 대한 개요를 얻을 수 있습니다.
패키지와 클래스를 드릴다운하는 기능이 있습니다.
여러 마크다운 문서를 하나의 문서로 병합하는 병합 API
문서.
Docx 렌더러 확장:
제한된 속성 노드 처리
확장 가능한 HTML-Markdown 변환기 모듈:
flexmark-html2md-변환기. 견본:
HtmlToMarkdownCustomizedSample.java
Java9+ 모듈 호환성
복합 열거 참조
생성을 위한 열거 참조 확장
요소와 제목에 대한 법적 번호 매기기.
임의의 마크다운 콘텐츠를 허용하는 매크로 확장
블록 또는 인라인 요소로 삽입되어 인라인에서만 블록 요소를 사용할 수 있습니다.
요소는 구문에 의해 허용됩니다.
구문 분석을 위한 GitLab Flavored Markdown 및
GitLab 마크다운 확장 렌더링.
OSGi 모듈 제공: Dan Klco(GitHub @klcodanr)
미디어 태그 미디어 링크 변환기 확장 예의
Cornelia Schultz(GitHub @CorneliaXaos)가 링크를 변환합니다.
오디오, 포함, 사진 및 비디오 HTML5 태그에 사용자 정의 접두사를 사용합니다.
번역 마크다운을 위한 번역 도우미 API
문서가 더 쉬워졌습니다.
훈계 블록 스타일의 사이드 콘텐츠를 만들려면. 을 위한
전체 문서는 Admonition Extension, MkDocs 자료를 참조하세요.
선적 서류 비치.
열거형을 생성하기 위한 열거형 참조
그림, 표 및 기타 마크다운 요소에 대한 참조입니다.
{name name=value name='value' name="value" #id .class-name} 속성 형식의 속성을 구문 분석하는 속성입니다.
YouTube 임베디드 링크 변환기
Vyacheslav N. Boyko(GitHub @bvn13) 덕분에 YouTube 동영상에 대한 간단한 링크를
삽입된 비디오 iframe HTML.
docx4j 라이브러리를 사용하는 Docx 변환기. 사용 방법:
DocxConverter 샘플, 사용자 정의 방법:
Docx 렌더링 사용자 정의
이 모듈의 개발은 다음 회사의 후원을 받았습니다.
Johner Institut GmbH.
CommonMark(사양 0.28)을 준수하도록 라이브러리를 업데이트하고 추가합니다.
ParserEmulationProfile.COMMONMARK027 및 ParserEmulationProfile.COMMONMARK028을 사용하여 허용
특정 사양 버전 옵션을 선택합니다.
재정의된 노드에 대한 표준 렌더링을 호출하는 기능을 갖춘 사용자 정의 노드 렌더링 API,
특별한 경우만 처리하고 나머지는 다음과 같이 렌더링되도록 하는 사용자 정의 노드 렌더링을 허용합니다.
평소. 사용자 정의 링크 확인자
Gfm 문제 및
구문 분석 및 렌더링을 위한 Gfm-Users 확장 #123 및
@사용자 이름입니다.
다른 태그 뒤에 오는 원시 텍스트 태그를 더 잘 처리하기 위한 심층 HTML 블록 구문 분석 옵션
그리고 페그다운 HTML 블록 구문 분석 호환성을 위해.
코어, 모든 확장, 포맷터, JIRA 및 YouTrack을 포함하는 flexmark-all 모듈
변환기, 페그다운 프로필 모듈 및 HTML을 마크다운으로 변환합니다.
PDF 출력 모듈
Open HTML To PDF를 사용한 PDF 출력
활자체 구현
XWiki 매크로 확장
지킬 태그
HTML을 마크다운으로
Maven 마크다운 페이지 생성기 플러그인
AST를 마크다운으로 출력하는 마크다운 포맷터 모듈
서식 옵션.
마크다운 포맷터용 테이블
열 너비와 마크다운 테이블 정렬:
릴리스, 버그 수정, 개선 사항 및 지원
저는 JetBrains IDE용 Markdown Navigator 플러그인의 파서로 flexmark-java를 사용합니다. 나는 경향이있다
버그를 수정하거나 개선하려면 아직 출시되지 않은 최신 버전을 사용하세요. 따라서 버그를 발견하면
프로젝트에 대한 쇼 스토퍼를 제공하거나 프로젝트에 영향을 미치는 다음 릴리스에 대해 수정된 것으로 표시된 Github 문제 페이지의 버그를 확인한 후 알려주시면 즉시 답변해 드릴 수 있습니다.
문제를 해결하기 위해 새 릴리스를 만드십시오. 그렇지 않으면 버그 수정 및 개선을 허용하겠습니다.
이미 수정된 것의 영향을 받는 사람은 아무도 없다는 생각을 쌓아보세요.
API의 확장 지점은 매우 많습니다.
API에는 용도에 따라 다양한 확장 옵션이 있습니다. 좋은 소프트 스타트는
요청된 간단한 샘플이 있는 flexmark-java-samples 모듈
확장. 다음으로 가장 좋은 장소는 유사한 구문을 가진 기존 확장의 소스입니다.
당신이 추가하고 싶은 것에.
확장 프로그램이 올바른 API와 일치하면 작업은 일반적으로 매우 짧고 간단합니다. 만약 당신의
확장 프로그램이 의도하지 않은 방식으로 API를 사용하거나 예상되는 하우스키핑을 따르지 않습니다.
프로토콜의 경우 if/else 조건 처리 및
하나의 버그를 수정하면 또 다른 버그가 생성될 뿐입니다.
일반적으로 간단한 확장을 추가하는 데 수십 줄 이상이 필요한 경우 다음 중 하나를 수행하십시오.
문제가 발생했거나 API에 확장점이 없습니다. 모든 내용을 살펴보면
확장을 구현하면 대부분이 보일러 플레이트 이외의 몇 줄의 코드라는 것을 알 수 있습니다.
API에 의해 지시됩니다. 이것이 이 라이브러리의 목표입니다.
확장 프로그램을 쉽게 작성하세요.
더 큰 확장은 flexmark-ext-tables와 flexmark-ext-spec-example입니다.
둘 다 약 200줄의 코드입니다. 크기를 추정하기 위한 가이드 포스트로 사용할 수 있습니다.
확대.
확장 프로그램을 추가하는 내 경험에 따르면 때로는 새로운 유형의 확장 프로그램이 가장 좋습니다.
API 개선을 통해 구현을 원활하게 하거나 버그를 수정하여 해결합니다.
확장 프로그램이 올바른 방식으로 API를 강조하기 전에는 표시되지 않았습니다. 당신의 의도
확장은 그러한 접근 방식이 필요한 것일 수도 있습니다.
답을 찾을 수 없다면 주저하지 말고 문제를 열어보세요.
요점은 다음과 같습니다. 확장 기능이나 기능을 구현하려면 주저하지 말고
문제를 열면 최선의 방법을 알려드리겠습니다. 많이 절약할 수 있어요
많은 것을 추가하기 전에 확장 기능의 요구 사항을 해결하기 위해 API를 개선할 수 있도록 함으로써 시간을 절약할 수 있습니다.
그것에 대한 결실없는 노력.
제가 이 프로젝트의 수석 요리사이자 병 세척자라는 사실을 알아주셨으면 좋겠습니다.
Vulcan Mind Melding 기술이 많이 있습니다. 구현하려는 내용을 설명해달라고 요청합니다.
왜냐하면 나는 당신의 마음을 읽을 수 없기 때문입니다. 소스에 대한 정찰 배경 작업을 수행하십시오.
당신의 의지 없이는 내가 아는 것을 당신에게 전달할 수 없기 때문에 코드와 문서
노력.
상담이 가능합니다
상업용 애플리케이션이 있고 확장 기능을 직접 작성하고 싶지 않거나 원하는 경우
확장 기능을 구현하고 flexmark-java를 통합하는 데 드는 시간과 노력을 줄이기 위해
저에게 연락 주시기 바랍니다. 컨설팅/계약 방식으로 이용 가능합니다.
마크다운 프로세서 에뮬레이션
이름에도 불구하고 commonmark는 상위 집합도 아니고 다른 마크다운 버전의 하위 집합도 아닙니다.
오히려 원본 "코어"에 대한 표준적이고 명확한 구문 사양을 제안합니다.
Markdown은 또 다른 맛을 효과적으로 도입합니다. Flexmark는 기본적으로
commonmark를 준수하며 파서는 다양한 방법으로 조정할 수 있습니다. 필요한 조정 세트
flexmark에서 가장 일반적으로 사용되는 마크다운 파서를 에뮬레이트합니다.
ParserEmulationProfiles.
ParserEmulationProfile이라는 이름에서 알 수 있듯이 파서만 조정됩니다.
특정 마크다운 맛. 프로필을 적용해도 다음에서 사용할 수 있는 기능 이외의 기능은 추가되지 않습니다.
공통마크. flexmark를 사용하여 다른 마크다운 프로세서의 동작을 완전히 에뮬레이션하려면,
파서를 조정하고 추가 기능을 제공하는 flexmark 확장을 구성해야 합니다.
에뮬레이트하려는 파서에서 사용할 수 있는 기능입니다.
다른 마크다운 프로세서의 에뮬레이션을 더 잘 제어하기 위해 목록 파서를 다시 작성했습니다.
마크다운 프로세서 에뮬레이션이 완료되었습니다. 추가
이러한 파서의 특정 마크다운 처리 동작을 에뮬레이션하기 위한 프로세서 사전 설정은
할 일 목록이 짧습니다.
일부 에뮬레이션 제품군은 다른 에뮬레이션 제품군보다 대상을 더 잘 에뮬레이션합니다. 대부분의
이러한 프로세서가 표준 Markdown 및 목록을 구문 분석하는 방법을 에뮬레이트하는 데 노력이 집중되었습니다.
특히 관련 구문 분석. 원본 Markdown을 확장하는 프로세서의 경우 다음을 추가해야 합니다.
flexmark-java에서 Parser/Renderer 빌더에 이미 구현된 확장
옵션.
특정 프로세서 에뮬레이션에 대한 자체 사전 설정을 포함하도록 확장이 수정됩니다.
해당 프로세서에는 동등한 확장이 구현되어 있습니다.
불일치를 발견하면 해결할 수 있도록 문제를 열어주세요.
주요 프로세서 제품군이 구현되었으며 일부 제품군 구성원도 다음과 같습니다.
변형에 대한 구성 세부정보를 캡슐화하는 프로필
0.11.0에 패밀리가 추가되었습니다:
역사와 동기
flexmark-java는 commonmark-java 프로젝트의 포크로, AST를 생성하도록 수정되었습니다.
원본 소스의 모든 요소를 반영하고 모든 요소에 대한 전체 소스 위치 추적
AST 및 더 쉬운 JetBrains Open API PsiTree 생성.
API는 구문 분석 프로세스를 보다 세부적으로 제어할 수 있도록 변경되었으며 다음에 최적화되었습니다.
다수의 설치된 확장으로 구문 분석. 파서와 확장에는 많은 기능이 포함되어 있습니다.
파서 동작 및 HTML 렌더링 변형에 대한 옵션을 조정합니다. 최종 목표는
파서와 렌더러는 매우 정확하게 다른 파서를 모방할 수 있습니다.
이에 대한 동기는 Markdown Navigator 플러그인의 pegdown 파서를 대체해야 한다는 것이었습니다.
pegdown에는 훌륭한 기능 세트가 있지만 일반적으로 속도는 이상적이지 않습니다.
분석 중에 병리학적 입력이 중단되거나 실제로 중단됩니다.
commonmark-java는 이해하고 확장하기 쉬운 뛰어난 구문 분석 아키텍처를 갖추고 있습니다.
목표는 AST에 소스 위치 추적을 추가해도 편의성이 변경되지 않도록 하는 것이었습니다.
꼭 필요한 것 이상으로 AST를 구문 분석하고 생성합니다.
commonmark-java를 파서로 선택한 이유는 속도, 이해 용이성, 분석 용이성입니다.
확장 및 속도. 이제 핵심을 재작업하고 몇 가지 확장 기능을 추가했으므로 매우 만족스럽습니다.
내 선택에 만족해요.
또 다른 목표는 확장 기능을 개선하여 파서 동작을 수정하는 것이었습니다.
마크다운의 방언은 확장 메커니즘을 통해 구현될 수 있습니다. 확장 가능한 옵션
모든 옵션을 한곳에서 설정할 수 있도록 API가 추가되었습니다. 파서, 렌더러 및 확장 사용
일부 핵심 블록 파서 비활성화를 포함하여 구성에 대한 이러한 옵션.
이는 많은 API 변경이 진행 중인 작업입니다. 이전 버전의 API를 유지하려는 시도가 없습니다.
원래 프로젝트와의 호환성 및 기능 세트가 대부분 완료될 때까지
이 프로젝트의 이전 버전.
기능 비교
(1)
flexmark-java 병리학적 입력 100,000[68ms에 구문 분석, 100,000] 57ms, 100,000
중첩된 [ ] 구문 분석은 55ms 내에 수행됩니다.
(2)
commonmark-java 병리학적 입력 100,000[30ms에 구문 분석, 100,000] 30ms에 100,000
중첩된 [ ] 구문 분석은 43ms 내에 수행됩니다.
(3)
17의 페그다운 병리학적 입력은 650ms에 구문 분석되고, 18은 1300ms에 분석됩니다.
진전
나는 내 자신을 위해 commonmark-java 기반 파서로 전환하기로 한 결정에 매우 만족합니다.
프로젝트. 완전한 소스 위치를 얻기 위해 내부에 큰 수술을 해야 했지만
소스 요소와 일치하는 추적 및 AST를 사용하는 것이 즐겁고 이제는
연장하게 되어 기쁘다. 소스 레벨 요소 AST 또는 나머지 flexmark-java가 필요하지 않은 경우
추가되었으며 CommonMark가 대상 마크다운 파서이므로 사용하는 것이 좋습니다.
commonmark-java는 귀하의 요구에 맞는 탁월한 선택이며 성능은 그렇지 않습니다.
사용하지 않을 기능으로 인한 오버헤드로 인해 어려움을 겪습니다.
벤치마크
최신, 2017년 1월 28일 flexmark-java 0.13.1, CE EAP 2017의 intellij-markdown, commonmark-java
0.8.0:
위의 비율:
이 두 파일은 페그다운에 대한 병리학적 입력을 나타내기 때문에 더 이상 다음과 같이 실행하지 않습니다.
결과 왜곡을 방지하기 위한 벤치마크의 일부입니다. 결과는 후손을 위해 여기에 있습니다.
위의 비율:
기여
풀 요청, 이슈 및 의견을 환영합니다. 풀 요청의 경우:
특허
저작권 (c) 2015-2016 Atlassian 및 기타.
저작권 (c) 2016-2023, 블라디미르 슈나이더,
BSD(2절) 라이센스가 부여되었습니다. LICENSE.txt 파일을 참조하십시오.
예:
미츠바 렌더러 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}