draco 解压

news/2025/1/1 12:40:04/

参照google源码中的示例draco_decoder,draco_encoder基本大概可以了解到Draco的使用逻辑:

#include <core/decoder_buffer.h>
#include <io/mesh_io.h>#include <fstream>
#include <iostream>using namespace draco;
using namespace std;int main() {string filePath = "D:/1.bin";ifstream infile(filePath, ios::binary);infile.seekg(0, std::ios::end);size_t data_size = infile.tellg();infile.seekg(0, std::ios::beg);vector<char> data(data_size, 0);infile.read(data.data(), data_size);DecoderBuffer buffer;buffer.Init(data.data(), data_size);//解压缩std::unique_ptr<draco::PointCloud> pc;auto type_statusor = draco::Decoder::GetEncodedGeometryType(&buffer);if (!type_statusor.ok()) {return 1;}//解析数据const draco::EncodedGeometryType geom_type = type_statusor.value();if (geom_type == draco::TRIANGULAR_MESH) {draco::Decoder decoder;auto statusor = decoder.DecodeMeshFromBuffer(&buffer);if (!statusor.ok()) {return 1;}std::unique_ptr<draco::Mesh> mesh = std::move(statusor).value();if (mesh) {const int pos_att_id =mesh->GetNamedAttributeId(GeometryAttribute::POSITION);//解析顶点属性for (PointIndex v(0); v < mesh->num_points(); ++v) {const auto *const pos_att = mesh->attribute(pos_att_id);const uint8_t *pos = pos_att->GetAddress(pos_att->mapped_index(v));int64_t length = pos_att->byte_stride();float temp[3];memcpy(temp, pos, length);printf("%f,%f,%f\t", temp[0], temp[1], temp[2]);}//解析顶点索引for (FaceIndex f(0); f < mesh->num_faces(); ++f) {printf("%d,%d,%d\t", mesh->face(f)[0].value(), mesh->face(f)[1].value(),mesh->face(f)[2].value());}}}
}


http://www.ppmy.cn/news/879986.html

相关文章

draco3D轻量化技术在Unity3D中应用

draco3D轻量化技术在Unity3D中应用 之前完成了draco3D对glb模型轻量化的处理工作&#xff0c;并完成了正常的加载。先进行draco3D在U3D中的应用。 方法一&#xff1a;将.obj模型压缩成.drc、.bytes类型再做加载。使用工具地址&#xff1a;https://github.com/google/draco.下…

Draco节点安装

Draco节点安装安装文档 Draco节点支持的操作系统 ubuntu16.04以上,centos7以上;4月30号起,将支持window系统及Linux更多版本;将来会支持更多硬件。带宽配置越高,贡献值越大,挖矿奖励越多。 Draco节点下载链接 百度云链接: https://pan.baidu.com/s/18-TJuH2YucMqiw1…

Draco嵌入式AI开发板使用手册V0.1.1

教学资源&#xff1a; K210入门教学&#xff08;基于Draco天龙座开发板&#xff09; 1. 硬件资源介绍 Draco嵌入式AI开发板&#xff0c;由AI模块和外设底板构成。开发板集成了摄像头、LCD屏幕、麦克风和WIFI模块等丰富外设&#xff0c;且板载拓展口与树莓派兼容。利用Type-C…

谷歌draco

前不久&#xff0c;谷歌开源的Draco关于点云的编码与压缩的源码&#xff0c;Draco 由谷歌 Chrome 媒体团队设计&#xff0c;旨在大幅加速 3D 数据的编码、传输和解码。因为研发团队的 Chrome 背景&#xff0c;这个开源算法的首要应用对象是浏览器。但既然谷歌把它开源&#xff…

threejs中引入draco压缩后的模型

threejs中引入draco压缩后的模型 ## draco是谷歌出的一款模型压缩工具,可将gltf格式的模型进行进一步压缩提高页面加载速的一种方法,方便大家下载, 这是码云的地址https://gitee.com/zmj66666/draco.git 一、通过Draco进行压缩 #全局安装 npm install -g gltf-pipeline #压…

K210 Draco AI环境的搭建(1)

在这里我们使用的是Python3.7 以上&#xff0c; Miniconda&#xff0c; Jupyter notebook&#xff0c; Tensorflow 等 开发环境搭建的AI环境。 硬件环境&#xff1a; PC 机 Pentium 处理器双核 2GHz 以上&#xff0c;内存 4GB 以上。 操作系统&#xff1a; Windows10 64 位及…

论K21O Draco开发板的概论

对于这次的中国大学生计算机设计大赛物联网&#xff0c;非常有幸能拿到这一块非常不错的开发板。 从外观来看就总体上非常不错&#xff0c;Draco是RT-Thread团队专门为嵌入式AI教育及科研用途设计的一款开发板&#xff0c;基于RISC-V架构的K210芯片&#xff0c;配备算力高达1TO…

windows和linux下编译draco

在windows下使用cmake工具编译Google draco源码生成对应的解决方案。便于在VS开发工具中进行开发&#xff0c;以及生成代码库文件和可执行文件。 在linux使用cmake工具编译Google draco源码生成对应的draco.lib库文件和draco_decoder.out、draco_encoder.out可执行文件。 执行…