Hola, ¿ay algun coder que sepa programacion en 3D con palib? Es que estoy creando una aplicacion y cuando la compilo me sale esrror. Les dejo aqui el codigo (son 123 lineas de codigo) de mi aplicacion. Haver si alguin me la puede revisar:
// Aquí es donde se pinta todo int DrawGLScene() { // Activa la matriz de modelos de escena glMatrixMode(GL_MODELVIEW); // Inicializa la matriz activa glLoadIdentity(); // Mueve 1.5 unidades a la izquierda y 6.0 hacia la pantalla glTranslatef(-1.5f,0.0f,-6.0f); // Gira el triángulo en el eje Y glRotatef(rtri,0.0f,1.0f,0.0f); // Formato de polígonos, establece alpha a 31 (desactivado // transparencias) y el modo de procesado de // superficies ocultas a none glPolyFmt(POLY_ALPHA(31) | POLY_CULL_NONE); // Dibuja triángulos glBegin(GL_TRIANGLES); glColor3f(1.0f,0.0f,0.0f); // Rojo glVertex3f( 0.0f, 1.0f, 0.0f); // Vértice superior (Frente) glColor3f(0.0f,1.0f,0.0f); // Verde glVertex3f(-1.0f,-1.0f, 1.0f); // Vértice inferior // izquierdo (Frente) glColor3f(0.0f,0.0f,1.0f); // Azul glVertex3f( 1.0f,-1.0f, 1.0f); // Vértice inferior derecho // (Frente) glColor3f(1.0f,0.0f,0.0f); // Rojo glVertex3f( 0.0f, 1.0f, 0.0f); // Vértice superior // (Derecha) glColor3f(0.0f,0.0f,1.0f); // Azul glVertex3f( 1.0f,-1.0f, 1.0f); // Vértice inferior // izquierdo (Derecha) glColor3f(0.0f,1.0f,0.0f); // Verde glVertex3f( 1.0f,-1.0f, -1.0f); // Vértice inferior derecho // (Derecha) glColor3f(1.0f,0.0f,0.0f); // Rojo glVertex3f( 0.0f, 1.0f, 0.0f); // Vértice superior (Atrás) glColor3f(0.0f,1.0f,0.0f); // Verde glVertex3f( 1.0f,-1.0f, -1.0f); // Vértice inferior // izquierdo (Atrás) glColor3f(0.0f,0.0f,1.0f); // Azul glVertex3f(-1.0f,-1.0f, -1.0f); // Vértice inferior derecho // (Atrás) glColor3f(1.0f,0.0f,0.0f); // Rojo glVertex3f( 0.0f, 1.0f, 0.0f); // Vértice superior // (Izquierda) glColor3f(0.0f,0.0f,1.0f); // Azul glVertex3f(-1.0f,-1.0f,-1.0f); // Vértice inferior // izquierdo (Izquierda) glColor3f(0.0f,1.0f,0.0f); // Verde glVertex3f(-1.0f,-1.0f, 1.0f); // Vértice inferior derecho // (Izquierda) // Fin Triángulo glEnd(); // Reinicia la actual matriz Modelview glLoadIdentity(); // Mueve 1.5 unidades a la derecha y 6.0 hacia la pantalla glTranslatef(1.5f,0.0f,-6.0f); // Gira el cuadrado en el eje X glRotatef(rquad,1.0f,1.0f,1.0f); // Dibuja un Quad glBegin(GL_QUADS); glColor3f(0.0f,1.0f,0.0f); // Verde glVertex3f( 1.0f, 1.0f,-1.0f); // Vértice superior derecho // (Arriba) glVertex3f(-1.0f, 1.0f,-1.0f); // Vértice superior // izquierdo (Arriba) glVertex3f(-1.0f, 1.0f, 1.0f); // Vértice inferior // izquierdo (Arriba) glVertex3f( 1.0f, 1.0f, 1.0f); // Vértice inferior derecho // (Arriba) glColor3f(1.0f,0.5f,0.0f); // Color naranja glVertex3f( 1.0f,-1.0f, 1.0f); // Vértice superior derecho // (Abajo) glVertex3f(-1.0f,-1.0f, 1.0f); // Vértice superior // izquierdo (Abajo) glVertex3f(-1.0f,-1.0f,-1.0f); // Vértice inferior // izquierdo (Abajo) glVertex3f( 1.0f,-1.0f,-1.0f); // Vértice inferior derecho // (Abajo) glColor3f(1.0f,0.0f,0.0f); // Rojo glVertex3f( 1.0f, 1.0f, 1.0f); // Vértice superior derecho // (Frente) glVertex3f(-1.0f, 1.0f, 1.0f); // Vértice superior // izquierdo (Frente) glVertex3f(-1.0f,-1.0f, 1.0f); // Vértice inferior // izquierdo (Frente) glVertex3f( 1.0f,-1.0f, 1.0f); // Vértice inferior derecho // (Frente) glColor3f(1.0f,1.0f,0.0f); // Amarillo glVertex3f( 1.0f,-1.0f,-1.0f); // Vértice superior derecho // (Atrás) glVertex3f(-1.0f,-1.0f,-1.0f); // Vértice superior // izquierdo (Atrás) glVertex3f(-1.0f, 1.0f,-1.0f); // Vértice inferior // izquierdo (Atrás) glVertex3f( 1.0f, 1.0f,-1.0f); // Vértice inferior derecho // (Atrás) glColor3f(0.0f,0.0f,1.0f); // Azul glVertex3f(-1.0f, 1.0f, 1.0f); // Vértice superior derecho // (Izquierda) glVertex3f(-1.0f, 1.0f,-1.0f); // Vértice superior // izquierdo (Izquierda) glVertex3f(-1.0f,-1.0f,-1.0f); // Vértice inferior // izquierdo (Izquierda) glVertex3f(-1.0f,-1.0f, 1.0f); // Vértice inferior derecho // (Izquierda) glColor3f(1.0f,0.0f,1.0f); // Violeta glVertex3f( 1.0f, 1.0f,-1.0f); // Vértice superior derecho // (Derecha) glVertex3f( 1.0f, 1.0f, 1.0f); // Vértice superior // izquierdo (Derecha) glVertex3f( 1.0f,-1.0f, 1.0f); // Vértice inferior // izquierdo (Derecha) glVertex3f( 1.0f,-1.0f,-1.0f); // Vértice inferior derecho // (Derecha) // Fin Quad glEnd(); // Aumenta la rotación variable para el triángulo rtri+=0.9f; // Decrementa la rotación variable para el triángulo rquad-=0.75f; return TRUE; }
Os pongo aqui el error que me sale:
main.c c:/devkitPro/proyectos/3Dbasic/source/main.c: In function 'DrawGLScene': c:/devkitPro/proyectos/3Dbasic/source/main.c:5: warning: implicit declaration of function 'glMatrixMode' c:/devkitPro/proyectos/3Dbasic/source/main.c:5: error: 'GL_MODELVIEW' undeclared (first use in this function) c:/devkitPro/proyectos/3Dbasic/source/main.c:5: error: (Each undeclared identifier is reported only once c:/devkitPro/proyectos/3Dbasic/source/main.c:5: error: for each function it appears in.) c:/devkitPro/proyectos/3Dbasic/source/main.c:7: warning: implicit declaration of function 'glLoadIdentity' c:/devkitPro/proyectos/3Dbasic/source/main.c:9: warning: implicit declaration of function 'glTranslatef' c:/devkitPro/proyectos/3Dbasic/source/main.c:11: warning: implicit declaration of function 'glRotatef' c:/devkitPro/proyectos/3Dbasic/source/main.c:11: error: 'rtri' undeclared (first use in this function) c:/devkitPro/proyectos/3Dbasic/source/main.c:15: warning: implicit declaration of function 'glPolyFmt' c:/devkitPro/proyectos/3Dbasic/source/main.c:15: warning: implicit declaration of function 'POLY_ALPHA' c:/devkitPro/proyectos/3Dbasic/source/main.c:15: error: 'POLY_CULL_NONE' undeclared (first use in this function) c:/devkitPro/proyectos/3Dbasic/source/main.c:17: warning: implicit declaration of function 'glBegin' c:/devkitPro/proyectos/3Dbasic/source/main.c:17: error: 'GL_TRIANGLES' undeclared (first use in this function) c:/devkitPro/proyectos/3Dbasic/source/main.c:18: warning: implicit declaration of function 'glColor3f' c:/devkitPro/proyectos/3Dbasic/source/main.c:19: warning: implicit declaration of function 'glVertex3f' c:/devkitPro/proyectos/3Dbasic/source/main.c:53: warning: implicit declaration of function 'glEnd' c:/devkitPro/proyectos/3Dbasic/source/main.c:59: error: 'rquad' undeclared (first use in this function) c:/devkitPro/proyectos/3Dbasic/source/main.c:61: error: 'GL_QUADS' undeclared (first use in this function) c:/devkitPro/proyectos/3Dbasic/source/main.c:122: error: 'TRUE' undeclared (first use in this function) c:/devkitPro/proyectos/3Dbasic/source/main.c:123: warning: control reaches end of non-void function make[1]: *** [main.o] Error 1 make: *** [build] Error 2
Por favor, si ahy alguien en scenebeta con conocimientos de 3D que me ayude
I like:
pos parece ser que la cosa va mejorando
aora solo me sale este error:
make[1]: *** No rule to make target `c:/devkitPro/proyectos/3Dbasic/source/main.c', needed by `main.o'. Stop.
make: *** [build] Error 2
olo queda esto por resolber y la piramide 3D ya será visible en la pantalla de DS. Gracias a todos lo que me haveis ayudado.
Gracias, adios.
I like:
por cierto
para ayudar un poco os dejo aqui el error en castellano:
«uso (primera RTRI 'no declarado en esta función)
(Cada identificador no declarado se reporta sólo una vez
para cada función que aparece pulgadas)
«uso (primera rquad 'no declarado en esta función)
I like:
No uses el traductor del
No uses el traductor del google XDDD.
Yo por lo que se, ese error ocurre cuando has escrito mal una funcion o no has incluido la libreria que lo usa. En casi de que sea el primero basta con mirar la linea donde estan y corregirlo.
Mi creacciónes particulares:
http://www.scenebeta.com/noticia/la-serpiente
http://www.scenebeta.com/node/22535
Ya pero en este
caso no se donde está el error por eso use el traductor de Goolge
Creo que teniais razon
aora el error que me sale es mas pequeño:
main.c
c:/devkitPro/libnds/include/nds/arm9/3Dbasic/source/main.c: In function 'DrawGLScene':
c:/devkitPro/libnds/include/nds/arm9/3Dbasic/source/main.c:12: error: 'rtri' undeclared (first use in this function)
c:/devkitPro/libnds/include/nds/arm9/3Dbasic/source/main.c:12: error: (Each undeclared identifier is reported only once
c:/devkitPro/libnds/include/nds/arm9/3Dbasic/source/main.c:12: error: for each function it appears in.)
c:/devkitPro/libnds/include/nds/arm9/3Dbasic/source/main.c:60: error: 'rquad' undeclared (first use in this function)
make[1]: *** [main.o] Error 1
make: *** [build] Error 2
Si alguno save como solucionar lo que queda, por favor que no se corte y que me ayude.
I like:
Yo habia usado la opengl
Yo habia usado la opengl para pc hace tiempo (un par de cubos girando...). Por los errores que te da creo que tendrias que añadir la libreria videoGL, en ~\devkitPro\libnds\include\nds\arm9, donde estan definidas GL_TRIANGLES, GL_QUADS.... Haber si asi te funciona...
Visita mi blog. Zenit + 5 will win
ok gracias
Lo de las #incloudes lo estoy revisando.
Lo de la libreria pos que puede ser buena idea pero el problema es que en que carpeta las incluyo.
Gracias, adios.
I like:
Además creo que return
Además creo que return TRUE; debería ser return GL_TRUE;
Buenas
Antes de nada, te aviso que no tengo ni idea de OpenGl ni de 3D. Sin embargo, por la estructura del error, me da que te has dejado alguna libreria sin incluir. Revisa los
#include
de tu proyecto.Salu2
Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderás trucos para resolver tus dudas antes.