Загрузка 3D моделей (Структура) C++ lib3ds

219
03 декабря 2017, 13:33

Загружаю 3D модель с помощью lib3ds С++, в учебных целях питаюсь в консоль пропечатать все мешы материалы, всё что есть, но не получаеться по причине непонимания структуры данных используемой для хранения. Список имен mesh выводит. В будущем буду рисовать эту модель в OpenGL 3. Спасибо.

#pragma comment (lib,"lib3ds.lib")
#include <lib3ds/file.h>
#include <lib3ds/camera.h>
#include <lib3ds/mesh.h>
#include <lib3ds/node.h>
#include <lib3ds/material.h>
#include <lib3ds/matrix.h>
#include <lib3ds/vector.h>
#include <lib3ds/light.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include<iostream>
#include<Windows.h>
using namespace std;
Lib3dsFile *file1;
void main()
{
    file1 = lib3ds_file_load("1.3ds");

    if (!file1) 
    {
    puts("3dsplayer: Error: Loading 3DS file failed.\n");
    exit(1);
    }


//if( !file1->nodes )
  {
        Lib3dsMesh *mesh;
        Lib3dsNode *node;
        for(mesh = file1->meshes; mesh != NULL; mesh = mesh->next)
        {
          node = lib3ds_node_new_object();
          strcpy(node->name, mesh->name);
          node->parent_id = LIB3DS_NO_PARENT;
          lib3ds_file_insert_node(file1, node);
          cout<<"name mesh:"<<node->name<<endl;

          //Lib3dsVector *Points =  mesh->pointL->pos;
           cout<<"size:"<<sizeof( mesh->pointL->pos)/sizeof(mesh->pointL->pos[0])<<endl;
          cout<<"point X:"<<mesh->pointL->pos[0]<<" Y: "<<mesh->pointL->pos[1]<<" Z: "<<mesh->pointL->pos[2]<<endl;
          cout<<"point X:"<<mesh->pointL->pos[4]<<" Y: "<<mesh->pointL->pos[5]<<" Z: "<<mesh->pointL->pos[6]<<endl;
           cout<<"point X:"<<mesh->pointL->pos[7]<<" Y: "<<mesh->pointL->pos[8]<<" Z: "<<mesh->pointL->pos[9]<<endl;
           cout<<"point X:"<<mesh->pointL->pos[10]<<" Y: "<<mesh->pointL->pos[11]<<" Z: "<<mesh->pointL->pos[12]<<endl;
           cout<<endl;
        }
    }
lib3ds_file_eval(file1,0.);

    cin.get();
}
READ ALSO
как добавить ссылку к проекту?

как добавить ссылку к проекту?

Пытаюсь использовать CUDA библиотеки от NVIDIA, все установилНужно к обычному проекту на c++ добавить ссылку на библиотеку из CUDA, но при добавлении...

288
Как написать цикл прохода по файлам?

Как написать цикл прохода по файлам?

Есть проект в котором содержаться ресурсы ( 2 папки с файлами) нужно сравнивать файлы обеих папокИмена у файлов разные, брать можно в любом...

204
кидать char в string [требует правки]

кидать char в string [требует правки]

возможно ли кидать в string поэлементно char, чтобы строка "обрастала" символами? Если да, то как?

188