• Viernes 19 de Abril de 2024, 06:03

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - Perla_kiko

Páginas: 1 2 [3]
51
OpenGL / Materiales
« en: Jueves 3 de Febrero de 2005, 18:51 »
Hola,

Ahora tengo un problema con los materiales...

Cargo desde un fichero ASE los materiales y lo guardo en una estructura

y hago el sguiente codigo...donde me equivoco pq se me todo blanco...

<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>XCODE </td></tr><tr><td id='XCODE'><!--exc1-->
void CGlView::Cargar_Ase()
{
    char Linea[150];
    CString Linea2,sx,sy,sz,aux;
    int indice,v,RMat;

    


    ifstream entrada("barco_basico_ajustes.ase");
    if(entrada)                                              
    {    
        while(entrada)
        {    
            entrada.getline(Linea,150);
            Linea2=Linea;
            if (Linea2.Find("*MESH {")==2)
            {
                for (v=1;v<=5;v++)
                {
                    entrada.getline(Linea,150);
                    Linea2=Linea;
                    Buscar_num_ver_cara(Linea2);
                }
                for (indice=0;indice<=NumLineas-1;indice++)
                {
                    Cargar_Vertices(Linea2,indice);
                    entrada.getline(Linea,150);
                    Linea2=Linea;
                }
                entrada.getline(Linea,150);
                Linea2=Linea;
                entrada.getline(Linea,150);
                Linea2=Linea;
                for (indice=0;indice<=NumCaras-1;indice++)
                {
                    Cargar_Caras(Linea2,indice);
                    entrada.getline(Linea,150);
                    Linea2=Linea;
                }
            }//fi mesh
            v=Linea2.Find("*MATERIAL_REF");
            if (v>0)
            {
            RMat=atoi(Linea2.Mid(v+13,3));
            Dibujar_vertices(RMat);
            }

        }
    }
}

void CGlView::Dibujar_vertices(int mat)
{
    int c,divi=50;
    glMaterialfv (GL_FRONT, GL_AMBIENT, VMaterial[mat].Ambiente);
    glMaterialfv (GL_FRONT, GL_DIFFUSE, VMaterial[mat].Difuso);
    glMaterialfv (GL_FRONT, GL_SPECULAR, VMaterial[mat].Specular);
    glMaterialf (GL_FRONT, GL_SHININESS, VMaterial[mat].Shine);
    glPushMatrix ();
for (c=0;c<=NumCaras-1;c++)
{
    glBegin(GL_TRIANGLES);
        glVertex3f(VVertice[VCaras[c].A].x/divi,VVertice[VCaras[c].A].y/divi,VVertice[VCaras[c].A].z/divi);
        glVertex3f(VVertice[VCaras[c].B].x/divi,VVertice[VCaras[c].B].y/divi,VVertice[VCaras[c].B].z/divi);
        glVertex3f(VVertice[VCaras[c].C].x/divi,VVertice[VCaras[c].C].y/divi,VVertice[VCaras[c].C].z/divi);
    glEnd();
}
glPopMatrix ();

    
};)
void CGlView::Cargar_Materiales()
{
    
    char Linea[150];
    CString Linea2,aux,sx,sy,sz;
    int v,NMat,n,seguir=1;
    ifstream entrada("barco_basico_ajustes.ase");
    if(entrada)                                              
    {    
        while(entrada)
        {    
            entrada.getline(Linea,150);
            Linea2=Linea;
            if (Linea2.Find("*MATERIAL_COUNT")==1)
            {
                v=Linea2.Find("*MATERIAL_COUNT");
                NMat=atoi(Linea2.Mid(v+16,3));
                for (n=0;n<=(NMat-1);n++)
                {
                    seguir=1;
                    while(seguir==1)
                    {
                        if (Linea2.Find("*MATERIAL_AMBIENT")==2)Cargar_Mat_Amb(Linea2,n);
                        if (Linea2.Find("*MATERIAL_DIFFUSE")==2)Cargar_Mat_Dif(Linea2,n);
                        if (Linea2.Find("*MATERIAL_SPECULAR")==2)Cargar_Mat_Spe(Linea2,n);
                        if (Linea2.Find("*MATERIAL_SHINE ")==2)
                        {
                            Cargar_Mat_shi(Linea2,n);
                            seguir=0;
                        }
                    entrada.getline(Linea,150);
                    Linea2=Linea;
                    }
                }
                entrada.getline(Linea,150);
            }
        entrada.getline(Linea,150);
        }
    }
}
int CGlView::DrawGLScene(GLvoid)                    // Here's Where We Do All The Drawing
{
    glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
    glMatrixMode (GL_MODELVIEW);
    glLoadIdentity ();
    glPushMatrix ( );
    glTranslatef(mx,my,mz);
    glRotatef(alpha,1.0f,0.0f,0.0f);
    glRotatef(beta,0.0f,0.0f,1.0f);
    glRotatef(r2,.0f,0.0f,1.0f);
    GLfloat light_ambient[] = { 0.75, 0.75, 0.75, 1.0 };
    GLfloat light_diffuse[] = { 1.0, 1.0, 1.0, 1.0 };
    GLfloat light_specular[] = { 1.0, 1.0, 1.0, 1.0 };
    GLfloat light_position[] = { 0.0, 0.0, 1.0, 0.0 };

    glLightfv (GL_LIGHT0, GL_AMBIENT, light_ambient);
    glLightfv (GL_LIGHT0, GL_DIFFUSE, light_diffuse);
    glLightfv (GL_LIGHT0, GL_SPECULAR, light_specular);
    glLightfv (GL_LIGHT0, GL_POSITION, light_position);
    
    
    glEnable (GL_LIGHT0);
      Cargar_Materiales();
    Cargar_Ase();
    SwapBuffers(m_hDC);
    return TRUE;                                        // Keep Going
}<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->

Ruben3d: Me he permitido dar formato al código, ya que estaba simplemente pegado sobre el mensaje.

52
Visual C++ / Problema Con Imagen De Fondo En Un Dialogo
« en: Martes 1 de Febrero de 2005, 11:41 »
Hola Tengo un problema..tengo una imagen de fondo en un dialogo en Visual c++, cuando la inserto tanto las cajas de texto como las etiquetas se me muestran correctamente, pero en cambio los combobox que tengo creados me los deja detras de la imagen. Yo primero he puesto todos los objetos (textos ,etc..) y despues al final la imagen.

Pq me ocure esto?

53
OpenGL / Error Funcion Glutmousefunc
« en: Lunes 24 de Enero de 2005, 16:45 »
hola tengo el siguiente codigo:

void CGlView::onMouse(int button, int state, int x, int y)
{
if((button== GLUT_LEFT_BUTTON) & (state== GLUT_DOWN))
{
   x0=x;y0=y;
}
}
y depues la llamada a :

glutMouseFunc(onMouse);

Cuando compilo me da el siguiente error alguien sabe pq?

error C2664: 'glutMouseFunc' : cannot convert parameter 1 from 'void (int,int,int,int)' to 'void (__cdecl *)(int,int,int,int)'
        None of the functions with this name in scope match  the target type

54
Crystal Reports / Manuel Cristal Report
« en: Viernes 12 de Noviembre de 2004, 15:00 »
Buenas a todos/as,
Espero que esten bien..estoy empezando en esto del Cristal Resports y me gustaria saber si alguien sabe de alguna pagina donde bajarse un manual, que explique como trabajar desde VB con crital reports. gracias

55
Visual C++ / Dialogo Con Opengl
« en: Jueves 26 de Agosto de 2004, 14:10 »
Buenas,

Necesito crear un dialogo donde el usuario introduze unos datos , este dialogo crea un fichero (hasta ahi no hay problema, eso ya esta hecho). Este mismo dialogo ejecuta un aplaicacion que devuelve un fichero con coordenadas estas coordenadas las debo de dibujar en un dibujo, q creo con OPENGL, hasta ahy ningun problema, pero lo que quiero es que la ventana de OPENGL no se me habra a parte si no que sea parte del dialogo principal
Me explico necesito saber como insertar en mi  dialogo un contro para opengl y como se trata las librerias opengl si lo hago desde un dialogo

gracias de antemano... :o

56
OpenGL / Crear Una Ventana De Opengl Dentro De Un Dialogo
« en: Martes 24 de Agosto de 2004, 12:57 »
Buenas,
Primero de todo saludar a todo el mundo,
Quiero realizar un dialogo donde el usuario me inserte unos valores, hasta ahay todo correcto,pero despues quiero que en el mismo dialogo aparezca un dibujo  hecho con OpenGL  a partir de esos valores, el problema esta enq ue no se como insertar el control de OpenGL al dialogo, tengo el codigo hecho de openGL y funciona correctamente ahora solo me faltaria que se visualizara dentro del dialogo y no en una ventana de comando.
cualquier aclaración me preguntais...

57
OpenGL / Imprimir Pantalla
« en: Lunes 5 de Julio de 2004, 13:07 »
Buenas, necesito imprimir desde código  lo dibujado en una pantalla de OpenGL, alguien me puede ayudar

Páginas: 1 2 [3]