Hola, resulta que, para intentar renderizar un modelo .OBJ en la ,
tengo este codigo, el cual obtiene la información numérica de los
vértices, que coje del buffer, y lo transforma a float con atof();
Este es el modelo OBJ que quiero sacarle información:
Lo que quiero hacer es que, al principio en algunas lineas pone una v, pues quiero sacarle los 3 valores que tiene a continuación, lo hago con este code:
Code:El archivo OBJ está cargado en su buffer, MODELO.obj_buffer[lineas][numero_de_letras_de_cada_linea];
Pues en un for intento obtener los valores con las variables que están descritas en el code.
¿El resultado? Es capaz de leer sólo el vértice X, los vértices Y y Z dan un valor de 0.000000
---------------------------------------------------------------------------------------------------------
Siento haber soltado ese rollo, espero que puedan ayudarme, si no entienden algo de lo que he dicho diganmelo
Salu2!
~Actualmente estudiando Ingeniería de las Tecnologías de la Telecomunicación en la Escuela de Ingenieros~
Un par de cosas
Para empezar, ten en cuenta que si los valores están separados por más de un espacio, o por un tabulador en lugar de un espacio, no te va a funcionar. Es posible que sea por esto por lo que no te funciona
Además, te faltaría poner el caracter '\0' al final de temp para que se sepa donde acaba la cadena
Si estás usando C++, hay una forma mucho más cómoda de hacer esto: usando istringstream. Si defines un istringstream ss (OBJ_MODELO.obj_buffer[i]); Puedes hacer cosas como ss>>c; if (c=='v'){ss>>x>>y>>z} donde x, y, z serían floats, por lo que no tendrías que usar atof.
Sino, si solo programas en C, también hay funciones para separar las palabras, como strtok, pero no es tán simple como en C++.
Saludos.
Dennis Ritchie. Padre de C y cocreador de UNIX.
R.I.P.
Funciona!
Gracias! He seguido tus consejos y ahora funciona!
No me ha hecho falta poner el \0 al final de la cadena, el error era que al parecer pasaba algo raro en los bucles y no leía el valor donde tocaba...
~Actualmente estudiando Ingeniería de las Tecnologías de la Telecomunicación en la Escuela de Ingenieros~