antares.itmorelia.edu.mx/~jcolivar/courses/ag08a/ag_u1.ppt
http://www.frodrig.com/macedoniamagazine/opengl1.htm
libro de texto
http://www.scribd.com/doc/39029313/Libro-de-Texto-Para-La-Materia-de-Graficacion
lunes, 29 de agosto de 2011
viernes, 26 de agosto de 2011
Codigo de prueba
/*cubetex.c */
/* Rotating cube with texture mapping */
/* mouse buttons control direction of
/* rotation, keyboard allows start/top/quit */
/* E. Angel, Interactive Computer Graphics */
/* A Top-Down Approach with OpenGL, Third Edition */
/* Addison-Wesley Longman, 2003 */
#include <stdlib.h>
#include <GL/glut.h>
GLfloat planes[]= {-1.0, 0.0, 1.0, 0.0};
GLfloat planet[]= {0.0, -1.0, 0.0, 1.0};
GLfloat vertices[][3] = {{-1.0,-1.0,-1.0},{1.0,-1.0,-1.0},
{1.0,1.0,-1.0}, {-1.0,1.0,-1.0}, {-1.0,-1.0,1.0},
{1.0,-1.0,1.0}, {1.0,1.0,1.0}, {-1.0,1.0,1.0}};
GLfloat colors[][4] = {{0.0,0.0,0.0,0.5},{1.0,0.0,0.0,0.5},
{1.0,1.0,0.0,0.5}, {0.0,1.0,0.0,0.5}, {0.0,0.0,1.0,0.5},
{1.0,0.0,1.0,0.5}, {1.0,1.0,1.0,0.5}, {0.0,1.0,1.0,0.5}};
void polygon(int a, int b, int c , int d)
{
/* draw a polygon via list of vertices */
glBegin(GL_POLYGON);
glColor4fv(colors[a]);
glTexCoord2f(0.0,0.0);
glVertex3fv(vertices[a]);
glColor4fv(colors[b]);
glTexCoord2f(0.0,1.0);
glVertex3fv(vertices[b]);
glColor4fv(colors[c]);
glTexCoord2f(1.0,1.0);
glVertex3fv(vertices[c]);
glColor4fv(colors[d]);
glTexCoord2f(1.0,0.0);
glVertex3fv(vertices[d]);
glEnd();
}
void colorcube(void)
{
/* map vertices to faces */
polygon(0,3,2,1);
polygon(2,3,7,6);
polygon(0,4,7,3);
polygon(1,2,6,5);
polygon(4,5,6,7);
polygon(0,1,5,4);
}
static GLfloat theta[] = {0.0,0.0,0.0};
static GLint axis = 2;
void display(void)
{
/* display callback, clear frame buffer and z buffer,
rotate cube and draw, swap buffers */
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glRotatef(theta[0], 1.0, 0.0, 0.0);
glRotatef(theta[1], 0.0, 1.0, 0.0);
glRotatef(theta[2], 0.0, 0.0, 1.0);
colorcube();
glutSwapBuffers();
}
void spinCube()
{
/* Idle callback, spin cube 2 degrees about selected axis */
theta[axis] += 2.0;
if( theta[axis] > 360.0 ) theta[axis] -= 360.0;
glutPostRedisplay();
}
void mouse(int btn, int state, int x, int y)
{
/* mouse callback, selects an axis about which to rotate */
if(btn==GLUT_LEFT_BUTTON && state == GLUT_DOWN) axis = 0;
if(btn==GLUT_MIDDLE_BUTTON && state == GLUT_DOWN) axis = 1;
if(btn==GLUT_RIGHT_BUTTON && state == GLUT_DOWN) axis = 2;
}
void myReshape(int w, int h)
{
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if (w <= h)
glOrtho(-2.0, 2.0, -2.0 * (GLfloat) h / (GLfloat) w,
2.0 * (GLfloat) h / (GLfloat) w, -10.0, 10.0);
else
glOrtho(-2.0 * (GLfloat) w / (GLfloat) h,
2.0 * (GLfloat) w / (GLfloat) h, -2.0, 2.0, -10.0, 10.0);
glMatrixMode(GL_MODELVIEW);
}
void key(unsigned char k, int x, int y)
{
if(k == '1') glutIdleFunc(spinCube);
if(k == '2') glutIdleFunc(NULL);
if(k == 'q') exit(0);
}
void
main(int argc, char **argv)
{
GLubyte image[64][64][3];
int i, j, r, c;
for(i=0;i<64;i++)
{
for(j=0;j<64;j++)
{
c = ((((i&0x8)==0)^((j&0x8))==0))*255;
image[i][j][0]= (GLubyte) c;
image[i][j][1]= (GLubyte) c;
image[i][j][2]= (GLubyte) c;
}
}
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(500, 500);
glutCreateWindow("colorcube");
/* need both double buffering and z buffer */
glutReshapeFunc(myReshape);
glutDisplayFunc(display);
glutIdleFunc(spinCube);
glutMouseFunc(mouse);
glEnable(GL_DEPTH_TEST);
glEnable(GL_TEXTURE_2D);
glTexImage2D(GL_TEXTURE_2D,0,3,64,64,0,GL_RGB,GL_UNSIGNED_BYTE, image);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glutKeyboardFunc(key);
glClearColor(1.0,1.0,1.0,1.0);
glutMainLoop();
}
/* Rotating cube with texture mapping */
/* mouse buttons control direction of
/* rotation, keyboard allows start/top/quit */
/* E. Angel, Interactive Computer Graphics */
/* A Top-Down Approach with OpenGL, Third Edition */
/* Addison-Wesley Longman, 2003 */
#include <stdlib.h>
#include <GL/glut.h>
GLfloat planes[]= {-1.0, 0.0, 1.0, 0.0};
GLfloat planet[]= {0.0, -1.0, 0.0, 1.0};
GLfloat vertices[][3] = {{-1.0,-1.0,-1.0},{1.0,-1.0,-1.0},
{1.0,1.0,-1.0}, {-1.0,1.0,-1.0}, {-1.0,-1.0,1.0},
{1.0,-1.0,1.0}, {1.0,1.0,1.0}, {-1.0,1.0,1.0}};
GLfloat colors[][4] = {{0.0,0.0,0.0,0.5},{1.0,0.0,0.0,0.5},
{1.0,1.0,0.0,0.5}, {0.0,1.0,0.0,0.5}, {0.0,0.0,1.0,0.5},
{1.0,0.0,1.0,0.5}, {1.0,1.0,1.0,0.5}, {0.0,1.0,1.0,0.5}};
void polygon(int a, int b, int c , int d)
{
/* draw a polygon via list of vertices */
glBegin(GL_POLYGON);
glColor4fv(colors[a]);
glTexCoord2f(0.0,0.0);
glVertex3fv(vertices[a]);
glColor4fv(colors[b]);
glTexCoord2f(0.0,1.0);
glVertex3fv(vertices[b]);
glColor4fv(colors[c]);
glTexCoord2f(1.0,1.0);
glVertex3fv(vertices[c]);
glColor4fv(colors[d]);
glTexCoord2f(1.0,0.0);
glVertex3fv(vertices[d]);
glEnd();
}
void colorcube(void)
{
/* map vertices to faces */
polygon(0,3,2,1);
polygon(2,3,7,6);
polygon(0,4,7,3);
polygon(1,2,6,5);
polygon(4,5,6,7);
polygon(0,1,5,4);
}
static GLfloat theta[] = {0.0,0.0,0.0};
static GLint axis = 2;
void display(void)
{
/* display callback, clear frame buffer and z buffer,
rotate cube and draw, swap buffers */
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glRotatef(theta[0], 1.0, 0.0, 0.0);
glRotatef(theta[1], 0.0, 1.0, 0.0);
glRotatef(theta[2], 0.0, 0.0, 1.0);
colorcube();
glutSwapBuffers();
}
void spinCube()
{
/* Idle callback, spin cube 2 degrees about selected axis */
theta[axis] += 2.0;
if( theta[axis] > 360.0 ) theta[axis] -= 360.0;
glutPostRedisplay();
}
void mouse(int btn, int state, int x, int y)
{
/* mouse callback, selects an axis about which to rotate */
if(btn==GLUT_LEFT_BUTTON && state == GLUT_DOWN) axis = 0;
if(btn==GLUT_MIDDLE_BUTTON && state == GLUT_DOWN) axis = 1;
if(btn==GLUT_RIGHT_BUTTON && state == GLUT_DOWN) axis = 2;
}
void myReshape(int w, int h)
{
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if (w <= h)
glOrtho(-2.0, 2.0, -2.0 * (GLfloat) h / (GLfloat) w,
2.0 * (GLfloat) h / (GLfloat) w, -10.0, 10.0);
else
glOrtho(-2.0 * (GLfloat) w / (GLfloat) h,
2.0 * (GLfloat) w / (GLfloat) h, -2.0, 2.0, -10.0, 10.0);
glMatrixMode(GL_MODELVIEW);
}
void key(unsigned char k, int x, int y)
{
if(k == '1') glutIdleFunc(spinCube);
if(k == '2') glutIdleFunc(NULL);
if(k == 'q') exit(0);
}
void
main(int argc, char **argv)
{
GLubyte image[64][64][3];
int i, j, r, c;
for(i=0;i<64;i++)
{
for(j=0;j<64;j++)
{
c = ((((i&0x8)==0)^((j&0x8))==0))*255;
image[i][j][0]= (GLubyte) c;
image[i][j][1]= (GLubyte) c;
image[i][j][2]= (GLubyte) c;
}
}
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(500, 500);
glutCreateWindow("colorcube");
/* need both double buffering and z buffer */
glutReshapeFunc(myReshape);
glutDisplayFunc(display);
glutIdleFunc(spinCube);
glutMouseFunc(mouse);
glEnable(GL_DEPTH_TEST);
glEnable(GL_TEXTURE_2D);
glTexImage2D(GL_TEXTURE_2D,0,3,64,64,0,GL_RGB,GL_UNSIGNED_BYTE, image);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glutKeyboardFunc(key);
glClearColor(1.0,1.0,1.0,1.0);
glutMainLoop();
}
martes, 23 de agosto de 2011
Dispositivos de Hardware y Software para Graficos
Dispositivos
http://giga.cps.unizar.es/~spd/work/curso_hs/
pantallas lcd
http://www.xataka.com/hd/como-funciona-un-televisor-lcd
pantallas de plasma
http://www.profisica.cl/comofuncionan/como.php?id=13
aliasing
http://es.wikipedia.org/wiki/Aliasing
antialiasing
http://es.wikipedia.org/wiki/Antialiasing
http://giga.cps.unizar.es/~spd/work/curso_hs/
pantallas lcd
http://www.xataka.com/hd/como-funciona-un-televisor-lcd
pantallas de plasma
http://www.profisica.cl/comofuncionan/como.php?id=13
aliasing
http://es.wikipedia.org/wiki/Aliasing
antialiasing
http://es.wikipedia.org/wiki/Antialiasing
jueves, 18 de agosto de 2011
OpenGl
el siguiente enlace contiene la informacion sobre OpenGL
http://www.dccia.ua.es/dccia/inf/asignaturas/GC/Teoria/OpenGL.Introduccion.pdf
del siguiente enlace hacer un resumen cronologico de eventos relacionado con la historia sobre graficacion
http://es.scribd.com/doc/13642361/Introduccion-Computacion-Grafica
entrega del resumen en el blog para el lunes 22 de agosto
breve explicacion sobre opengl
http://worldspace.berlios.de/fase1/tut_1_0/index.html
ejemplo de programa con OpenGl
http://www.hola-mundo.net/index.php?/topic/481-ejemplo-con-opengl-en-visual-studio-2010-c/
utilizar open gl sin permiso de administrador
http://blackcrystal.wordpress.com/2009/04/01/opengl-y-visual-studio-visual-c-2/
configuracion visual studio C++ 2010 y opengl
http://es.scribd.com/doc/39175015/Setting-Up-Freeglut-and-GLTools-Libraries-Visual-Studio-2010
introduccion a opengl
http://glprogramming.com/red/
http://www.dccia.ua.es/dccia/inf/asignaturas/GC/Teoria/OpenGL.Introduccion.pdf
del siguiente enlace hacer un resumen cronologico de eventos relacionado con la historia sobre graficacion
http://es.scribd.com/doc/13642361/Introduccion-Computacion-Grafica
entrega del resumen en el blog para el lunes 22 de agosto
breve explicacion sobre opengl
http://worldspace.berlios.de/fase1/tut_1_0/index.html
ejemplo de programa con OpenGl
http://www.hola-mundo.net/index.php?/topic/481-ejemplo-con-opengl-en-visual-studio-2010-c/
utilizar open gl sin permiso de administrador
http://blackcrystal.wordpress.com/2009/04/01/opengl-y-visual-studio-visual-c-2/
configuracion visual studio C++ 2010 y opengl
http://es.scribd.com/doc/39175015/Setting-Up-Freeglut-and-GLTools-Libraries-Visual-Studio-2010
introduccion a opengl
http://glprogramming.com/red/
martes, 16 de agosto de 2011
Enlaces a blog Individual
Nombre Completo Enlace ablog individual / tarea 1
AGUILAR ESTALA CESAR OMAR http://tu-mama-eshombre-elregreso.blogspot.com
ALVAREZ ALVAREZ SELENE /graficacion12-1pm.blogspot.com
ARMENDARIZ SANCHEZ JESUS EDUARDO eduardo-graficacion.blogspot.com
BARRAZA GAMEROS LAURA graficandolaura.blogspot.com
BERNAL CANDELARIA SAMUEL IVAN itcj-graficacion.blogspot.com
CARDENAS FERNANDEZ JOSE DANIEL danielgraficacion.blogspot.com
CARREON RIVERA JORGE ANTONIO graficasbonitas.blogspot.com
CHAVEZ RAMOS DIANA dchavezgraficacion.blogspot.com
CHAVEZ RUIZ OMAR ADRIAN /tu-mama-eshombre.blogspot.com
GARCIA QUEZADA ELSA /graficacion-elsa.blogspot.com
GOMEZ CHAVEZ ARNULFO graficacion2011.blogspot.com
HERRERA ORTEGA MARLYTH marlyth-ortega.blogspot.com
JIMENEZ OCHOA MARIA LUCERO lucero-jimenez.blogspot.com
OLVERA GRANILLO CARLOS IVAN graficacion-carlosolvera.blogspot.com
ORONA RENDON CESAR graficacion08110935.blogspot.com
PARRA HERNANDEZ DIANA LOURDES graficaciondlph.blogspot.com
PEDRAZA MARTINEZ CARLOS graficacioncarlos.blogspot.com
RODRIGUEZ NIETO JOSE MANUEL graficacionp-jose.blogspot.com
SAUCEDO MARQUEZ ANGEL /tu-mama-eshombre-lavenganza.blogspot.com
HIPOLITO GONZALEZ SAUL SANTIAGO saul-graficacion.blogspot.com
Introducción a la graficación por computadora
Actividad 1.
Investigue los siguientes conceptos y publique en su blog los resultados, no olvide incluir las fuentes de información
1.Aplicaciones de graficos de computadora
2. Sistema de graficos
Procesador
Memoria
frame buffer
dispositivos de salida
dispositivos de entrada
3. disparidad binocular
infromacion monocular
revise el siguiente enlace
http://www.slideshare.net/AlonsoAlvarez/graficos-por-computadora-1
Investigue los siguientes conceptos y publique en su blog los resultados, no olvide incluir las fuentes de información
1.Aplicaciones de graficos de computadora
2. Sistema de graficos
Procesador
Memoria
frame buffer
dispositivos de salida
dispositivos de entrada
3. disparidad binocular
infromacion monocular
revise el siguiente enlace
http://www.slideshare.net/AlonsoAlvarez/graficos-por-computadora-1
lunes, 15 de agosto de 2011
Suscribirse a:
Entradas (Atom)