{"id":132,"date":"2005-05-18T19:28:38","date_gmt":"2005-05-18T17:28:38","guid":{"rendered":""},"modified":"2005-05-18T19:28:38","modified_gmt":"2005-05-18T17:28:38","slug":"hola-mundo-en-opengl","status":"publish","type":"post","link":"https:\/\/nauj27.com\/blog\/?p=132","title":{"rendered":"Hola Mundo en OpenGL"},"content":{"rendered":"<p><img loading=\"lazy\" src=\"http:\/\/nauj27.com\/images\/uploads\/hola_mundogl.jpg\" border=\"0\" alt=\"image\" name=\"image\" width=\"250\" height=\"242\" class=\"fotoizda\" \/> No hace mucho <a href=\"http:\/\/nauj27.com\/comments.php?id=112_0_1_0_C\" title=\"habl\u00e9\">habl\u00e9<\/a> sobre un <i>Hola Mundo<\/i> en OpenGL. Poco a poco ir\u00e9 modificando e insertando m\u00e1s cosas propias, paredes, pasillos, objetos&#8230; Ahora es b\u00e1sicamente una copia un poco modificada de tutoriales que voy leyendo.<\/p>\n<p>En principio empec\u00e9 con los tutoriales en C. Todo iba muy sencillito hasta que me tropec\u00e9 con las texturas. Estoy usando la biblioteca de funciones <a href=\"http:\/\/www.google.com\/url?sa=U&#038;start=2&#038;q=http%3A\/\/www.opengl.org\/resources\/libraries\/glut.html&amp;ei=WFN2QtiCI8fqQYL4gcYH\" title=\"GLUT\">GLUT<\/a>. Para cargar las texturas en C hay que hacerlo en modo <i>raw<\/i>. Esto significa que hay que <b>saber leer<\/b> los archivos de imagen. En los tutoriales encontrados normalmente se usa el formato de imagen <a href=\"http:\/\/www.faqs.org\/faqs\/graphics\/fileformats-faq\/part3\/section-146.html\" title=\"TARGA\">TARGA<\/a>. Se leen los bytes de la cabecera, se obtiene el tama\u00f1o, el tipo de imagen, la resoluci\u00f3n y los bytes uno detr\u00e1s de otro.<\/p>\n<p>Pueden se im\u00e1genes en 24 o 32 bits, comprimidas o sin comprimir, con un orden u otro para la ordenaci\u00f3n de colores, etc.  Esto significa que o bien nos restringimos a un formato de archivo muy concreto para la carga de texturas o tendremos que aprenderlos todos y hacer un an\u00e1lisis de la imagen a la hora de cargarla que nos har\u00e1 perder mucho tiempo en cosas que no son la programaci\u00f3n OpenGL que nos interesa.<\/p>\n<p>M\u00e1s tarde por este y otros motivos, echando mano de los ejemplos de los <a href=\"http:\/\/www.faqs.org\/faqs\/graphics\/fileformats-faq\/part3\/section-146.html\" title=\"tutoriales de NeHe\">tutoriales de NeHe<\/a> que son muy buenos por cierto, encontr\u00e9 lo f\u00e1cil y c\u00f3mo que es en <a href=\"www.python.org\" title=\"Python\">Python<\/a> usando <a href=\"http:\/\/www.python.org\/pypi\/PIL\/1.1.5\" title=\"PIL\">PIL<\/a> [Python Image Library]. Entonces hice el cubo girando del tutorial (ver imagen) pero no pod\u00eda terminar aqu\u00ed todo.<\/p>\n<p>Por <strike>motivos laborales<\/strike> inter\u00e9s en el lenguage <b>Perl<\/b> porque nunca antes le he metido mano, quiero empezar a hacer algo. Adem\u00e1s, estoy pensando en implementar un sistema de mobling (publicaci\u00f3n en blog desde el m\u00f3vil) y Perl podr\u00eda ser una <b>buena opci\u00f3n<\/b>. Env\u00edo un correo desde el m\u00f3vil a una cuenta destinada solo para esto, y peri\u00f3dicamente (en el <b>cron<\/b>) reviso si hay alg\u00fan mensaje nuevo. Si hay un mensaje nuevo lo descargo, extraigo la imagen, el texto y el asunto, me identifico en el blog y lo publico.<\/p>\n<p>Bueno ahora mismo solo es una idea, pero la verdad es que abarca varios aspectos y sistemas distintos y me podr\u00eda venir bien para aprender un poco de Perl. Entonces es cuando pienso&#8230; \u00bfy por qu\u00e9 no aprovecho y empiezo con lo del OpenGL en Perl en lugar de en Python? En C no es lo mismo pero si es por bibliotecas de funciones algunillos (JPOL ;) me est\u00e1n haciendo ver que en Perl hay <a href=\"http:\/\/www.cpan.org\" title=\"una cantidad abrumadora\">una cantidad abrumadora<\/a>.<\/p>\n<p>En fin, muchas cosas en mente y poco tiempo para implementarlas, pero&#8230; \u00bfy lo bien que me lo paso?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>No hace mucho habl\u00e9 sobre un Hola Mundo en OpenGL. Poco a poco ir\u00e9 modificando e insertando m\u00e1s cosas propias, paredes, pasillos, objetos&#8230; Ahora es b\u00e1sicamente una copia un poco modificada de tutoriales que voy leyendo. En principio empec\u00e9 con los tutoriales en C. Todo iba muy sencillito hasta que me tropec\u00e9 con las texturas. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[],"tags":[],"_links":{"self":[{"href":"https:\/\/nauj27.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/132"}],"collection":[{"href":"https:\/\/nauj27.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nauj27.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nauj27.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nauj27.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=132"}],"version-history":[{"count":0,"href":"https:\/\/nauj27.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/132\/revisions"}],"wp:attachment":[{"href":"https:\/\/nauj27.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nauj27.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nauj27.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}