Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

OpenGL ładowanie plików obj : indexy

Ostatnio zmodyfikowano 2011-03-02 17:09
Autor Wiadomość
Łukasz123
Temat założony przez niniejszego użytkownika
OpenGL ładowanie plików obj : indexy
» 2011-03-02 17:09:20
Witam,
piszę sobie loader obj'ów i mam problem z łaczeniem wierzchołków w wielokąty kombinowałem ale nic nie wymyśliłem bo wychodzi że w pliku  po 'f' może być masa indeksów,i nie moge nic wykombinować na te sleshe w pliku przy indexach ):. Ma ktoś pomysł.
Tu to co narazie wykodziłem :

C/C++
#include <sstream> 
#include <fstream>
using namespace std;
class VOModel
{
   
protected:
   
    std::string buffer;
    std::string tmp;
    float v1;
    float v2;
    float v3;
    std::string tblv[ 3 ];
   
   
   
    struct Vertex
    {
        float xyz[ 3 ];
    };
public:
    Vertex object[ 10000 ];
    void LoadOBJ( char * fn )
    {
        int iloscv = 0;
       
        std::ifstream in( fn );
        while( !in.eof() )
        {
            std::getline( in, buffer );
            std::istringstream line( buffer );
            std::string ch = buffer.substr( 0, 2 );
           
           
            if( ch == "v " )
            {
                line >> tmp >> tblv[ 0 ] >> tblv[ 1 ] >> tblv[ 2 ];
                v1 = atof( tblv[ 0 ].c_str() );
                v2 = atof( tblv[ 1 ].c_str() );
                v3 = atof( tblv[ 2 ].c_str() );
                iloscv++;
                object[ iloscv - 1 ].xyz[ 0 ] = v1;
                object[ iloscv - 1 ].xyz[ 1 ] = v2;
                object[ iloscv - 1 ].xyz[ 2 ] = v3;
            } } }
    //load end
   
   
};
//Render:
void DrawModelOBJ( VOModel v )
{
    glInterleavedArrays( GL_V3F, 0, v.object );
   
    glDrawArrays( GL_LINES, 0, 10000 );
}

to tylko prowizorka gdzie mam ,że może być max.10000 vertexów
P-28751
« 1 »
  Strona 1 z 1