/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Carga de archivos 3ds

 
      Índice del Foro elrincondelc.com -> Gráficos
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
fofo33



Registrado: 15 Dic 2010
Mensajes: 4

MensajePublicado: 15/12/2010 5:07 pm
Título: Carga de archivos 3ds

Buenos días a todos Smile

Estoy intentando hacer un programa que cargue modelos .3ds i para hacer-lo utilizo el devc++.

La librería que empleo es la 3ds.h. Que se puede encontrar en el siguiente link:

http://www.gamedev.net/community/forums/topic.asp?topic_id=313126

El código que tengo es el siguiente:

Código:

#include <GL/glut.h>
#include <stdlib.h>
#include <windows.h>
#include "3ds/3ds.h"

void Display(void)
{
glClearColor(0.0,0.0,0.0,0.0);

glClear(GL_COLOR_BUFFER_BIT);


      " Scene3DS *scene = new Scene3DS("Beast.3ds");      
        std::vector<Mesh3DSObject> meshes = scene->Meshes();
        std::vector<Mesh3DSVertex> vertices = meshes[0];
        std::cout << "(" << vertices[0].x << ","
                        << vertices[0].y << ","
                        << vertices[0].z << ")\n";
        std::vector<Mesh3DSFace> faces = scene->Faces();
        Mesh3DSFace first_face = faces[0];
        Mesh3DSVertex a = vertices[first_face.a]
        Mesh3DSVertex b = vertices[first_face.b]
        Mesh3DSVertex c = vertices[first_face.c] "

   glEnd();

   glFlush();


}

void Reshape(int x, int y)
{
}

void KeyDown(unsigned char key, int x, int y)
{
}

void Idle(void)
{
    Display();
}

int main (int argc, char **argv)
{
      glutInit(&argc, argv);
      glutInitDisplayMode(GLUT_RGB);
      glutInitWindowPosition(150,130);
      glutInitWindowSize(1000,600);
      glutCreateWindow("Scene Loader");


      glutDisplayFunc(Display);     
     
      glutReshapeFunc(Reshape);
     
      glutKeyboardFunc(KeyDown);
     
      glutIdleFunc(Idle);
     
      glutMainLoop();
      return 0;
}

   




El código que se ha de cambiar es el que está entre comillas. No se utilizar la librería correctamente y por esto les pido ayuda a ver si alguien, de entre los expertos, me hecha un cable y conseguimos cargar algún modelo .3ds.

El error que me da al cargar es el siguiente.

Código:


Compilador: Default compiler
Building Makefile: "C:\Users\Patapom\Desktop\OpenGL\Proves\Programa\Makefile.win"
Executant  make...
make.exe -f "C:\Users\Patapom\Desktop\OpenGL\Proves\Programa\Makefile.win" all
g++.exe -c main.cpp -o main.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include"  -I"C:/Dev-Cpp/include/c++/3.4.2/backward"  -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32"  -I"C:/Dev-Cpp/include/c++/3.4.2"  -I"C:/Dev-Cpp/include"   

main.cpp: In function `void Display()':
main.cpp:17: error: stray '\160' in program
main.cpp:17: error: stray '\160' in program
main.cpp:17: error: stray '\160' in program

main.cpp:17: error: stray '\160' in program
main.cpp:17: error: stray '\160' in program
main.cpp:17: error: stray '\160' in program
main.cpp:18: error: stray '\160' in program
main.cpp:18: error: stray '\160' in program
main.cpp:18: error: stray '\160' in program
main.cpp:18: error: stray '\160' in program
main.cpp:18: error: stray '\160' in program
main.cpp:18: error: stray '\160' in program
main.cpp:18: error: stray '\160' in program
main.cpp:18: error: stray '\160' in program
main.cpp:19: error: stray '\160' in program
main.cpp:19: error: stray '\160' in program
main.cpp:19: error: stray '\160' in program
main.cpp:19: error: stray '\160' in program
main.cpp:19: error: stray '\160' in program

main.cpp:19: error: stray '\160' in program
main.cpp:19: error: stray '\160' in program
main.cpp:19: error: stray '\160' in program
main.cpp:19: error: conversion from `Mesh3DSObject' to non-scalar type `std::vector<Mesh3DSVertex, std::allocator<Mesh3DSVertex> >' requested
main.cpp:20: error: stray '\160' in program
main.cpp:20: error: stray '\160' in program

main.cpp:20: error: stray '\160' in program
main.cpp:20: error: stray '\160' in program
main.cpp:20: error: stray '\160' in program
main.cpp:20: error: stray '\160' in program
main.cpp:20: error: stray '\160' in program
main.cpp:20: error: stray '\160' in program
main.cpp:20: error: `cout' is not a member of `std'
main.cpp:21: error: stray '\160' in program

main.cpp:21: error: stray '\160' in program
main.cpp:21: error: stray '\160' in program
main.cpp:21: error: stray '\160' in program
main.cpp:21: error: stray '\160' in program
main.cpp:21: error: stray '\160' in program
main.cpp:21: error: stray '\160' in program
main.cpp:21: error: stray '\160' in program
main.cpp:21: error: stray '\160' in program
main.cpp:21: error: stray '\160' in program
main.cpp:21: error: stray '\160' in program
main.cpp:21: error: stray '\160' in program
main.cpp:21: error: stray '\160' in program
main.cpp:21: error: stray '\160' in program
main.cpp:21: error: stray '\160' in program
main.cpp:21: error: stray '\160' in program
main.cpp:21: error: stray '\160' in program

main.cpp:21: error: stray '\160' in program
main.cpp:21: error: stray '\160' in program
main.cpp:21: error: stray '\160' in program
main.cpp:21: error: stray '\160' in program
main.cpp:21: error: stray '\160' in program
main.cpp:21: error: stray '\160' in program
main.cpp:21: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program

main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:22: error: stray '\160' in program
main.cpp:23: error: stray '\160' in program

main.cpp:23: error: stray '\160' in program
main.cpp:23: error: stray '\160' in program
main.cpp:23: error: stray '\160' in program
main.cpp:23: error: stray '\160' in program
main.cpp:23: error: stray '\160' in program
main.cpp:23: error: stray '\160' in program
main.cpp:23: error: stray '\160' in program
main.cpp:23: error: 'class Scene3DS' has no member named 'Faces'
main.cpp:24: error: stray '\160' in program
main.cpp:24: error: stray '\160' in program
main.cpp:24: error: stray '\160' in program
main.cpp:24: error: stray '\160' in program
main.cpp:24: error: stray '\160' in program
main.cpp:24: error: stray '\160' in program
main.cpp:24: error: stray '\160' in program
main.cpp:24: error: stray '\160' in program
main.cpp:25: error: stray '\160' in program
main.cpp:25: error: stray '\160' in program
main.cpp:25: error: stray '\160' in program
main.cpp:25: error: stray '\160' in program
main.cpp:25: error: stray '\160' in program
main.cpp:25: error: stray '\160' in program
main.cpp:25: error: stray '\160' in program

main.cpp:25: error: stray '\160' in program
main.cpp:26: error: stray '\160' in program
main.cpp:26: error: stray '\160' in program
main.cpp:26: error: stray '\160' in program
main.cpp:26: error: stray '\160' in program
main.cpp:26: error: stray '\160' in program
main.cpp:26: error: stray '\160' in program
main.cpp:26: error: stray '\160' in program
main.cpp:26: error: stray '\160' in program
main.cpp:26: error: expected `,' or `;' before "Mesh3DSVertex"
main.cpp:27: error: stray '\160' in program
main.cpp:27: error: stray '\160' in program
main.cpp:27: error: stray '\160' in program
main.cpp:27: error: stray '\160' in program
main.cpp:27: error: stray '\160' in program
main.cpp:27: error: stray '\160' in program
main.cpp:27: error: stray '\160' in program

main.cpp:27: error: stray '\160' in program

make.exe: *** [main.o] Error 1

Execució finalitzada


Un profesor al preguntarle por el problema me ha respondido lo siguiente:

Respeto al error, es senzillo, estás haciendo una asignación que no puedes hacer. Cuando haces:

std::vector<Mesh3DSVertex> vertices = meshes[0];

lo que estás haciendo es intentar asignar la primera malla (la mesh[0]) a un vector de vértices. Desde el punto de vista de los gráficos, una mala es más que una lista de vértices, i des de la programación son clases diferentes. Por lo tanto, lo que tienes que hacer es extraer de la mesh la lista de vértices con la API adecuada de la clase Mesh3DSObject.



Bien pues esto es todo, espero no molestar demasiado. Lo he intentado, de veras, pero no encuentro la solución, seguramente a mi bajo nivel en C++. Voy a seguir insistiendo pero si alguien saber como debería de ser el código y me puede hachar una mano les estaré agradecido Smile

La verdad es que también tengo alguna duda sobre si he instalado correctamente la librería 3ds. Diría que sí.

Eso es todo por ahora. Gracias.
Volver arriba
fofo33



Registrado: 15 Dic 2010
Mensajes: 4

MensajePublicado: 17/12/2010 6:25 am
Título:

Una ayudita por favor, que tengo siete hijos... Laughing
Volver arriba
fofo33



Registrado: 15 Dic 2010
Mensajes: 4

MensajePublicado: 21/12/2010 7:12 am
Título:

En verdad nadie sabe de que hablo o es más una cuestión de interés y tiempo?
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 7517
Ubicación: Mexico

MensajePublicado: 21/12/2010 9:28 am
Título:

Es mas bien una cuestion doble: primero el numero de programadores de buen nivel en C++ en estos foros que manejan las bibliotecas que indicas son pocos (me parece que por lo menos hay uno pero no recuerdo su nombre).

La segunda es la epoca del año en que estamos: la mayoria de los usuarios andan muy ocupados (o mejor todavia, divirtiendose) con las "real life issues" propias de la temporada navideña (y vacaciones para los estudiantes).

Debes tener paciencia (y un poco de suerte).

Un saludo
_________________
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Volver arriba
fofo33



Registrado: 15 Dic 2010
Mensajes: 4

MensajePublicado: 21/12/2010 11:21 am
Título:

Gracias. Razz

Tendré paciencia.
Volver arriba
Requiem



Registrado: 11 Abr 2006
Mensajes: 706

MensajePublicado: 28/07/2011 11:57 am
Título:

Siento responder despues de tanto tiempo, pero no lo había visto....

Yo tb quiero ponerle 3ds a mi proyecto (si no te parece mal usaré tu link que parece interesante Very Happy ), pero por ahora no lo he puesto....

Ha de ser necesariamente 3ds?? no te serviria otro formato rollo md2?? lo digo por que si te interesa : http://lordpakus.blogspot.com/2011/06/gameengine-capitulo-8.html aquí tengo el cargador de md2 unido al proyecto y funciona correctamente... tal vez te sirva...

Suerte
Volver arriba
      Índice del Foro elrincondelc.com -> Gráficos
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com