Files
ViewDesignEngine/docs/tutorial/01-quickstart.md
T

87 lines
2.1 KiB
Markdown
Raw Normal View History

2026-07-24 12:42:49 +00:00
# 快速开始
5 分钟从零到第一个 GLB 模型。
---
## 安装
```bash
git clone https://github.com/your-org/ViewDesignEngine.git
cd ViewDesignEngine
mkdir build && cd build
cmake .. -DBUILD_EXAMPLES=ON
cmake --build . -j$(nproc)
```
## 第一个 SDF 形状
创建文件 `hello_vde.cpp`
```cpp
#include <vde/sdf/sdf_primitives.h>
#include <vde/sdf/sdf_operations.h>
#include <vde/sdf/sdf_to_mesh.h>
#include <vde/mesh/marching_cubes.h>
#include <vde/mesh/halfedge_mesh.h>
#include <vde/foundation/io_gltf.h>
#include <iostream>
using namespace vde::core;
using namespace vde::sdf;
using namespace vde::mesh;
using namespace vde::foundation;
int main() {
// 1. 定义 SDF 函数
auto shape = [](double x, double y, double z) -> double {
Point3D p(x, y, z);
double d_sphere = sphere(p, 1.2);
double d_box = box(p, Point3D(1.5, 1.5, 0.5));
// 平滑并集 (k=0.3 控制融合程度)
return op_smooth_union(d_sphere, d_box, 0.3);
};
// 2. Marching Cubes → 三角形网格
Point3D bmin(-2.5, -2.5, -2.5);
Point3D bmax( 2.5, 2.5, 2.5);
auto mc = marching_cubes(shape, 0.0, bmin, bmax, 64);
// 3. 构建半边网格
HalfedgeMesh mesh;
mesh.build_from_triangles(mc.vertices, mc.triangles);
// 4. 导出 GLB
GltfOptions opts;
opts.binary = true;
opts.include_normals = true;
write_gltf("hello_vde.glb", mesh, opts);
std::cout << "Done! Open hello_vde.glb in viewer/index.html\n";
return 0;
}
```
编译运行:
```bash
g++ -std=c++17 -I../include hello_vde.cpp -L. -lvde -o hello_vde
./hello_vde
```
## 导出 GLB
GLBglTF Binary)可直接在以下工具中打开:
- 本项目自带的 `viewer/index.html`(拖放即可)
- BlenderFile → Import → glTF 2.0
- 在线工具:gltf-viewer.donmccurdy.com
- Windows/macOS 自带 3D Viewer
## 下一步
- [SDF 隐式建模教程](02-sdf-modeling.md) —— 学习更多图元与操作
- [B-Rep 工业建模教程](03-brep-modeling.md) —— 精确边界表示建模
- [API 参考](../API-REFERENCE.md) —— 完整 API 文档