Rotsa09 (discussão | contribs)
Sem resumo de edição
 
(35 revisões intermediárias por 3 usuários não estão sendo mostradas)
Linha 1: Linha 1:
A '''computação gráfica''' é a área da computação destinada à geração de imagens em geral — em forma de representação de dados e informação, ou em forma de recriação do mundo real. Ela pode possuir uma infinidade de aplicações para diversas áreas, desde a própria informática, ao produzir interfaces gráficas para software, sistemas operacionais e sites na Internet, quanto para produzir animações e jogos.
[[Arquivo:Frameworks-Examples.png]]


----
= Introdução =
*Como programador, você não precisa começar do zero quando tem ferramentas projetadas para ajudá-lo em seus projetos. Frameworks são softwares desenvolvidos e usados ​​por desenvolvedores para construir aplicações.
<br>


[[Arquivo:Model.jpg|right|700x700px]]
= O que não é um framework  =
*Uma das grandes confusões que profissionais iniciantes ou que não conhecem os frameworks costumam fazer é achar que eles são bancos de dados. Na realidade, um framework pode possuir integração com um banco de dados, mas ele não é o banco de dados, como por exemplo o Laravel (framework php).
*Alguns podem presumir que um framework é uma coleção de bibliotecas, assim como as bibliotecas são uma coleção de rotinas pré-compiladas. No entanto, isso não é verdade, pois nem todos frameworks usam ou dependem de bibliotecas.
<br>


A computação gráfica intervém em diversas áreas, tais como:
= O que é um framework =
* Artes : Para expressão artística utilizando os ambientes gráfico-computacionais como meio ou fim, tais como gravura digital, arte digital, web arte.
*Um framework é um conjunto de código básico genérico usado como um pacote pelos desenvolvedores que criam um programa. Dessa forma, quando um projeto é iniciado pelo profissional, este pacote de códigos prontos é um suporte que facilita o trabalho, evitando a necessidade de iniciar o site do zero, partindo de uma base comum para qualquer desenvolvimento.
* Arquitetura e Design de produto: desenvolvimento gráfico dos projetos de forma visual e com a aplicação dos cálculos matemáticos para os testes dos projetos quanto a resistência, a variação de luz e ambientes.
*Esses frameworks podem ser baixados das comunidades de desenvolvedores, normalmente de graça, e em sua maioria open-sources. O pacote de códigos é normalmente criado por vários desenvolvedores, mas com a proposta de criar algo uniforme e padronizado que possa ser usado no máximo de cenários possíveis.
* Jogos: Jogos são a maior aplicação da computação gráfica, e a grande motivação para seu desenvolvimento, resultando também no desenvolvimento e aprimoramento de equipamentos para este tipo de trabalhos, como placas de vídeo e processadores mais poderosos
<br>
* Cinema: para produção de efeitos especiais, retoques nas imagens do filme, e filmes de animação. Um dos primeiros filmes a utilizar efeitos em pessoas e elementos foi Exterminador do Futuro,<sup>[1]</sup> o primeiro filme à utilizar efeitos especiais em animais foi Jurassic Park.<sup>[1]</sup>
* Engenharia: simulação de todas as espécies de eventos físicos, químicos dos materiais envolvidos nos projetos em elaboração.
* Geoprocessamento : Para geração de dados relacionados a cidades, regiões e países.
* Medicina: Para análise de exames como tomografia, radiografia, e mais recentemente o ultra-som (que consegue gerar a partir deste uma imagem em 3D)
* Design visual: para o desenvolvimento de mídias visuais, desde a impressa (como propagandas em revistas e outdoors) quanto para o auxílio


----
= O que há de mais novo sobre frameworks?​ =
*'''Frameworks para aplicações web:'''
*React: React utiliza a linguagem de programação typescript ou javascript, é open-source, feito pelo facebook, utiliza o método de programação declarativa, componentização e tem como um de seus principais objetivos o "Aprenda uma vez, codifique em qualquer lugar", pois o React pode não apenas ser usado para sites, e sim, também, para outras plataformas.


Toda a computação gráfica é baseada em pixels que são pontos que fazem com que a imagem seja sintetizada visualmente em um monitor. Seja em 3D por modelagem tridimensional ou 2D, o profissional em computação gráfica trabalha direta ou indiretamente com pixels e suas compressões. Isso porque todo o nosso formato de vídeo, tanto monitores, televisores, celulares, cinema ou qualquer tipo de emissor de imagens atualmente são interligados por uma série de algoritmos e ferramentas padrões de construção e edição de imagens. Levando em conta que a maioria de criações e edições passam por um computador para um resultado melhor ou mais atraente.
Alguns sites populares utilizando React:
Atualmente, as ferramentas para a construção de imagens (os softwares) lidam praticamente sozinhos com toda a parte algorítmica do hardware; quanto mais específico for o resultado de uma determinada ferramenta, mais real o objeto criado será. No entanto os programas mais poderosos são bastante flexíveis em relação a isso, ou seja, é possível em muitos softwares que novas ferramentas sejam criadas por usuários que tenham um mínimo de conhecimento em programação. É possível criar verdadeiros programas dentro desses programas, como é o caso do 3D Studio Max, software para criação de imagens em 3D da Autodesk, ou do Software livre Gimp para desenhos em 2D. Desta maneira, o usuário pode tanto criar algo que seja mais próximo a seu interesse como também diminuir em muito seu tempo de trabalho.
- Facebook
- Instagram
- Whatsapp Web
- Netflix
- Twitter
<br>


----
*Wordpress: Utiliza a linguagem php, é o construtor de sites mais popular do mundo (cerca de 42% da internet é composta por wordpress), tem como proposito simplificar a construção de sites através da utilização de plugins e templates, de modo que possibilita que até mesmo pessoas sem conhecimento de programação possam usá lo e desenvolvedores com conhecimento mais avançado possam lucrar com a criação de templates e plugins.


[[Arquivo:Durotan.jpg]]
Alguns exemplos de sites que usam wordpress:
- O blog oficial de Star Wars
- BBC America
- New York Times


Filme Warcraft. Personagem Durotan, feito em 3D Studio Max.
*'''Data Science Frameworks:'''
*PyTorch: É um framework de código aberto que acelera o processo de pesquisa, prototipagem e deploy. Desenvolvido principalmente pelo grupo de pesquisa de IA do Facebook, o PyTorch pode ser usado tanto com Python quanto com C ++. PyTorch é usado para visão computacional e processamento de linguagem natural (PNL).


----
Empresas que usam PyTorch:
- NVIDIA
- Qualcomm
- Lucid Motors


Em 1962, surgiu uma das mais importantes publicações de Computação Gráficade todos os tempos, a tese do Dr. Ivan Sutherland '''("Sketchpad - A Man-Machine Graphical Communication System")''', propunha uma forma de inteção muito semelhante ao que hoje chamados de interfaces '''WIMP – Window-Icon-Menu-Pointer'''.
*TensorFlow: É um framework para machine learning. Ele tem um ecossistema abrangente e flexível de ferramentas, bibliotecas e recursos da comunidade que permite que os pesquisadores mergulhem no ML e os desenvolvedores criem e implantem rapidamente aplicativos baseados no ML. Ele utiliza javascript e Node.js como linguagens de programação. Existem  principais casos de usos para o TensorFlow: reconhecimento de imagens, modelos lineares em grande escala para análise de dados e previsões comportamentais simples e modelos de sequência a sequência (Seq2Seq) para recursos relacionados à linguagem humana.


Segundo a ISO ("International Standards Organization") a Computação Gráfica pode ser definida como ^B^Yo conjunto de métodos e técnicas utilizados para converter dados para um dispositivo gráfico, via computador
*'''Frameworks para desenvolvimento mobile:'''
* Flutter: Flutter é o kit de ferramentas de IU do Google para a construção de aplicativos bonitos e compilados de forma nativa para celular, web e desktop a partir de uma única base de código. Possui uma interface de usuário expressiva e flexível e oferece um desempenho nativo nas plataformas iOS e Android, utiliza a linguagem de programação Dart.


            Se tomarmos como base a definição da ISO, duas áreas tem uma estreita relação com a Computação Gráfica, são elas:
* React Native: Combina as melhores partes do desenvolvimento nativo com React, a melhor biblioteca JavaScript da classe para construir interfaces de usuário. Com ele você tem acesso ao código nativo, tanto IOS quanto Android e pode fazer alterações diretas. É um concorrente do Flutter.
Apps famosos que usam React Native: - Uber Eats - Airbnb - Discord - Instagram - Pinterest


            O diagrama da figura 1 ilustra o relacionamento entre a Computação Gráfica, o Processamento de Imagens, o Reconhecimento de Padrões e o Processamento de Dados convencional, convencional, segundo a visão da ISO.
= Benefícios =
*Eficiência – Como as rotinas mais comuns de uma aplicação já terão sido implementadas, o tempo total de desenvolvimento do sistema será menor.
*Segurança – Muitas das falhas de segurança comuns à uma aplicação já terão sido tratadas pois a maioria dos frameworks são desenvolvidos por comunidades e diversas pessoas reportando erros de forma colaborativa.
*Custo – A maioria dos frameworks são gratuitos, não gerando custos maiores ao desenvolvimento.
*Documentação – A maioria possui uma vasta documentação, explicando os detalhes e funcionamento de suas ferramentas.
*Padrões de codificação – por seguir um padrão de código, além de melhorar a legibilidade do código, pode tornar a manutenção mais simples.
<br>


----
= Desafios =
*O framework não é a linguagem – por ser uma abstração da linguagem o desenvolvedor terá que passar um tempo aprendendo as peculiariedades do framework.
*Códigos desnecessários – Dependendo do tamanho da aplicação um framework mais robusto pode ter funcionalidades que serão desnecessárias para aquele sistema o que pode tornar a aplicação desnecessariamente mais pesada.
<br>


'''Relacionamento da Computação Gráfica com outras áreas'''
= Referências =
[[Arquivo:Comp.gif|left]]
* https://hackr.io/blog/what-is-frameworks
 
* https://whatis.techtarget.com/definition/framework
Existem vários projetos que podem ser utilizados com a computação gráfica. Como por exemplo o Processamento de Imagens, um exemplo usual disso é mesmo na Universidade Federal de Uberlândia, a professora Denisa Guliato usa o processamento de imagens com a computação gráfica para monitorar canceres de mama.
* https://techmonitor.ai/what-is/what-is-a-framework-4945801
 
----
 
Existem vários softwares que podem ser usados para a computação gráfica, um dos mais usados para iniciantes é o Blender. Porém existem outros bastante utilizados também.
 
[[Arquivo:Blender.png]]
[[Arquivo:Rhino.jpg|460x460px]]
 
----
 
Bibliografia:
 
https://pt.wikipedia.org/wiki/Computa%C3%A7%C3%A3o_gr%C3%A1fica
 
http://www.um.pro.br/index.php?c=/computacao/definicao
 
http://www.inf.pucrs.br/~pinho/CG/Aulas/Intro/intro.htm

Edição atual tal como às 00h15min de 18 de setembro de 2021

Introdução

  • Como programador, você não precisa começar do zero quando tem ferramentas projetadas para ajudá-lo em seus projetos. Frameworks são softwares desenvolvidos e usados ​​por desenvolvedores para construir aplicações.


O que não é um framework

  • Uma das grandes confusões que profissionais iniciantes ou que não conhecem os frameworks costumam fazer é achar que eles são bancos de dados. Na realidade, um framework pode possuir integração com um banco de dados, mas ele não é o banco de dados, como por exemplo o Laravel (framework php).
  • Alguns podem presumir que um framework é uma coleção de bibliotecas, assim como as bibliotecas são uma coleção de rotinas pré-compiladas. No entanto, isso não é verdade, pois nem todos frameworks usam ou dependem de bibliotecas.


O que é um framework

  • Um framework é um conjunto de código básico genérico usado como um pacote pelos desenvolvedores que criam um programa. Dessa forma, quando um projeto é iniciado pelo profissional, este pacote de códigos prontos é um suporte que facilita o trabalho, evitando a necessidade de iniciar o site do zero, partindo de uma base comum para qualquer desenvolvimento.
  • Esses frameworks podem ser baixados das comunidades de desenvolvedores, normalmente de graça, e em sua maioria open-sources. O pacote de códigos é normalmente criado por vários desenvolvedores, mas com a proposta de criar algo uniforme e padronizado que possa ser usado no máximo de cenários possíveis.


O que há de mais novo sobre frameworks?​

  • Frameworks para aplicações web:
  • React: React utiliza a linguagem de programação typescript ou javascript, é open-source, feito pelo facebook, utiliza o método de programação declarativa, componentização e tem como um de seus principais objetivos o "Aprenda uma vez, codifique em qualquer lugar", pois o React pode não apenas ser usado para sites, e sim, também, para outras plataformas.

Alguns sites populares utilizando React: - Facebook - Instagram - Whatsapp Web - Netflix - Twitter

  • Wordpress: Utiliza a linguagem php, é o construtor de sites mais popular do mundo (cerca de 42% da internet é composta por wordpress), tem como proposito simplificar a construção de sites através da utilização de plugins e templates, de modo que possibilita que até mesmo pessoas sem conhecimento de programação possam usá lo e desenvolvedores com conhecimento mais avançado possam lucrar com a criação de templates e plugins.

Alguns exemplos de sites que usam wordpress: - O blog oficial de Star Wars - BBC America - New York Times

  • Data Science Frameworks:
  • PyTorch: É um framework de código aberto que acelera o processo de pesquisa, prototipagem e deploy. Desenvolvido principalmente pelo grupo de pesquisa de IA do Facebook, o PyTorch pode ser usado tanto com Python quanto com C ++. PyTorch é usado para visão computacional e processamento de linguagem natural (PNL).

Empresas que usam PyTorch: - NVIDIA - Qualcomm - Lucid Motors

  • TensorFlow: É um framework para machine learning. Ele tem um ecossistema abrangente e flexível de ferramentas, bibliotecas e recursos da comunidade que permite que os pesquisadores mergulhem no ML e os desenvolvedores criem e implantem rapidamente aplicativos baseados no ML. Ele utiliza javascript e Node.js como linguagens de programação. Existem principais casos de usos para o TensorFlow: reconhecimento de imagens, modelos lineares em grande escala para análise de dados e previsões comportamentais simples e modelos de sequência a sequência (Seq2Seq) para recursos relacionados à linguagem humana.
  • Frameworks para desenvolvimento mobile:
  • Flutter: Flutter é o kit de ferramentas de IU do Google para a construção de aplicativos bonitos e compilados de forma nativa para celular, web e desktop a partir de uma única base de código. Possui uma interface de usuário expressiva e flexível e oferece um desempenho nativo nas plataformas iOS e Android, utiliza a linguagem de programação Dart.
  • React Native: Combina as melhores partes do desenvolvimento nativo com React, a melhor biblioteca JavaScript da classe para construir interfaces de usuário. Com ele você tem acesso ao código nativo, tanto IOS quanto Android e pode fazer alterações diretas. É um concorrente do Flutter.

Apps famosos que usam React Native: - Uber Eats - Airbnb - Discord - Instagram - Pinterest

Benefícios

  • Eficiência – Como as rotinas mais comuns de uma aplicação já terão sido implementadas, o tempo total de desenvolvimento do sistema será menor.
  • Segurança – Muitas das falhas de segurança comuns à uma aplicação já terão sido tratadas pois a maioria dos frameworks são desenvolvidos por comunidades e diversas pessoas reportando erros de forma colaborativa.
  • Custo – A maioria dos frameworks são gratuitos, não gerando custos maiores ao desenvolvimento.
  • Documentação – A maioria possui uma vasta documentação, explicando os detalhes e funcionamento de suas ferramentas.
  • Padrões de codificação – por seguir um padrão de código, além de melhorar a legibilidade do código, pode tornar a manutenção mais simples.


Desafios

  • O framework não é a linguagem – por ser uma abstração da linguagem o desenvolvedor terá que passar um tempo aprendendo as peculiariedades do framework.
  • Códigos desnecessários – Dependendo do tamanho da aplicação um framework mais robusto pode ter funcionalidades que serão desnecessárias para aquele sistema o que pode tornar a aplicação desnecessariamente mais pesada.


Referências