Ubuntu编译Nvidia Instant RM (含Mitsuba3编译方法)

Nvidia Instant RM是一个利用Ray_Tracing来实时估计信号传播效果的工具包,其依赖Mitsuba3和Dr.jit

Ubuntu下编译Mitsuba3方法

参考:https://mitsuba.readthedocs.io/en/latest/src/developer_guide/compiling.html

1. 创建Python >= 3.10的虚拟环境

instant-rm在编译安装时需要依赖3.10以上的python,因此提前创建好虚拟环境。本人使用的是Ubuntu20.04系统,apt源中没有Python3.10,因此手动编译安装并且在虚拟环境中使用,可参考之前的博客:

在非系统自带的Python环境中使用CvBridge

2. 安装必要依赖

# Install recent versions build tools, including Clang and libc++ (Clang's C++ library)
sudo apt install clang-10 libc++-10-dev libc++abi-10-dev cmake ninja-build

# Install libraries for image I/O
sudo apt install libpng-dev libjpeg-dev

# Install required Python packages
sudo apt install libpython3-dev python3-distutils

# For running tests
sudo apt install python3-pytest python3-pytest-xdist python3-numpy

3. 下载Mitsuba3的所有功能包

git clone --recursive  https://github.com/mitsuba-renderer/mitsuba3.git --branch v3.5.2

如果报错有的submodule无法下载,可使用以下命令重试

git submodule update --init --recursive

如果还不行,则点进mitsuba3的github,手动下载submodule

4. 配置Mitsuba.conf

在/mitsuba3/resources文件夹下,找到mitsuba.conf.template文件,复制一份并重命名为mitsuba.conf

打开mitsuba.conf,找到86行左右,添加为:

"enabled": [
        "scalar_rgb", "scalar_spectral", "cuda_ad_rgb", "llvm_ad_rgb", "cuda_ad_mono_polarized"
    ],

94行左右,添加为:

"python-default": "llvm_ad_rgb",

5. 编译Mitsuba3

export CC=clang-10 export CXX=clang++-10

mkdir build

cd build

# 第一步安装Python3.10的路径, 注意终端打印的Found Python是否是3.10版本,CCompiler是否是clang
cmake -GNinja -DPython_EXECUTABLE=/python3.10/bin/python3 .. 

# 根据CPU线程数选择
ninja -j20

一切正常的话,在/mitsuba3/build/python/drjit文件夹下应有drjit_ext.cpython-310-x86_64-linux-gnu.so文件

安装InstantRM

参考:https://github.com/NVlabs/instant-rm,在之前创建的虚拟环境中安装即可

运行instant-rm

开启虚拟环境并且设置mitsuba的python路径

source venv/instantRM/bin/activate # 启动虚拟环境
source mitsuba3/build/setpath.sh --extend # 防止覆盖

注意运行的时候,如果报错could not initialize optix! 可以尝试升级显卡驱动,之前470版本会报错,升成535之后正常.
如果报错“jit_optix_api_init(): libnvoptix.so.1 could not be loaded ”,安装以下库:sudo apt install libnvidia-gl-535

### 实现点云缩放在 Mitsuba3 为了在Mitsuba3中实现点云的缩放操作,可以利用Python脚本编写自定义变换函数。下面是一个详细的说明以及相应的代码示例。 #### 编写 Python 脚本来处理点云数据 可以通过读取原始点云文件,应用所需的缩放因子至每一个坐标位置上,之后再保存修改后的版本回磁盘。这里假设已经安装好了`mitsuba3`环境并且能够正常调用其API接口[^1]。 ```python import numpy as np from mitsuba.core import Vector3f, write_bitmap from mitsuba.render import register_plugin def scale_point_cloud(input_file, output_file, factor=2.0): """ 对给定的点云文件执行均匀缩放 参数: input_file (str): 输入点云文件路径. output_file (str): 输出点云文件路径. factor (float): 应用于所有坐标的统一缩放系数,默认为2倍放大. """ # 加载点云数据 points = np.loadtxt(input_file) # 执行缩放转换 scaled_points = points * factor # 将结果保存到新的文件中 np.savetxt(output_file, scaled_points) if __name__ == "__main__": # 定义输入输出文件名及缩放比例 infile = "path/to/your/input.ply" outfile = "path/to/save/output_scaled.ply" # 设置缩放参数 scaling_factor = 1.5 # 进行点云缩放操作 scale_point_cloud(infile, outfile, scaling_factor) ``` 此段程序展示了如何创建一个简单的工具来进行基本的空间变换——即整体扩大或缩小整个模型尺寸而不改变形状特征。需要注意的是,在实际应用场景下可能还需要考虑其他因素比如法线方向调整等问题[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值