foutje!! maar waar?

Status
Niet open voor verdere reacties.

Dinghe

Nieuwe gebruiker
Lid geworden
2 jan 2007
Berichten
3
Hallo iedereen!!
Dit is hier mijn eerste post op dit forum en ik heb meteen al een vraagje.

ik ben nu openGL aan het leren, en ik ga eerst een programatje schrijven zodat ik mijn model die gemaakt heb in 3DS max kan gebruiken in openGL.

dit is de code:
Code:
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

char Line[120];
int line = 20;
int i;
int space = 0;
int main(){
	ifstream input ("model0.ase");
	ofstream output("model.txt");

	output<< "glBegin(GL_TRIANGLES);\n";

	do{
		input.getline(Line,110);
		if ((Line[9] == (char)'V') &&(Line[14] == (char)'X')){
			output<< "  glVertex3f( ";
   			while (i < 100){
				line++;
				if ((Line[line] == (char)'0') | (Line[line] == (char)'1') | (Line[line] == (char)'2') | (Line[line] == (char)'3')
	    			| (Line[line] == (char)'4') | (Line[line] == (char)'5') | (Line[line] == (char)'6') | (Line[line] == (char)'7')
	    			| (Line[line] == (char)'8') | (Line[line] == (char)'9') | (Line[line] == (char)'-') | (Line[line] == (char)'.')){
					output<< Line[line];
				}
    			else{
					if (!(space == 2)){
						output<<"f, ";
					}
					else{
						output<<"f );\n";
						space = 0;
					}
					space++;
				}
   			}
   			i = 0;
   			line = 20;
		}
	}
	while (!input.eof());
	
	cin.get();
}

nu wil hij het proggrama wel compilen maar als ik het start komt er een foutmelding op:confused:

Weet er iemand wat ik fout heb gedaan?
 
van openGL weet ik byzonder weinig maar van c++ toch al iets. Ik denk dat je in die while-loop wil testen of je een van de geldige tekens hebt. in C++ is de operator voor OF || dus een dubbele streep ipv een enkele...

--Johan
 
Bedankt voor te antwoorden, kheb nu 2 streepjes ipv een enkele maar het programa blijft nog crashen.
zou het kunnen dat het niet toegelaten is op een while loop in een while loop te doen draaien?

EDIT: ik vergat i++; er in te schrijven dus bleef hij de while loop herhalen totdat er niet genoeg geheugen meer is.
Denk ek:confused:
 
Laatst bewerkt:
Bedankt voor te antwoorden, kheb nu 2 streepjes ipv een enkele maar het programa blijft nog crashen.
zou het kunnen dat het niet toegelaten is op een while loop in een while loop te doen draaien?

je mag zoveel while loops inelkaar bouwen als je wilt
 
Hm, heb je inmiddels line++ in de while loop weggehaald (vervangen door i++).
Tenminste, dat lijkt me de bedoeling.

En welke vaudmelding krijg je? Wie weet helpt dat.
 
de vraag is niet waar...
maar waar niet ... ?


is dit je hele prog?
om te opengl'en heb je wel je libary's nodig.....
#include <gl\gl.h>
envetueel ook glu en glaux...
#include <gl\glu.h>
#include <gl\glaux.h>
zult ook de libs zelf moet linken
opengl32.lib glu32.lib glaux.lib
of met pragma comment in de code zetten

anders kun je niks

en dan 3DS????

das een moeilijk formaat en er zijn maar weinig goeie loaders van beschikbaar, begin met milkshape zou ik zeggen....
simpel weg streamen en triangles tekenen gaat echt niet lukken.....3ds heeft zoveel meer informatie dan slecht een paar vertices...

daarnaast.
in je code heb je maar 1 opengl statement staan

glBegin ( GL_TRIANGLES);
maar geen
glEnd ();

en je gebruikt output<< .....
dit is enkel informatie weergeven, maar het gaat niks tekenen.....

heb je je opengl opgezet ???
glViewport ( 0, 0, width, height );
glMatrixMode ( GL_PROJECTION );
glLoadIdentity ( );
SetPerspective ( 45.0f, float(width)/float(height), 0.1f, 100.0f );
glMatrixMode ( GL_MODELVIEW );
glLoadIdentity ( );

om mee te beginnnen.....

je hebt een device context nodig, een render context, en nog t een en ander om OPENGL op te zetten.
als het werkt, moet je niet vergeten je buffers te blijven swappen, anders zie je zowieso niks...


dusch.... begin ant begin zouk zeggen...

en wat betreft de stream an sich, je zult nog boven in je do body moeten checken op een eof.
EN je laad chars in in je glVertex3f, geen getallen.... gebruik iets van atof, of ga floats lezen. de 3f staat voor 3 floats....
en idd, i++ zou ervoor zorgen dat het geen infinite loop wordt...

En geef idd svp de specifieke foutmeldingen...
 
Laatst bewerkt:
Bedankt voor alle antwoorden, ondertussen heb ik al een deel van het programma dat werkt.
ik moet juist nog de normals toevoegen.

@Don GL: het programma op zichzelf is geen openGL programma, maar het is een programma om de models die ik gemaakt heb in 3DS max te converteren naar een openGL vertexmodel.

maar eignlijk weet ik nog niet zoveel van openGL. Weet er soms iemand een goede site waar je alles van aan het begin kan leren van openGL?
 
Laatst bewerkt:
dat is dus wel een programma....
wat je nu doet is een text bestand maken met de geconverteerde vertex info in 1 loop....
zoals ik al zei, 3ds is niet het eerste beste formaat.... er komt meer bij kijken

voor beginnend opengl'en

nehe.gamedev.net
en zowieso gamedev.net voor al je (game)programmeer vragen

volg al zijn lesjes en je bent aardig op weg. Let alleen niet op zijn windowing codes...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan