| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
fofo33
Registrado: 15 Dic 2010 Mensajes: 4
| Publicado: 15/12/2010 5:07 pm | | | Título: Carga de archivos 3ds |
| Buenos días a todos 
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 
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
| Publicado: 17/12/2010 6:25 am | | | Título: |
| Una ayudita por favor, que tengo siete hijos...  |
| | Volver arriba | |  | fofo33
Registrado: 15 Dic 2010 Mensajes: 4
| Publicado: 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: 5853 Ubicación: Mexico
| Publicado: 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 _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
| | Volver arriba | |  | fofo33
Registrado: 15 Dic 2010 Mensajes: 4
| Publicado: 21/12/2010 11:21 am | | | Título: |
| Gracias. 
Tendré paciencia. |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |