本文档概述了两个不同的项目:gRPC/Spring(gRPC 的 Spring Boot 启动器)和 Mitsuba 3(面向研究的渲染系统)。 gRPC/Spring 部分详细介绍了其功能、使用说明和兼容性信息。 Mitsuba 3 部分涵盖其安装、使用、功能和贡献者。这两部分都包含代码示例和更多文档的链接。
调查 - gRPC/Spring
尊敬的gRPC/Spring用户,为了增强gRPC/Spring的用户体验
grpc-ecosystem/grpc-spring,我们开发了这项调查作为一种手段
建立直接的沟通渠道。非常感谢您的反馈。
gRPC Spring Boot 启动器
自述文件:英语 | 中文
文档:英语 | 中文
特征
使用 @GrpcService 实现自动配置和运行 gRPC 服务器
使用 @GrpcClient 自动创建和管理您的 grpc 通道和存根
支持其他 grpc-java 风格(例如
反应式 gRPC (RxJava),
grpc-kotlin,...)
支持 Spring-Security
支持Spring Cloud
支持 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 beans 自定义默认 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
文档
教程视频
Linux
苹果系统
视窗
皮伊
警告
目前,大量无证且不稳定的工作正在进行
主分支。我们强烈建议您使用我们的
最新版本
直至另行通知。
如果您已经想尝试即将发生的更改,请查看
本移植指南。
它应该涵盖大部分新功能和即将到来的重大变化。
介绍
Mitsuba 3 是一款面向研究的前向光和逆向光渲染系统
瑞士洛桑联邦理工学院 (EPFL) 开发的交通模拟。
它由一个核心库和一组实现功能的插件组成
从材质和光源到完整的渲染算法。
Mitsuba 3 是可重定向的:这意味着底层实现和
数据结构可以转换以完成各种不同的任务。为了
例如,相同的代码可以模拟标量(经典的一次一束)RGB 传输
或 GPU 上的差分光谱传输。这一切都建立在
Dr.Jit,专门为此项目开发的专用即时 (JIT) 编译器。
主要特点
跨平台:Mitsuba 3 已在 Linux (x86_64)、macOS 上进行测试
(aarch64、x8664)和 Windows (x8664)。
高性能:底层Dr.Jit编译器融合渲染代码
进入内核,使用实现最先进的性能
针对 CPU 的 LLVM 后端和 CUDA/OptiX 后端
针对具有光线追踪硬件加速功能的 NVIDIA GPU。
Python优先:Mitsuba 3与Python深度集成。材料,
纹理,甚至完整的渲染算法都可以用Python开发,
系统即时编译(并可选择区分)。
这使得计算机图形学研究所需的实验成为可能
其他学科。
微分:Mitsuba 3 是一个可微分渲染器,这意味着它
可以计算整个模拟相对于输入的导数
参数,例如相机姿态、几何形状、BSDF、纹理和体积。它
实现了 EPFL 最近开发的可微分渲染算法。
光谱和偏振:Mitsuba 3 可用作单色仪
渲染器、基于 RGB 的渲染器或光谱渲染器。每个变体都可以
如果需要的话,可以选择考虑极化的影响。
教程视频、文档
我们录制了几个 YouTube 视频,提供了温和的介绍
三叶 3 和 Dr.Jit。除此之外,您还可以找到完整的 Juypter 笔记本
涵盖各种应用程序、操作指南和参考文档
阅读文档。
安装
我们通过 PyPI 提供预编译的二进制轮。以这种方式安装三叶就像运行一样简单
pip安装三叶
在命令行上。 Python 包默认包含 13 个变体:
标量_rgb
标量谱
标量光谱偏振
llvmadrgb
卢马德莫诺
llvmadmono_偏振
亮度谱
llvmadspectral_偏振
库达阿德格布
库达莫诺
cudaadmono_极化
CUDA光谱
cudaadspectral_偏振
前两个使用 RGB 执行经典的一次一条光线模拟
或光谱颜色表示,而后两者可用于反演
在 CPU 或 GPU 上渲染。要访问其他变体,您需要
使用 CMake 编译 Dr.Jit 的自定义版本。请参阅
文档
有关详细信息。
要求
Python >= 3.8
(可选)对于 GPU 上的计算:Nvidia 驱动程序 >= 495.89
(可选)对于 CPU 上的矢量化/并行计算:LLVM >= 11.1
用法
这是一个简单的“Hello World”示例,展示了渲染一个
使用 Python 中的 Mitsuba 3 的场景:
# 使用别名“mi”导入库 import mitsuba as mi# 设置渲染器的变体mi.setvariant('scalarrgb')# 加载场景scene = mi.loaddict(mi.cornellbox())# 渲染场景img = mi. render(scene)# 将渲染图像写入EXR文件mi.Bitmap(img).write('cbox.exr')
可以找到涵盖各种应用程序的教程和示例笔记本
在文档中。
关于
该项目由 Wenzel Jakob 创建。
代码的重要功能和/或改进由以下人员贡献
塞巴斯蒂安·施派尔,
尼古拉斯·罗塞尔,
梅林·尼米尔-大卫,
德里奥·维西尼,
蒂齐安·泽尔特纳,
巴蒂斯特·尼科莱特,
米格尔·克雷斯波,
文森特·勒罗伊,和
张子怡.
在学术项目中使用 Mitsuba 3 时,请引用:
@software{Mitsuba3,标题 = {Mitsuba 3 渲染器},作者 = {Wenzel Jakob 和 Sébastien Speierer 和 Nicolas Roussel 和 Merlin Nimier-David 和 Delio Vicini 和 Tizian Zeltner 和 Baptiste Nicolet 和 Miguel Crespo 和 Vincent Leroy 和 Ziyi Zhu},注= {https://mitsuba-renderer.org},版本 = {3.1.1},年份 = 2022}