Open3D C++系列教程 (一)环境搭建

1. 前言

仅以此系列教程,纪念我被Open3D C++折磨的历程。此系列主要介绍如何在C++中使用Open3D,尤其是使用其GUI模块快速创建一个窗口应用程序。

本系列仅在Windows上进行测试,使用Visual Studio Community 2022 和CMake,Open3D版本为v0.17.0。

2. 环境搭建

你完全可以克隆官方的GitHub仓库然后自己编译,但是这个过程可能会碰到一些离谱的问题,为了方便起见,推荐直接下载官方提供的二进制包。
进入官方仓库或直接以下点击链接下载对应的二进制包:

目标库

将下载的zip解压任意到你想要的位置,如D:\Libs\open3d-devel-windows-amd64-0.17.0,路径中不要出现中文字符。
解压结果

3. 创建第一个Open3D项目

创建一个目录exp01,并在该目录下创建main.cpp和CMakeLists.txt,结构如下:

exp01
 ├── CMakeLists.txt
 └── main.cpp

 
 
3.1 CMakeLists编写

在CMakeLists.txt中编写以下内容:

# CMake版本需求
cmake_minimum_required(VERSION 3.21)

项目名称o3d_01, 编程语言C++

project(o3d_01 LANGUAGES CXX)

使用C++17

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

添加Open3D根目录路径到CMake的搜索路径

list(APPEND CMAKE_PREFIX_PATH “D:/Libs/open3d-devel-windows-amd64-0.17.0”)

find_package(Open3D REQUIRED)

创建可执行文件main并链接Open3D库

add_executable(main main.cpp)
target_link_libraries(main PRIVATE Open3D::Open3D)

由于下载的Open3D是动态库,需要将Open3D.dll拷贝到执行文件的目录下,以下自定义指令完成了这一工作。

add_custom_command(TARGET main POST_BUILD
COMMAND C M A K E C O M M A N D − E c o p y " {CMAKE_COMMAND} -E copy " CMAKECOMMANDEcopy"{Open3D_DIR}/…/bin/Open3D.dll"
$<TARGET_FILE_DIR:main>)

注意: 上面的Open3D_DIR需要设置为你将下载的Open3D所解压的目录,注意路径分隔符。
经过find_package(Open3D REQUIRED)后,Open3D_DIR被设置为/path-to-your-open3d/CMake。所以在自定义指令拷贝Open3D.dll时的相对路径设置为${Open3D_DIR}/../bin/Open3D.dll

3.2 main.cpp编写

在该文件中,编写一个基础的网格可视化用来测试环境配置是否正确。

#include <iostream>
#include <open3d/Open3D.h>
int main() {
    using namespace open3d::geometry;
    auto sphere = TriangleMesh::CreateSphere(1.0,4);
    sphere-&gt;ComputeVertexNormals();
    sphere-&gt;PaintUniformColor({1, 0.706, 0});

std::cout &lt;&lt; sphere-&gt;vertices_.size() &lt;&lt; " vertices\n";
std::cout&lt;&lt;sphere-&gt;triangles_.size()&lt;&lt;" triangles\n";

open3d::visualization::DrawGeometries({sphere});
}

4. 编译和运行

在当前项目的路径下,分别执行以下指令

mkdir build && cd build
cmake ..
cmake --build . --config Release

 
 

注意: 上述第三行指令中的,如果你下载的是Debug版本的Open3D,则需要替换成 --config Debug,如果是Release版本,并且想要进行调试,可以使用--config RelWithDebInfo

5. 运行结果

# 在build目录下运行main.exe
./Release/main.exe

 
 

执行上面的指令,如果能成功运行并显示,代表环境配置成功,可以继续进行后续的内容。
在这里插入图片描述

6. 完整代码下载

如果不想抄代码,或者想要获取直接获取源代码文件,可以通过下面的链接下载下载链接。那么代价是什么呢?


后续

Open3D C++系列教程 (二)第一个GUI窗口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值