이 문서에서는 gRPC용 Spring Boot 스타터인 gRPC/Spring과 연구 중심 렌더링 시스템인 Mitsuba 3라는 두 가지 프로젝트에 대한 개요를 제공합니다. gRPC/Spring 섹션에서는 기능, 사용 지침 및 호환성 정보를 자세히 설명합니다. Mitsuba 3 섹션에서는 설치, 사용법, 기능 및 기여자를 다룹니다. 두 섹션 모두 코드 예제와 추가 문서에 대한 링크가 포함되어 있습니다.
설문조사 - gRPC/Spring
친애하는 gRPC/Spring 사용자 여러분, 사용자 경험을 향상시키기 위해
grpc-ecosystem/grpc-spring, 우리는 이 설문조사를 다음 수단으로 개발했습니다.
직접적인 의사소통 라인을 구축합니다. 귀하의 의견을 높이 평가합니다.
gRPC 스프링 부트 스타터
읽어보기: 영어 | 중국어
문서: 영어 | 중국어
특징
@GrpcService 구현을 사용하여 gRPC 서버를 자동으로 구성하고 실행합니다.
@GrpcClient를 사용하여 grpc 채널과 스텁을 자동으로 생성하고 관리합니다.
다른 grpc-java 버전을 지원합니다(예:
반응성 gRPC(RxJava),
grpc-코틀린, ...)
스프링 보안 지원
스프링 클라우드 지원
분산 추적 솔루션으로 Spring Sleuth 지원
(brave-instrumentation-grpc가 있는 경우)
전역 및 사용자 정의 gRPC 서버/클라이언트 인터셉터 지원
자동 미터법 지원(마이크로미터/액추에이터 기반)
(음영 처리되지 않은) grpc-netty에서도 작동합니다.
버전
최신 버전은 3.1.0.RELEASE이며 spring-boot 3.2.4 및 spring-cloud 2023.0.0으로 컴파일되었습니다.
하지만 다양한 다른 버전과도 호환됩니다.
모든 버전과 해당 라이브러리 버전에 대한 개요는 당사 설명서에서 확인할 수 있습니다.
참고: 이 프로젝트는 Spring-Boot 없이도 사용할 수 있지만 일부 수동 Bean 구성이 필요합니다.
용법
gRPC 서버 + 클라이언트
Maven을 사용하여 종속성을 추가하려면 다음을 사용하십시오.
Gradle을 사용하여 종속성을 추가하려면 다음 안내를 따르세요.
gRPC 서버
Maven을 사용하여 종속성을 추가하려면 다음을 사용하십시오.
Gradle을 사용하여 종속성을 추가하려면 다음 안내를 따르세요.
@GrpcService로 서버 인터페이스 구현에 주석을 답니다.
기본적으로 grpc 서버는 포트 9090을 수신합니다.
설정
Spring의 속성 메커니즘을 통해 변경될 수 있습니다. 서버는 grpc.server를 사용합니다. 접두사.
자세한 내용은 설명서를 참조하세요.
gRPC 클라이언트
Maven을 사용하여 종속성을 추가하려면 다음을 사용하십시오.
Gradle을 사용하여 종속성을 추가하려면 다음 안내를 따르세요.
@GrpcClient(serverName)를 사용하여 grpc 클라이언트 스텁의 필드에 주석을 답니다.
@Autowired 또는 @Inject와 함께 사용하지 마십시오.
참고: 여러 채널과 다른 스텁에 동일한 grpc 서버 이름을 사용할 수 있습니다.
인터셉터).
그런 다음 다음과 같이 서버에 쿼리를 보낼 수 있습니다.
각 클라이언트의 대상 주소를 개별적으로 구성할 수 있습니다.
그러나 어떤 경우에는 기본 구성을 그대로 사용할 수도 있습니다.
NameResolver.Factory 빈을 통해 기본 URL 매핑을 사용자 정의할 수 있습니다. 해당 Bean을 구성하지 않으면
그런 다음 기본 구성표와 이름을 사용하여 기본 URI를 추측합니다(예: dns:/
):
이것들과 다른 것
설정
Spring의 속성 메커니즘을 통해 변경될 수 있습니다. 클라이언트는 grpc.client.(serverName)을 사용합니다. 접두사.
자세한 내용은 설명서를 참조하세요.
(음영 처리되지 않은) grpc-netty로 실행
이 라이브러리는 grpc-netty와 grpc-netty-shaded를 모두 지원합니다.
후자는 호환되지 않는 grpc 버전과의 충돌이나 다른 버전의 netty가 필요한 라이브러리 간의 충돌을 방지할 수 있습니다.
참고: 음영 처리된 netty가 클래스 경로에 있는 경우 이 라이브러리는 항상 음영 처리되지 않은 grpc-netty보다 이를 선호합니다.
다음과 같이 Maven과 함께 사용할 수 있습니다.
Gradle을 사용할 때 다음과 같습니다.
예제-프로젝트
여기에서 예시 프로젝트에 대해 자세히 알아보세요.
문제 해결
도움이 필요하면 설명서를 참조하세요.
기여
기여는 언제나 환영합니다! 자세한 지침은 CONTRIBUTING.md를 참조하세요.
예:
미츠바 렌더러 3
선적 서류 비치
튜토리얼 비디오
리눅스
맥OS
윈도우
PyPI
경고
현재 문서화되지 않은 불안정한 작업이 대량으로 진행되고 있습니다.
마스터 브랜치. 우리는 당신이 우리의 사용을 적극 권장합니다
최신 릴리스
추후 공지가 있을 때까지.
이미 다가오는 변경 사항을 시험해보고 싶다면 다음을 살펴보십시오.
이 포팅 가이드.
여기에는 앞으로 나올 대부분의 새로운 기능과 주요 변경 사항이 포함되어야 합니다.
소개
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가지 변형이 포함되어 있습니다.
스칼라_rgb
스칼라_스펙트럴
스칼라 스펙트럼 편광
llvmadrgb
llvmadmono
llvmadmono_편광화
llvmadspectral
llvmadspectral_편광
cudaadrgb
쿠다드모노
cudaadmono_편광화
cudaadspectral
cudaadspectral_편광
처음 두 개는 RGB 중 하나를 사용하여 한 번에 한 광선 시뮬레이션을 수행합니다.
또는 스펙트럼 색상 표현 중 후자 두 개는 역으로 사용될 수 있습니다.
CPU 또는 GPU에서 렌더링합니다. 추가 변형에 액세스하려면 다음을 수행해야 합니다.
CMake를 사용하여 Dr.Jit의 사용자 정의 버전을 컴파일합니다. 다음을 참조하세요.
선적 서류 비치
이에 대한 자세한 내용은.
요구사항
파이썬 >= 3.8
(선택 사항) GPU 계산의 경우: Nvidia 드라이버 >= 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}