Hi,
versuche mich im Moment, an nem Objekt Loader.
Leider bekomme ich folgende Fehlermeldung:
"Fehler 11 error LNK1107: Ungültige oder beschädigte Datei: Lesen bei 0x18C nicht möglich. C:\Users\Luki89\Documents\Digitale Medien\Projekts\Programming\VisualStudios\ObjectLoader\ObjectLoader\cube.obj 1 1 ObjectLoader"
Die Wahrscheinlichkeit, dass die Datei tatsächlich beschädigt ist, halte ich für relativ gering.
Habe auch versucht, verschiedene Dateien einzulesen, jedoch erhalte ich immer die gleiche Fehlermeldung.
Mit Google und Co komm ich leider auch nicht vorran :/
Hoffe einer von euch weiß Rat.
Meine Projektmappe findet ihr hier:
http://dl.dropbox.com/u/47169014/ObjectLoader.rar
*Edit Code Ausschnit hinzugefügt
Schonmal vielen Dank im Vorraus
versuche mich im Moment, an nem Objekt Loader.
Leider bekomme ich folgende Fehlermeldung:
"Fehler 11 error LNK1107: Ungültige oder beschädigte Datei: Lesen bei 0x18C nicht möglich. C:\Users\Luki89\Documents\Digitale Medien\Projekts\Programming\VisualStudios\ObjectLoader\ObjectLoader\cube.obj 1 1 ObjectLoader"
Die Wahrscheinlichkeit, dass die Datei tatsächlich beschädigt ist, halte ich für relativ gering.
Habe auch versucht, verschiedene Dateien einzulesen, jedoch erhalte ich immer die gleiche Fehlermeldung.
Mit Google und Co komm ich leider auch nicht vorran :/
Hoffe einer von euch weiß Rat.
Meine Projektmappe findet ihr hier:
http://dl.dropbox.com/u/47169014/ObjectLoader.rar
*Edit Code Ausschnit hinzugefügt
Code:
////////////////////////////////////////////////////////////////////////
// Projekt : Aufgabe 2.1-2.5: Datum: 16.04.2012 //
// Autor : Lukas Sauer //
// //
////////////////////////////////////////////////////////////////////////
#include <windows.h>
#include <stdlib.h>
#include <glut.h>
#include <stdio.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <cstdlib>
#include <vector>
#include <string>
#include <algorithm>
#include <fstream>
#include <cstdio>
#include <iostream>
struct coordinate{
float x, y, z;
coordinate(float a, float b, float c) : x(a), y(b), z(c) {};
};
struct face{
int facenum;
bool four;
int faces[4];
face(int facen, int f1, int f2, int f3) : facenum(facen){
faces[0]=f1;
faces[1]=f2;
faces[2]=f3;
four=false;
}
face(int facen, int f1, int f2, int f3, int f4) : facenum(facen){
faces[0]=f1;
faces[1]=f2;
faces[2]=f3;
faces[3]=f4;
four=true;
}
};
float angle = 0.0;
int loadObject(const char* filename)
{
std::vector<std::string*> coord;
std::vector<coordinate*> vertex;
std::vector<face*> faces;
std::vector<coordinate*> normals;
std::ifstream in(filename);
if(!in.is_open())
{
std::cout << "Not open" << std::endl;
return -1;
}
char buf[256];
while(!in.eof())
{
in.getline(buf, 256);
coord.push_back(new std::string(buf));
}
for(int i = 0; i < coord.size(); i++)
{
if((*coord[i])[0]=='#')
continue;
else if((*coord[i])[0] =='v' && (*coord[i])[1] == ' ' )
{
float tmpx, tmpy, tmpz;
sscanf(coord[i]->c_str(), "v %f %f %f",&tmpx, &tmpy, &tmpz);
vertex.push_back(new coordinate(tmpx, tmpy, tmpz));
}
else if((*coord[i])[0] =='v' && (*coord[i])[1] =='n' )
{
float tmpx, tmpy, tmpz;
sscanf(coord[i]->c_str(), "vn %f %f %f",&tmpx, &tmpy, &tmpz);
normals.push_back(new coordinate(tmpx, tmpy, tmpz));
}else if((*coord[i])[0]=='f')
{
int a, b, c, d, e;
if(count(coord[i]->begin(), coord[i]->end(),' ') ==4)
{
sscanf(coord[i]->c_str(), "f %d//%d %d//%d %d//%d %d//%d",&a, &b, &c, &b, &d, &b, &e, &b);
faces.push_back(new face(b, a, c, d, e));
}else
{
sscanf(coord[i]->c_str(), "f %d//%d %d//%d %d//%d",&a, &b, &c, &b, &d, &b);
faces.push_back(new face(b, a, c, d));
}
/*
if(count(coord[i]->begin(), coord[i]->end(),' ') ==4)
{
sscanf(coord[i]->c_str(), "f %d %d %d %d %d %d %d %d",&a, &b, &c, &b, &d, &b, &e, &b);
faces.push_back(new face(b, a, c, d, e));
}else
{
sscanf(coord[i]->c_str(), "f %d %d %d %d %d %d",&a, &b, &c, &b, &d, &b);
faces.push_back(new face(b, a, c, d));
}
*/
}
}
//draw
int num;
num = glGenLists(1);
glNewList(num, GL_COMPILE);
for(int i = 0; i < faces.size(); i++)
{
if(faces[i]->four)
{
glBegin(GL_QUADS);
glNormal3f(normals[faces[i]->facenum-1]->x,
normals[faces[i]->facenum-1]->y,
normals[faces[i]->facenum-1]->z);
glVertex3f(vertex[faces[i]->faces[0]-1]->x,
vertex[faces[i]->faces[0]-1]->y,
vertex[faces[i]->faces[0]-1]->z);
glVertex3f(vertex[faces[i]->faces[1]-1]->x,
vertex[faces[i]->faces[1]-1]->y,
vertex[faces[i]->faces[1]-1]->z);
glVertex3f(vertex[faces[i]->faces[2]-1]->x,
vertex[faces[i]->faces[2]-1]->y,
vertex[faces[i]->faces[2]-1]->z);
glVertex3f(vertex[faces[i]->faces[3]-1]->x,
vertex[faces[i]->faces[3]-1]->y,
vertex[faces[i]->faces[3]-1]->z);
glEnd();
}else{
glBegin(GL_TRIANGLES);
glNormal3f(normals[faces[i]->facenum-1]->x,
normals[faces[i]->facenum-1]->y,
normals[faces[i]->facenum-1]->z);
glVertex3f(vertex[faces[i]->faces[0]-1]->x,
vertex[faces[i]->faces[0]-1]->y,
vertex[faces[i]->faces[0]-1]->z);
glVertex3f(vertex[faces[i]->faces[1]-1]->x,
vertex[faces[i]->faces[1]-1]->y,
vertex[faces[i]->faces[1]-1]->z);
glVertex3f(vertex[faces[i]->faces[2]-1]->x,
vertex[faces[i]->faces[2]-1]->y,
vertex[faces[i]->faces[2]-1]->z);
glEnd();
}
}
glEndList();
for(int i=0; i<coord.size();i++)
delete coord[i];
for(int i=0; i<faces.size(); i++)
delete faces[i];
for(int i=0; i<normals.size();i++)
delete normals[i];
for(int i=0; i<vertex.size(); i++)
delete vertex[i];
return num;
}
int cube;
void init(void)
{
glClearColor (0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45,640.0/480.0,1.0,500.0);
glMatrixMode(GL_MODELVIEW);
glEnable(GL_DEPTH_TEST);
cube = loadObject("C:\Benutzer\Luki89\Desktop\test.obj");
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer
glLoadIdentity();
glTranslatef(0.0,0.0,-5.0);
glRotatef(angle, 1.0, 1.0, 1.0);
glCallList(cube);
}
void reshape (int w, int h)
{
glViewport (0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
glFrustum (-1.0, 1.0, -1.0, 1.0, 1.5, 20.0);
glMatrixMode (GL_MODELVIEW);
}
void keyboard(unsigned char key, int x, int y)
{
switch (key) {
case 27:
exit(0);
break;
}
}
void idle( void )
{
glutPostRedisplay();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_DOUBLE| GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize (500, 500);
glutInitWindowPosition (100, 100);
glutCreateWindow (argv[0]);
init ();
glutDisplayFunc(display);
glutIdleFunc( idle );
glutReshapeFunc(reshape);
glutKeyboardFunc(keyboard);
glutMainLoop();
return 0;
}
Schonmal vielen Dank im Vorraus
Zuletzt bearbeitet: