Windows 10 下 SIBR Core (i.e. 3DGS SIBR Viewers) 的编译

news2025/3/6 21:14:59

本文针对在 Windows 10 上从源码编译安装3DGS (3D Gaussian Splatting)的Viewers 即SIBR Core及外部依赖库extlibs(预编译的版本直接在页面https://sibr.gitlabpages.inria.fr/download.html下载) ,参考SIBR 的官方网站:https://sibr.gitlabpages.inria.fr,按照以下步骤进行。

1 获取源代码

下载SIBR Core源码(https://gitlab.inria.fr/sibr/sibr_core)的压缩包,也可以通过git clone https://gitlab.inria.fr/sibr/sibr_core.git -b master下载。或者采用3DGS项目下的SIBR_viewers(https://github.com/graphdeco-inria/gaussian-splatting)。本文采用后者代码构建。

2 需要安装的工具和依赖项

2.1 Git

安装过程见其他参考。注意:需要添加到系统环境变量中。

2.2 Visual Studio 2019 (本文采用 VS 2017)

安装过程见其他参考。注意:需要添加到系统环境变量中。

2.3 cmake 3.16 或更高版本(本文采用 3.26.3)

安装过程见其他参考。注意:需要添加到系统环境变量中。

2.4 Python 3.8 或更高版本 (本文 Python 3.9.12)

可以从 https://www.python.org/downloads 中安装和配置或直接安装Anaconda (本文基于Anaconda环境)。

2.5 PIL(pillow)

在Anaconda环境中安装 pip install pillow,离线下载网址:https://pypi.org/project/pillow/)。

2.6 ImageMagick

从网页https://imagemagick.org/script/download.php下载安装。注意:需要添加到系统环境变量中。

2.7 CUDA10.1 或更高版本(本文为CUDA11.7)和cudnn

安装过程见其他参考。

* 2.8 Doxygen 1.8.17 或更高版本(本文1.13.2,可选择不安装)

Doxygen用于生成本地文档,应在生成文档的路径中安装和配置(http://www.doxygen.nl/download.html)。注意:需要添加到系统环境变量中。

* 2.9 7-ZIP(可选择不安装)

下载地址 https://www.7-zip.org/download.html。
注意:(1) 需要添加到系统环境变量中。
(2) 如果直接下载SIBR Core所依赖的第三方库extlibs就不需要在线下载安装(本文采用此方法)。

* 在CMake构建期间将从在线载外部依赖关系,此过程可以先提前下载第三方库extlibs在编译。

3 构建过程

3.1 运行CMake GUI,选择sibr-core的根文件夹作为源目录,在sibr-core下新建 build 作为构建目录。
3.2 在CMake中配置,选择x64编译器。然后在ConfigureGenerate完成。
CMake
3.3VS2017中打开build文件夹中的sibr_projects.sln,选择Build_ALL目标生成,编译后的可执行文件将被放入sibr-core/install/bin目录中。
在这里插入图片描述

注:此过程常出现错误,见参考2

大概意思就是:VS2017 版本修复了老版本有关对齐存储部分缺陷,但修复本身也有缺陷。如果不想编译时报这个问题,就在预编译时定义一个宏 _ENABLE_EXTENDED_ALIGNED_STORAGE 或者 _DISABLE_EXTENDED_ALIGNED_STORAGE(笔者的理解是按照修复后的逻辑处理就定义带enable那个,按照老版本的逻辑处理就定义带disable那个)

在这里插入图片描述
分别通过在下图右侧缺少相应的sibe_*.lib对应项目的属性页-C/C++/预处理器/预处理器定义中添加_DISABLE_EXTENDED_ALIGNED_STORAGE解决此问题。
在这里插入图片描述

3.4 最终编译好的软件在根目录/install/bin下,可以找到相应的SIBR_*.exe文件。
在这里插入图片描述

参考

  1. https://sibr.gitlabpages.inria.fr
  2. https://blog.csdn.net/jiqiren_dasheng/article/details/88684370

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2310702.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaWeb-HttpServletRequest请求域接口

文章目录 HttpServletRequest请求域接口HttpServletRequest请求域接口简介关于请求域和应用域的区别 请求域接口中的相关方法获取前端请求参数(getParameter系列方法)存储请求域名参数(Attribute系列方法)获取客户端的相关地址信息获取项目的根路径 关于转发和重定向的细致剖析…

防火墙虚拟系统实验

拓扑图 需求一 安全策略要求: 1、只存在一个公网IP地址,公司内网所有部门都需要借用同一个接口访问外网 2、财务部禁止访问Internet,研发部门只有部分员工可以访问Internet,行政部门全部可以访问互联网 3、为三个部门的虚拟系统分…

点云滤波方法:特点、作用及使用场景

点云滤波是点云数据预处理的重要步骤,目的是去除噪声点、离群点等异常数据,平滑点云或提取特定频段特征,为后续的特征提取、配准、曲面重建、可视化等高阶应用打下良好基础。以下是点云中几种常见滤波方法的特点、作用及使用场景:…

Gradle 配置 Lombok 项目并发布到私有 Maven 仓库的完整指南

Gradle 配置 Lombok 项目并发布到私有 Maven 仓库的完整指南 在 Java 项目开发中,使用 Lombok 可以极大地减少样板代码(如 getter/setter 方法、构造器等),提高开发效率。然而,当使用 Gradle 构建工具并将项目发布到私…

ArcGIS Pro 基于基站数据生成基站扇区地图

在当今数字化的时代,地理信息系统(GIS)在各个领域都发挥着至关重要的作用。 ArcGIS Pro作为一款功能强大的GIS软件,为用户提供了丰富的工具和功能,使得数据处理、地图制作和空间分析变得更加高效和便捷。 本文将为您…

【Python · Pytorch】Conda介绍 DGL-cuda安装

本文仅涉及DGL库介绍与cuda配置,不包含神经网络及其训练测试。 起因:博主电脑安装了 CUDA 12.4 版本,但DGL疑似没有版本支持该CUDA版本。随即想到可利用Conda创建CUDA12.1版本的虚拟环境。 1. Conda环境 1.1 Conda环境简介 Conda&#xff1…

leetcode:2965. 找出缺失和重复的数字(python3解法)

难度:简单 给你一个下标从 0 开始的二维整数矩阵 grid,大小为 n * n ,其中的值在 [1, n2] 范围内。除了 a 出现 两次,b 缺失 之外,每个整数都 恰好出现一次 。 任务是找出重复的数字a 和缺失的数字 b 。 返回一个下标从…

Android U 分屏——SystemUI侧处理

WMShell相关的dump命令 手机分屏启动应用后运行命令:adb shell dumpsys activity service SystemUIService WMShell 我们可以找到其中分屏的部分,如下图所示: 分屏的组成 简图 分屏是由上分屏(SideStage)、下分屏(MainStage)以及分割线组…

flink集成tidb cdc

Flink TiDB CDC 详解 1. TiDB CDC 简介 1.1 TiDB CDC 的核心概念 TiDB CDC 是 TiDB 提供的变更数据捕获工具,能够实时捕获 TiDB 集群中的数据变更(如 INSERT、UPDATE、DELETE 操作),并将这些变更以事件流的形式输出。TiDB CDC 的…

推荐1款OCR的扫描仪软件,无需安装,打开即用!

聊一聊 现在日常办公,很多时候还是需要扫描仪配合。 很多时候需要将文件搜索成PDF再传输。 今天给大家分享一款OCR扫描仪软件。 软件介绍 OCR的扫描仪软件 支持扫描仪共享。 支持WIA、TWAIN、SANE和ESCL驱动程序。 还可以批量多扫描仪配置扫描,支持…

SpringBoot为什么默认使用CGLIB?

大家好,我是锋哥。今天分享关于【SpringBoot为什么默认使用CGLIB?】面试题。希望对大家有帮助; SpringBoot为什么默认使用CGLIB? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring Boot 默认使用 CGLIB(Code Generation Li…

神经网络|(十三)|SOM神经网络

【1】引言 前序已经对神经网络有了基础认识,今天先学习SOM神经网络。 前序学习文章链接包括且不限于: 神经网络|(十一)|神经元和神经网络-CSDN博客 神经网络|(十二)|常见激活函数-CSDN博客 【2】SOM神经网络 SOM神经网络是一种结构比较简单、但是理…

IP协议、DNS协议、DHCP协议、Telent协议的记忆总结

首先记忆一下几个协议的端口号 HTTP:超文本传输协议 80 HTTPS:安全传输协议 443 DHCP:动态主机配置协议 67/68 DNS:域名解析协议 53 FTP:文件传输协议 20/21 TFTP:简单文件传输协议 69 TELENT:远…

Pico 4 Enterprise(企业版)与Unity的交互-有线串流调试篇

入手了Pico 4 E做VR开发,谁知入了天坑...根据官方文档,尝试了串流助手、企业串流、PICO Developer Center,陷入了各种版本问题、环境问题的陷阱。而且Pico4E的OS自24年12开始就不再更新,头盔中预装的企业串流版本也较低&#xff0…

DeepSeek-R1:使用KTransformers实现高效部署指南

KTransformers作为一个开源框架,专门为优化大规模语言模型的推理过程而设计。它支持GPU/CPU异构计算,并针对MoE架构的稀疏性进行了特别优化,可以有效降低硬件要求,允许用户在有限的资源下运行像DeepSeek-R1这样庞大的模型。 硬件…

任务9:交换机基础及配置

CSDN 原创主页:不羁https://blog.csdn.net/2303_76492156?typeblog 一、交换机基础 交换机的概念:交换机是一种网络设备,用于连接多台计算机或网络设备,实现数据包在局域网内的快速交换。交换机基于MAC地址来转发数据包&#x…

Notepad++ 8.6.7 安装与配置全攻略(Windows平台)

一、软件定位与核心优势 Notepad 是开源免费的代码/文本编辑器,支持超过80种编程语言的高亮显示,相比系统自带记事本具有以下优势: 轻量高效:启动速度比同类软件快30%插件扩展:支持NppExec、JSON Viewer等200插件跨文…

SpringMVC请求处理流程:DispatcherServlet工作原理

文章目录 引言一、DispatcherServlet概述二、DispatcherServlet初始化过程三、请求接收与处理器匹配四、请求参数绑定与处理器执行五、视图解析与渲染六、异常处理机制总结 引言 SpringMVC框架是Java Web开发中最流行的MVC框架之一,其核心组件DispatcherServlet作为…

解锁数据潜能,永洪科技以数据之力简化中粮可口可乐决策之路

企业数字化转型是指企业利用数字技术和信息通信技术来改变自身的商业模式、流程和增值服务,以提高企业的竞争力和创新能力。数字化转型已经成为企业发展的重要战略,尤其在当前信息技术高速发展的时代。数字化转型还涉及到企业与消费者之间的互动和沟通。…

双链路提升网络传输的可靠性扩展可用带宽

为了提升网络传输的可靠性或增加网络可用带宽, 通常使用双链路冗余备份或者双链路聚合的方式。 本文介绍几种双链路网络通信的案例。 5GWiFi冗余传输 双Socket绑定不同网络接口:通过Android的ConnectivityManager绑定5G蜂窝网络和WiFi的Socket连接&…