用VS2013打开,修改模型输入输出位置,以及控制输出模型精度,即可进行三维模型的体素化。修改的位置已经在代码中注释了
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-03-27 14:45 VoxelTest
目录 0 2019-03-27 14:40 VoxelTest.vs
目录 0 2019-03-27 14:40 VoxelTest.vsVoxelTest
目录 0 2019-03-27 14:40 VoxelTest.vsVoxelTestv14
文件 28672 2018-11-27 16:51 VoxelTest.vsVoxelTestv14.suo
目录 0 2019-03-27 14:45 VoxelTestVoxelTest
文件 7864320 2019-03-27 14:45 VoxelTestVoxelTest.sdf
文件 1309 2018-11-27 10:23 VoxelTestVoxelTest.sln
文件 25600 2019-03-27 14:45 VoxelTestVoxelTest.v12.suo
目录 0 2019-03-27 14:40 VoxelTestVoxelTestDebug
文件 2669299 2018-11-27 10:34 VoxelTestVoxelTestDebugmain.obj
文件 470016 2018-11-27 10:34 VoxelTestVoxelTestDebugvc140.idb
文件 888832 2018-11-27 10:34 VoxelTestVoxelTestDebugvc140.pdb
文件 5585 2018-11-27 10:34 VoxelTestVoxelTestDebugVoxelTest.log
目录 0 2019-03-27 14:40 VoxelTestVoxelTestDebugVoxelTest.tlog
文件 738 2018-11-27 10:34 VoxelTestVoxelTestDebugVoxelTest.tlogCL.command.1.tlog
文件 17810 2018-11-27 10:34 VoxelTestVoxelTestDebugVoxelTest.tlogCL.read.1.tlog
文件 644 2018-11-27 10:34 VoxelTestVoxelTestDebugVoxelTest.tlogCL.write.1.tlog
文件 1314 2018-11-27 10:34 VoxelTestVoxelTestDebugVoxelTest.tloglink.command.1.tlog
文件 3342 2018-11-27 10:34 VoxelTestVoxelTestDebugVoxelTest.tloglink.read.1.tlog
文件 622 2018-11-27 10:34 VoxelTestVoxelTestDebugVoxelTest.tloglink.write.1.tlog
文件 188 2018-11-27 10:34 VoxelTestVoxelTestDebugVoxelTest.tlogVoxelTest.lastbuildstate
文件 3567 2019-03-27 14:45 VoxelTestVoxelTestmain.cpp
文件 495213 2019-03-27 14:43 VoxelTestVoxelTestmesh_voxelized_res.obj
目录 0 2019-03-27 14:40 VoxelTestVoxelTestmodels
文件 45104062 2017-05-29 14:15 VoxelTestVoxelTestmodelsuilding.obj
文件 205917 2017-07-11 08:50 VoxelTestVoxelTestmodelsunny.obj
文件 663 2017-07-11 08:50 VoxelTestVoxelTestmodelscube.obj
文件 3466613 2017-07-11 08:50 VoxelTestVoxelTestmodelsdragon.obj
文件 580788 2018-11-26 21:42 VoxelTestVoxelTestmodelshuiya.obj
文件 248098 2017-07-11 08:50 VoxelTestVoxelTestmodelssuzanne.obj
............此处省略26个文件信息
#define VOXELIZER_DEBUG
#define VOXELIZER_IMPLEMENTATION
#include “voxelizer.h“
#define TINYOBJLOADER_IMPLEMENTATION
#include “tiny_obj_loader.h“
#include
#include
#include
#define TRIANGULATE
//#define POINT_CLOUD
int main(int argc char** argv) {
/*if (argc < 4) {
std::cout << “Usage: “ << std::endl;
std::cout << “ ./voxelizer file.obj resolution precision“ << std::endl;
return EXIT_FAILURE;
}*/
std::vector shapes;
std::vector materials;
std::string err;
bool ret = tinyobj::LoadObj(shapes materials err “models/teapot.obj“ NULL);//输入模型
if (!err.empty()) {
std::cerr << err << std::endl;
}
if (!ret) {
return EXIT_FAILURE;
}
std::cout << “shape_size:“ << shapes.size() << std::endl;
#ifdef TRIANGULATE
std::ofstream file(“mesh_voxelized_res.obj“); //输出的体素模型
#endif
#ifdef POINT_CLOUD
std::ofstream file(“mesh_voxelized_res.txt“);
#endif
size_t voffset = 0;
size_t noffset = 0;
for (size_t i = 0; i < shapes.size(); i++) {
std::cout << “shapes_index_“ << i<<“:“ ;
vx_mesh_t* mesh;
mesh = vx_mesh_alloc(shapes[i].mesh.positions.size() shapes[i].mesh.indices.size());
for (size_t f = 0; f < shapes[i].mesh.indices.size(); f++) {
mesh->indices[f] = shapes[i].mesh.indices[f];
}
for (size_t v = 0; v < shapes[i].mesh.positions.size() / 3; v++) {
mesh->vertices[v].x = shapes[i].mesh.positions[3 * v + 0];
mesh->vertices[v].y = shapes[i].mesh.positions[3 * v + 1];
mesh->vertices[v].z = shapes[i].mesh.positions[3 * v + 2];
}
float res = 10;
float precision = 10;
#ifdef TRIANGULATE
vx_mesh_t* result;
result = vx_voxelize(mesh res res res precision); //控制输出的体素模型精度
std::cout << “体素化完成,正在输出...“ << std::endl;
printf(“Number of vertices: %ld
“ static_cast(result->nvertices));
printf(“Number of indices: %ld
“ static_cast(result->nindices));
if (file.is_open()) {
file << “
“;
file << “o “ << i << “
“;
for (int j = 0; j < result->nvertices; ++j) {
file << “v “ << result->vertices[j].x << “ “
<< result->vertices[j].y << “ “
<< result->vertices[j].z << “
“;
}
for (int j = 0; j < result->nnormals; ++j) {
file << “vn “ << result->normals[j].x << “ “
<< result->normals[j].y << “ “
<< result->normals[j].z << “
“;
}
size_t max = 0;
for (int j = 0; j < result->nindices; j += 3) {
size_t i0 = voffset + result->indices[j + 0] + 1;
size_t i1 = voffset + result->indices[j + 1] + 1;
size_t i2 = voffset + result->indices[j + 2] + 1;
max = i0 > max ? i0 : max;
max = i1 > max ? i1 : max;
max = i2 > max ? i2 : max;
file << “f “;
file << i0 << “//“ << result->normalindices[j + 0] + noffset + 1 << “ “;
file << i1 << “//“ << result->normalindices[j + 1] + noffset + 1 << “ “;
file << i2 << “//“ << result->normalindices[j + 2] + noffset + 1 << “
“;
}
voffset += max;
noffset += 6;
}
vx_mesh_free(result);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-03-27 14:45 VoxelTest
目录 0 2019-03-27 14:40 VoxelTest.vs
目录 0 2019-03-27 14:40 VoxelTest.vsVoxelTest
目录 0 2019-03-27 14:40 VoxelTest.vsVoxelTestv14
文件 28672 2018-11-27 16:51 VoxelTest.vsVoxelTestv14.suo
目录 0 2019-03-27 14:45 VoxelTestVoxelTest
文件 7864320 2019-03-27 14:45 VoxelTestVoxelTest.sdf
文件 1309 2018-11-27 10:23 VoxelTestVoxelTest.sln
文件 25600 2019-03-27 14:45 VoxelTestVoxelTest.v12.suo
目录 0 2019-03-27 14:40 VoxelTestVoxelTestDebug
文件 2669299 2018-11-27 10:34 VoxelTestVoxelTestDebugmain.obj
文件 470016 2018-11-27 10:34 VoxelTestVoxelTestDebugvc140.idb
文件 888832 2018-11-27 10:34 VoxelTestVoxelTestDebugvc140.pdb
文件 5585 2018-11-27 10:34 VoxelTestVoxelTestDebugVoxelTest.log
目录 0 2019-03-27 14:40 VoxelTestVoxelTestDebugVoxelTest.tlog
文件 738 2018-11-27 10:34 VoxelTestVoxelTestDebugVoxelTest.tlogCL.command.1.tlog
文件 17810 2018-11-27 10:34 VoxelTestVoxelTestDebugVoxelTest.tlogCL.read.1.tlog
文件 644 2018-11-27 10:34 VoxelTestVoxelTestDebugVoxelTest.tlogCL.write.1.tlog
文件 1314 2018-11-27 10:34 VoxelTestVoxelTestDebugVoxelTest.tlogli
文件 3342 2018-11-27 10:34 VoxelTestVoxelTestDebugVoxelTest.tlogli
文件 622 2018-11-27 10:34 VoxelTestVoxelTestDebugVoxelTest.tlogli
文件 188 2018-11-27 10:34 VoxelTestVoxelTestDebugVoxelTest.tlogVoxelTest.lastbuildstate
文件 3567 2019-03-27 14:45 VoxelTestVoxelTestmain.cpp
文件 495213 2019-03-27 14:43 VoxelTestVoxelTestmesh_voxelized_res.obj
目录 0 2019-03-27 14:40 VoxelTestVoxelTestmodels
文件 45104062 2017-05-29 14:15 VoxelTestVoxelTestmodelsuilding.obj
文件 205917 2017-07-11 08:50 VoxelTestVoxelTestmodelsunny.obj
文件 663 2017-07-11 08:50 VoxelTestVoxelTestmodelscube.obj
文件 3466613 2017-07-11 08:50 VoxelTestVoxelTestmodelsdragon.obj
文件 580788 2018-11-26 21:42 VoxelTestVoxelTestmodelshuiya.obj
文件 248098 2017-07-11 08:50 VoxelTestVoxelTestmodelssuzanne.obj
............此处省略26个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)