{"id":48,"date":"2022-03-23T22:08:49","date_gmt":"2022-03-23T22:08:49","guid":{"rendered":"https:\/\/wordpress.ft.unicamp.br\/magic\/conceitos-iniciais\/"},"modified":"2022-03-23T22:08:49","modified_gmt":"2022-03-23T22:08:49","slug":"conceitos-iniciais","status":"publish","type":"page","link":"https:\/\/wordpress.ft.unicamp.br\/magic\/conceitos-iniciais\/","title":{"rendered":"Conceitos iniciais"},"content":{"rendered":"<p>&#013;<\/p>\n<div class=\"NAVHEADER\">&#013;<\/p>\n<table cellspacing=\"0\" cellpadding=\"0\" width=\"100%\" border=\"0\">&#013;<\/p>\n<tbody>&#013;<\/p>\n<tr>&#013;<\/p>\n<th align=\"middle\" colspan=\"3\">Introdu\u00e7\u00e3o \u00e0 computa\u00e7\u00e3o gr\u00e1fica com &#013;<br \/>\nOpenGL<\/th>\n<\/tr>\n<p>&#013;<\/p>\n<tr>&#013;<\/p>\n<td valign=\"bottom\" align=\"left\" width=\"10%\"><a href=\"introducao.html\">Prev<\/a><\/td>\n<p>&#013;<\/p>\n<td valign=\"bottom\" align=\"middle\" width=\"80%\" \/>&#013;<\/p>\n<td valign=\"bottom\" align=\"right\" width=\"10%\"><a href=\"estrutura-programa.html\">Next<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&#013;<\/p>\n<hr align=\"left\" width=\"100%\" \/>&#013;\n<\/div>\n<p>&#013;<\/p>\n<div class=\"CHAPTER\">&#013;<\/p>\n<h1><a name=\"CONCEITOS-INICIAIS\">Cap\u00edtulo 1. Conceitos iniciais<\/a><\/h1>\n<p>&#013;<\/p>\n<div class=\"TOC\">&#013;<\/p>\n<dl>&#013;<\/p>\n<dt><b>\u00cdndice<\/b>&#013;<\/p>\n<dt>1.1. <a href=\"conceitos-iniciais.html#SOBRE-OPENGL\">O &#013;<br \/>\n  que \u00e9 OpenGL<\/a>&#013;<\/p>\n<dt>1.2. <a href=\"estrutura-programa.html\">Estrutura b\u00e1sica de um programa<\/a>&#013;<\/p>\n<dt>1.3. <a href=\"compilando-programas.html\">Compilando &#013;<br \/>\n  programas que utilizam OpenGL-Linux<\/a>&#013;<\/p>\n<dt>1.4. <a href=\"compilando-programas-dev.html\">Compilando programas que utilizam OpenGL &#8211; Windows (Dev-C++)&#013;<br \/>\n<\/a>&#013;\n<\/dt>\n<\/dt>\n<\/dt>\n<\/dt>\n<\/dt>\n<\/dl>\n<\/div>\n<p>&#013;<\/p>\n<div class=\"SECT1\">&#013;<\/p>\n<h1 class=\"SECT1\"><a name=\"SOBRE-OPENGL\">1.1. O que \u00e9 OpenGL<\/a><\/h1>\n<p>&#013;<\/p>\n<p>OpenGL \u00e9 uma interface de <i class=\"FOREIGNPHRASE\">software<\/i> para &#013;<br \/>\ndispositivos de <i class=\"FOREIGNPHRASE\">hardware<\/i>. \u00c9 uma biblioteca gr\u00e1fica de &#013;<br \/>\nmodelagem e exibi\u00e7\u00e3o tridimensional, bastante r\u00e1pida e port\u00e1vel para v\u00e1rios &#013;<br \/>\nsistemas operacionais. Seus recursos permitem ao usu\u00e1rio criar objetos gr\u00e1ficos &#013;<br \/>\ncom qualidade pr\u00f3xima \u00e0 de um <i class=\"FOREIGNPHRASE\">raytracer<\/i>, de modo mais &#013;<br \/>\nr\u00e1pido que este \u00faltimo, al\u00e9m de incluir recursos avan\u00e7ados de anima\u00e7\u00e3o, &#013;<br \/>\ntratamento de imagens e texturas.<\/p>\n<p>&#013;<\/p>\n<p>A biblioteca OpenGL (<i class=\"FOREIGNPHRASE\">Open Graphics Library<\/i>) foi &#013;<br \/>\nintroduzida em 1992 pela Silicon Graphics (<a href=\"http:\/\/www.sgi.com\/\" target=\"_top\" rel=\"noopener\">http:\/\/www.sgi.com\/<\/a>), no intuito de conceber uma API (Interface &#013;<br \/>\nde Programa\u00e7\u00e3o de Aplica\u00e7\u00e3o) gr\u00e1fica independente de dispositivos de exibi\u00e7\u00e3o. &#013;<br \/>\nCom isto, seria estabelecida uma ponte entre o processo de modelagem geom\u00e9trica &#013;<br \/>\nde objetos, situadas em um n\u00edvel de abstra\u00e7\u00e3o mais elevado, e as rotinas de &#013;<br \/>\nexibi\u00e7\u00e3o e de processamento de imagens implementadas em dispositivos (hardware) &#013;<br \/>\ne sistemas operacionais espec\u00edficos. A fun\u00e7\u00e3o utilizada pelo OpenGL para &#013;<br \/>\ndesenhar um ponto na tela, por exemplo, possui o mesmo nome e par\u00e2metros em &#013;<br \/>\ntodos os sistemas operacionais nos quais OpenGL foi implementada, e produz o &#013;<br \/>\nmesmo efeito de exibi\u00e7\u00e3o em cada um destes sistemas. Atualmente, um cons\u00f3rcio &#013;<br \/>\nindependente \u00e9 quem administra as especifica\u00e7\u00f5es do OpenGL, chamado de  &#013;<br \/>\n<i>Architecture Review Board <\/i>(ARB). <\/p>\n<p>&#013;<\/p>\n<p>Diversos jogos, aplica\u00e7\u00f5es cient\u00edficas e comerciais tem utilizado OpenGL como &#013;<br \/>\nferramenta de apresenta\u00e7\u00e3o de recursos visuais, principalmente com a ado\u00e7\u00e3o &#013;<br \/>\ndeste padr\u00e3o por parte dos fabricantes de placas de v\u00eddeo destinadas aos &#013;<br \/>\nconsumidores dom\u00e9sticos. \u00c9 poss\u00edvel encontrar &#013;<br \/>\nna Internet diversos <i class=\"FOREIGNPHRASE\">sites<\/i> que tratam sobre OpenGL; o &#013;<br \/>\nmais popular \u00e9 a sua p\u00e1gina oficial: <a href=\"http:\/\/www.opengl.org\/\" target=\"_top\" rel=\"noopener\">http:\/\/www.opengl.org\/<\/a>. Neste endere\u00e7o encontram-se dispon\u00edveis &#013;<br \/>\ndiversos artigos e <i class=\"FOREIGNPHRASE\">links<\/i> sobre o assunto, f\u00f3runs de &#013;<br \/>\ndiscuss\u00e3o, informa\u00e7\u00f5es sobre a evolu\u00e7\u00e3o desse padr\u00e3o, al\u00e9m de uma s\u00e9rie de &#013;<br \/>\nprogramas utilit\u00e1rios.<\/p>\n<p>&#013;<\/p>\n<p>&#013;<\/p>\n<p>Todas as rotinas do OpenGL s\u00e3o implementadas em C, tornando f\u00e1cil sua &#013;<br \/>\nutiliza\u00e7\u00e3o em qualquer programa escrito em C ou C++.<\/p>\n<p>&#013;<\/p>\n<p>Entre os recursos gr\u00e1ficos dispon\u00edveis pelo OpenGL, podem ser destacados os &#013;<br \/>\nseguintes:<\/p>\n<p>&#013;<\/p>\n<p \/>&#013;<\/p>\n<ul>&#013;<\/p>\n<li>&#013;\n<p>Modos de desenho de pontos;<\/p>\n<p>&#013;\n  <\/li>\n<li>&#013;\n<p>Ajuste de largura de linhas;<\/p>\n<p>&#013;\n  <\/li>\n<li>&#013;\n<p>Aplica\u00e7\u00e3o de transpar\u00eancia ;<\/p>\n<p>&#013;\n  <\/li>\n<li>&#013;\n<p>Ativa\u00e7\u00e3o\/desativa\u00e7\u00e3o de serrilhamento (<i class=\"FOREIGNPHRASE\">aliasing<\/i>);<\/p>\n<p>&#013;\n  <\/li>\n<li>&#013;\n<p>Mapeamento de superf\u00edcies com textura;<\/p>\n<p>&#013;\n  <\/li>\n<li>&#013;\n<p>Sele\u00e7\u00e3o de janela de desenho;<\/p>\n<p>&#013;\n  <\/li>\n<li>&#013;\n<p>Manipula\u00e7\u00e3o de fontes\/tipos de ilumina\u00e7\u00e3o e sombreamento;<\/p>\n<p>&#013;\n  <\/li>\n<li>&#013;\n<p>Transforma\u00e7\u00e3o de sistemas de coordenadas.<\/p>\n<p>&#013;\n  <\/li>\n<li>&#013;\n<p>Transforma\u00e7\u00f5es em perspectiva<\/p>\n<p>&#013;\n  <\/li>\n<li>&#013;\n<p>Combina\u00e7\u00e3o de imagens (<i class=\"FOREIGNPHRASE\">blending<\/i>)<\/p>\n<\/li>\n<\/ul>\n<p>&#013;<\/p>\n<p>Diversos desenvolvedores de software possuem suas pr\u00f3prias implementa\u00e7\u00f5es do &#013;<br \/>\nOpenGL. Entre as implementa\u00e7\u00f5es mais populares, destacam-se aquelas providas &#013;<br \/>\npela Microsoft, a biblioteca compartilhada din\u00e2mica <tt class=\"FILENAME\">opengl32.dll<\/tt>, pela pr\u00f3pria SGI, <tt class=\"FILENAME\">opengl.dll<\/tt>, e o pacote Mesa3D (<a href=\"http:\/\/www.mesa3d.org\/\" target=\"_top\" rel=\"noopener\">http:\/\/www.mesa3d.org\/<\/a>).<\/p>\n<p>&#013;<br \/>\n&#013;<\/p>\n<p>As implementa\u00e7\u00f5es do OpenGL geralmente prov\u00eaem bibliotecas auxiliares, tais &#013;<br \/>\ncomo a GLU (<i class=\"FOREIGNPHRASE\">OpenGL Utility library<\/i>), utilizada para &#013;<br \/>\nrealizar tarefas comuns, tais como manipula\u00e7\u00e3o de matrizes, gera\u00e7\u00e3o de &#013;<br \/>\nsuperf\u00edcies e constru\u00e7\u00e3o de objetos por composi\u00e7\u00e3o, e a <i class=\"FOREIGNPHRASE\">OpenGL Utility Toolkit<\/i> (GLUT), uma biblioteca que &#013;<br \/>\npermite criar janelas, menus, manipular eventos, entre outras coisas, &#013;<br \/>\nindependentemente do sistema operacional utilizado. Aplica\u00e7\u00f5es escritas em &#013;<br \/>\nOpenGL\/GLUT podem ser compiladas em Windows ou Unix, sem necessidade de &#013;<br \/>\naltera\u00e7\u00f5es em seus c\u00f3digos.<\/p>\n<p>&#013;<br \/>\n&#013;\n<\/p><\/div>\n<\/div>\n<p>&#013;<\/p>\n<div class=\"NAVFOOTER\">&#013;<\/p>\n<hr align=\"left\" width=\"100%\" \/>&#013;<br \/>\n&#013;<\/p>\n<table cellspacing=\"0\" cellpadding=\"0\" width=\"100%\" border=\"0\">&#013;<\/p>\n<tbody>&#013;<\/p>\n<tr>&#013;<\/p>\n<td valign=\"top\" align=\"left\" width=\"33%\"><a href=\"introducao.html\">Prev<\/a><\/td>\n<p>&#013;<\/p>\n<td valign=\"top\" align=\"middle\" width=\"34%\"><a href=\"index2006.html\">Home<\/a><\/td>\n<p>&#013;<\/p>\n<td valign=\"top\" align=\"right\" width=\"33%\"><a href=\"estrutura-programa.html\">Next<\/a><\/td>\n<\/tr>\n<p>&#013;<\/p>\n<tr>&#013;<\/p>\n<td valign=\"top\" align=\"left\" width=\"33%\">Introdu\u00e7\u00e3o<\/td>\n<p>&#013;<\/p>\n<td valign=\"top\" align=\"middle\" width=\"34%\">\u00a0<\/td>\n<p>&#013;<\/p>\n<td valign=\"top\" align=\"right\" width=\"33%\">Estrutura de um programa<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>&#013; &#013; &#013; &#013; &#013; Introdu\u00e7\u00e3o \u00e0 computa\u00e7\u00e3o gr\u00e1fica com &#013; OpenGL &#013; &#013; Prev &#013; &#013; Next &#013; &#013; &#013; &#013; Cap\u00edtulo 1. Conceitos iniciais &#013; &#013; &#013; \u00cdndice&#013; 1.1. O &#013; que \u00e9 OpenGL&#013; 1.2. Estrutura b\u00e1sica de um programa&#013; 1.3. Compilando &#013; programas que utilizam OpenGL-Linux&#013; 1.4. Compilando programas que utilizam OpenGL &hellip; <a href=\"https:\/\/wordpress.ft.unicamp.br\/magic\/conceitos-iniciais\/\" class=\"more-link\">Continuar lendo <span class=\"screen-reader-text\">Conceitos iniciais<\/span><\/a><\/p>\n","protected":false},"author":48,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-48","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Conceitos iniciais - Marco Antonio Garcia de Carvalho, PhD<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wordpress.ft.unicamp.br\/magic\/conceitos-iniciais\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Conceitos iniciais - Marco Antonio Garcia de Carvalho, PhD\" \/>\n<meta property=\"og:description\" content=\"&#013; &#013; &#013; &#013; &#013; Introdu\u00e7\u00e3o \u00e0 computa\u00e7\u00e3o gr\u00e1fica com &#013; OpenGL &#013; &#013; Prev &#013; &#013; Next &#013; &#013; &#013; &#013; Cap\u00edtulo 1. Conceitos iniciais &#013; &#013; &#013; \u00cdndice&#013; 1.1. O &#013; que \u00e9 OpenGL&#013; 1.2. Estrutura b\u00e1sica de um programa&#013; 1.3. Compilando &#013; programas que utilizam OpenGL-Linux&#013; 1.4. Compilando programas que utilizam OpenGL &hellip; Continuar lendo Conceitos iniciais\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wordpress.ft.unicamp.br\/magic\/conceitos-iniciais\/\" \/>\n<meta property=\"og:site_name\" content=\"Marco Antonio Garcia de Carvalho, PhD\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/magic\\\/conceitos-iniciais\\\/\",\"url\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/magic\\\/conceitos-iniciais\\\/\",\"name\":\"Conceitos iniciais - Marco Antonio Garcia de Carvalho, PhD\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/magic\\\/#website\"},\"datePublished\":\"2022-03-23T22:08:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/magic\\\/conceitos-iniciais\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/magic\\\/conceitos-iniciais\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/magic\\\/conceitos-iniciais\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/magic\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Conceitos iniciais\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/magic\\\/#website\",\"url\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/magic\\\/\",\"name\":\"Marco Antonio Garcia de Carvalho, PhD\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/magic\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Conceitos iniciais - Marco Antonio Garcia de Carvalho, PhD","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wordpress.ft.unicamp.br\/magic\/conceitos-iniciais\/","og_locale":"pt_BR","og_type":"article","og_title":"Conceitos iniciais - Marco Antonio Garcia de Carvalho, PhD","og_description":"&#013; &#013; &#013; &#013; &#013; Introdu\u00e7\u00e3o \u00e0 computa\u00e7\u00e3o gr\u00e1fica com &#013; OpenGL &#013; &#013; Prev &#013; &#013; Next &#013; &#013; &#013; &#013; Cap\u00edtulo 1. Conceitos iniciais &#013; &#013; &#013; \u00cdndice&#013; 1.1. O &#013; que \u00e9 OpenGL&#013; 1.2. Estrutura b\u00e1sica de um programa&#013; 1.3. Compilando &#013; programas que utilizam OpenGL-Linux&#013; 1.4. Compilando programas que utilizam OpenGL &hellip; Continuar lendo Conceitos iniciais","og_url":"https:\/\/wordpress.ft.unicamp.br\/magic\/conceitos-iniciais\/","og_site_name":"Marco Antonio Garcia de Carvalho, PhD","twitter_card":"summary_large_image","twitter_misc":{"Est. tempo de leitura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/wordpress.ft.unicamp.br\/magic\/conceitos-iniciais\/","url":"https:\/\/wordpress.ft.unicamp.br\/magic\/conceitos-iniciais\/","name":"Conceitos iniciais - Marco Antonio Garcia de Carvalho, PhD","isPartOf":{"@id":"https:\/\/wordpress.ft.unicamp.br\/magic\/#website"},"datePublished":"2022-03-23T22:08:49+00:00","breadcrumb":{"@id":"https:\/\/wordpress.ft.unicamp.br\/magic\/conceitos-iniciais\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wordpress.ft.unicamp.br\/magic\/conceitos-iniciais\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/wordpress.ft.unicamp.br\/magic\/conceitos-iniciais\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wordpress.ft.unicamp.br\/magic\/"},{"@type":"ListItem","position":2,"name":"Conceitos iniciais"}]},{"@type":"WebSite","@id":"https:\/\/wordpress.ft.unicamp.br\/magic\/#website","url":"https:\/\/wordpress.ft.unicamp.br\/magic\/","name":"Marco Antonio Garcia de Carvalho, PhD","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wordpress.ft.unicamp.br\/magic\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"}]}},"_links":{"self":[{"href":"https:\/\/wordpress.ft.unicamp.br\/magic\/wp-json\/wp\/v2\/pages\/48","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.ft.unicamp.br\/magic\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wordpress.ft.unicamp.br\/magic\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.ft.unicamp.br\/magic\/wp-json\/wp\/v2\/users\/48"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.ft.unicamp.br\/magic\/wp-json\/wp\/v2\/comments?post=48"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.ft.unicamp.br\/magic\/wp-json\/wp\/v2\/pages\/48\/revisions"}],"wp:attachment":[{"href":"https:\/\/wordpress.ft.unicamp.br\/magic\/wp-json\/wp\/v2\/media?parent=48"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}