SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Desenvolvimento de
ambiente 3D para Web
usando Three JS
Nathalia Sautchuk Patrício
Esta obra foi licenciada sob uma Licença
Creative Commons Attribution-ShareAlike 3.0 Brazil License.
WebGL
!   Novo padrão para gráficos 3D na Web
!

Desenvolvido e mantido pelo Kronos Group

!   Parte da família de tecnologias do HTML5
!
!

!

Não é uma especificação oficial do W3C
Suportada pela maioria dos browsers com suporte ao
HTML5

Renderização de gráficos com o uso de Javascript no
browser
Definição Técnica
!

É uma API

!

Baseado no OpenGL ES 2.0

!

Mistura-se com outros conteúdos web

!

Foi construído para aplicações web dinâmicas

!

É multiplataforma

!

É uma especificação aberta, sem royalties
Conceitos básicos
!

Sistema de coordenadas 3D
!

Coordenadas x, y e z
Sistema de coordenadas

Disponível em https://commons.wikimedia.org/wiki/File:3D_coordinate_system.svg
Conceitos básicos
!

Modelo (ou mesh)
!

!

objeto composto por um ou mais polígonos

Polígono
composto por vértices
!   ex. triângulo, quadrado
!

!

Vértice
!

triplas x, y, z, definindo posições de coordenadas no
espaço 3d
Modelos

Disponível em
http://upload.wikimedia.org/wikipedia/commons/8/88/Blender3D_UVTexTut1.png
Conceitos básicos
!

Materiais
!

!

Texturas
!

!

propriedades da superfície de um modelo

definem a aparência de uma superfície

Luzes
!

definem como a cena estará iluminada
Conceitos básicos
!

Transformações
!
!

!

operações que movem o modelo por uma quantidade
relativa sem a necessidade de mover cada vértice
permitem um modelo ser escalado, rotacionado e
transladado

Matrizes
!
!

representa as transformações
objetos matemáticos contendo um array de valores
usados para computar as posições transformadas dos
vértices
Conceitos básicos
!

Câmeras
!

!

objeto que define onde o usuário está posicionado e
para onde está orientado

Perspectiva
!

tamanho do campo de visão

!   Viewport
!

limites retangulares onde desenhar
Conceitos básicos
!

Projeções
Câmeras são quase sempre representados usando uma
dupla de matrizes
!   A primeira matriz define a posição e a orientação da
câmera
!   A segunda matriz é a matriz de projeção aquela que
representa a translação das coordenadas 3D da câmera
no espaço de desenho 2D do viewport
!
Conceitos básicos

Disponível em
http://obviam.net/index.php/3dprogramming-with-android-projections-perspective/
Conceitos básicos
!

Shaders
!   São pedaços de código de programa que implementa

algoritmos para obter os pixels de um modelo da tela
!   São definidas em uma linguagem de alto nível e
compiladas em código utilizável pela GPU
!
WebGL requer shaders
Three.js
!

É uma engine 3D em JavaScript

!

Criada por Mr.doob, Ricardo Cabello Miguel, um
programador de Barcelona, Espanha

!

Provê um conjunto fácil e intuitivo de objetos que são
comumente encontrados em gráficos 3D

!

É rápida, usa várias das boas técnicas de engines gráficas

!

É poderosa, com vários tipos de objetos e utilidades

!

É open source, hospedada no GitHub
Three.js
!

Esconde os detalhes da renderização 3D

!

É orientado a objetos

!

É rico em recursos

!

É rápido

!

Suporta interação

!

Faz a matemática
Three.js
!   Tem suporte a diversos tipos de formatos de arquivo

3D
!

É extensível

!

Também funciona com o canvas 2D do HTML5
Three.js
!

Coisas que a Three.js não faz
!
!
!

Não é uma engine de jogos nem uma plataforma de
mundo virtual
Não tem diversos recursos comumente encontradas
nesses sistemas como letreiros, avatares, e física
Não tem suporte a conexões em rede para construção de
jogos multiplayer
Three.js
!

GitHub
!

https://github.com/mrdoob/three.js/
Quer saber mais?
!   Blogs e Sites
!   Learning WebGL
http://learningwebgl.com/blog/
!

WebGL Fundamentals
http://games.greggman.com/game/webgl-fundamentals/

!

WebGL Chrome Experiments
http://www.chromeexperiments.com/webgl

!

WebGL Mozilla Labs Demos
https://developer.mozilla.org/en-US/demos/tag/tech:webgl/
Quer saber mais?
!   Blogs e Sites
!
Aerotwist
http://www.aerotwist.com/tutorials/getting-started-with-threejs/
!   Learning Three.js

http://learningthreejs.com/
!

BKcore
http://bkcore.com/blog/3d/webgl-three-js-workflow-tips.html

!

AlteredQualia
http://alteredqualia.com/
Quer saber mais?
!

Lista oficial de discussão sobre a especificação
!
http://www.khronos.org/webgl/public-mailing-list/

!

Lista sobre desenvolvimento com WebGL
!
https://groups.google.com/forum/?fromgroups#!
forum/webgl-dev-list
Quer saber mais?
!

Alguns livros…

Disponível em http://oreilly.com/
Obrigada!
Nathalia Sautchuk Patrício
nathalia@cgi.br

Mais conteúdo relacionado

Mais procurados

Projecto multimédia
Projecto multimédiaProjecto multimédia
Projecto multimédia
Nuno Cardoso
 
Slides - Gestão de Projetos Atuliazação PMBoK 7 Edição.pdf
Slides - Gestão de Projetos Atuliazação PMBoK 7 Edição.pdfSlides - Gestão de Projetos Atuliazação PMBoK 7 Edição.pdf
Slides - Gestão de Projetos Atuliazação PMBoK 7 Edição.pdf
Jairo Garcia
 
APRESENTAÇÃO: ARQUITETURA DE INFORMAÇÃO E ACESSIBILIDADE WEB: USABILIDADE COM...
APRESENTAÇÃO: ARQUITETURA DE INFORMAÇÃO E ACESSIBILIDADE WEB: USABILIDADE COM...APRESENTAÇÃO: ARQUITETURA DE INFORMAÇÃO E ACESSIBILIDADE WEB: USABILIDADE COM...
APRESENTAÇÃO: ARQUITETURA DE INFORMAÇÃO E ACESSIBILIDADE WEB: USABILIDADE COM...
Claudio Diniz - Designer Gráfico
 
Arquitetura de informação
Arquitetura de informaçãoArquitetura de informação
Arquitetura de informação
renatamruiz
 
9 Projeto conceitual (parte 3)
9 Projeto conceitual (parte 3)9 Projeto conceitual (parte 3)
9 Projeto conceitual (parte 3)
Marcel Gois
 

Mais procurados (20)

Projecto multimédia
Projecto multimédiaProjecto multimédia
Projecto multimédia
 
Computação Gráfica - Conceitos
Computação Gráfica - ConceitosComputação Gráfica - Conceitos
Computação Gráfica - Conceitos
 
Bitmap x Vetor
Bitmap x VetorBitmap x Vetor
Bitmap x Vetor
 
Computação Gráfica - Introdução
Computação Gráfica - IntroduçãoComputação Gráfica - Introdução
Computação Gráfica - Introdução
 
Projecto e Produção Multimédia
Projecto e Produção MultimédiaProjecto e Produção Multimédia
Projecto e Produção Multimédia
 
Slides - Gestão de Projetos Atuliazação PMBoK 7 Edição.pdf
Slides - Gestão de Projetos Atuliazação PMBoK 7 Edição.pdfSlides - Gestão de Projetos Atuliazação PMBoK 7 Edição.pdf
Slides - Gestão de Projetos Atuliazação PMBoK 7 Edição.pdf
 
Usabilidade heurística
Usabilidade heurísticaUsabilidade heurística
Usabilidade heurística
 
Analise de Valor Agregado - EVA
Analise de Valor Agregado - EVAAnalise de Valor Agregado - EVA
Analise de Valor Agregado - EVA
 
Blender: Primeiros Passos
Blender: Primeiros PassosBlender: Primeiros Passos
Blender: Primeiros Passos
 
APRESENTAÇÃO: ARQUITETURA DE INFORMAÇÃO E ACESSIBILIDADE WEB: USABILIDADE COM...
APRESENTAÇÃO: ARQUITETURA DE INFORMAÇÃO E ACESSIBILIDADE WEB: USABILIDADE COM...APRESENTAÇÃO: ARQUITETURA DE INFORMAÇÃO E ACESSIBILIDADE WEB: USABILIDADE COM...
APRESENTAÇÃO: ARQUITETURA DE INFORMAÇÃO E ACESSIBILIDADE WEB: USABILIDADE COM...
 
Arquitetura de informação
Arquitetura de informaçãoArquitetura de informação
Arquitetura de informação
 
Palestra Digitalizacao e Preservacao Digital: uma introdução / relato de caso
Palestra Digitalizacao e Preservacao Digital: uma introdução / relato de casoPalestra Digitalizacao e Preservacao Digital: uma introdução / relato de caso
Palestra Digitalizacao e Preservacao Digital: uma introdução / relato de caso
 
Visão sistêmica de gestão de projetos
Visão sistêmica de gestão de projetosVisão sistêmica de gestão de projetos
Visão sistêmica de gestão de projetos
 
O que é ARG?
O que é ARG?O que é ARG?
O que é ARG?
 
Introdução a gerenciamento de projetos e PMBoK®
Introdução a gerenciamento de projetos e PMBoK®Introdução a gerenciamento de projetos e PMBoK®
Introdução a gerenciamento de projetos e PMBoK®
 
9 Projeto conceitual (parte 3)
9 Projeto conceitual (parte 3)9 Projeto conceitual (parte 3)
9 Projeto conceitual (parte 3)
 
Introdução à Arquitetura de Informação
Introdução à Arquitetura de InformaçãoIntrodução à Arquitetura de Informação
Introdução à Arquitetura de Informação
 
Simplificando o design digital
Simplificando o design digitalSimplificando o design digital
Simplificando o design digital
 
Direção de Arte para Games
Direção de Arte para GamesDireção de Arte para Games
Direção de Arte para Games
 
UX - UI DESIGN / MÉTODOS
UX - UI DESIGN / MÉTODOSUX - UI DESIGN / MÉTODOS
UX - UI DESIGN / MÉTODOS
 

Semelhante a Desenvolvimento de ambientes 3D para Web usando Three JS

Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3
Rodrigo Kono
 
Desenvolvimento Web em ambiente de software livre
Desenvolvimento Web em ambiente de software livreDesenvolvimento Web em ambiente de software livre
Desenvolvimento Web em ambiente de software livre
Pedro Neto
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livre
Ruan Carvalho
 
ExtJS - Jumpstart para o Grupo DevRioClaro
ExtJS - Jumpstart para o Grupo DevRioClaroExtJS - Jumpstart para o Grupo DevRioClaro
ExtJS - Jumpstart para o Grupo DevRioClaro
Daniel Da Cunha Bueno
 

Semelhante a Desenvolvimento de ambientes 3D para Web usando Three JS (20)

HTML5
HTML5HTML5
HTML5
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvem
 
Phonegap
PhonegapPhonegap
Phonegap
 
Conceitos de Ajax
Conceitos de AjaxConceitos de Ajax
Conceitos de Ajax
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
Palestra realidade aumentada
Palestra   realidade aumentadaPalestra   realidade aumentada
Palestra realidade aumentada
 
Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3
 
Microsoft Edge (Teched 2015)
Microsoft Edge (Teched 2015)Microsoft Edge (Teched 2015)
Microsoft Edge (Teched 2015)
 
Do mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIsDo mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIs
 
Apresentação realidade aumentada para aplicações web e mobile
Apresentação   realidade aumentada para aplicações web e mobileApresentação   realidade aumentada para aplicações web e mobile
Apresentação realidade aumentada para aplicações web e mobile
 
Desenvolvimento Web em ambiente de software livre
Desenvolvimento Web em ambiente de software livreDesenvolvimento Web em ambiente de software livre
Desenvolvimento Web em ambiente de software livre
 
HTML5 & suas APIs
HTML5 & suas APIsHTML5 & suas APIs
HTML5 & suas APIs
 
Apresentação - Representação de Ambientes com recursos de Realidade Aumentada
Apresentação - Representação de Ambientes com recursos de Realidade AumentadaApresentação - Representação de Ambientes com recursos de Realidade Aumentada
Apresentação - Representação de Ambientes com recursos de Realidade Aumentada
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livre
 
Desenvolvimento web com Software Livre
Desenvolvimento web com Software LivreDesenvolvimento web com Software Livre
Desenvolvimento web com Software Livre
 
Web Dev Camp
Web Dev CampWeb Dev Camp
Web Dev Camp
 
ExtJS - Jumpstart para o Grupo DevRioClaro
ExtJS - Jumpstart para o Grupo DevRioClaroExtJS - Jumpstart para o Grupo DevRioClaro
ExtJS - Jumpstart para o Grupo DevRioClaro
 
pgModeler: muito mais que um modelador de bancos de dados PostgreSQL
pgModeler: muito mais que um modelador de bancos de dados PostgreSQLpgModeler: muito mais que um modelador de bancos de dados PostgreSQL
pgModeler: muito mais que um modelador de bancos de dados PostgreSQL
 

Mais de Nathalia Sautchuk Patricio

Mais de Nathalia Sautchuk Patricio (16)

Conceptos fundamentales sobre el funcionamiento y la utilidad del cifrado
Conceptos fundamentales sobre el funcionamiento y la utilidad del cifradoConceptos fundamentales sobre el funcionamiento y la utilidad del cifrado
Conceptos fundamentales sobre el funcionamiento y la utilidad del cifrado
 
Algoritmos, Inteligência Artificial e Políticas Públicas
Algoritmos, Inteligência Artificial e Políticas PúblicasAlgoritmos, Inteligência Artificial e Políticas Públicas
Algoritmos, Inteligência Artificial e Políticas Públicas
 
Internet Engineering Task Force (IETF): Visão sobre a Participação Brasileira...
Internet Engineering Task Force (IETF): Visão sobre a Participação Brasileira...Internet Engineering Task Force (IETF): Visão sobre a Participação Brasileira...
Internet Engineering Task Force (IETF): Visão sobre a Participação Brasileira...
 
Franquia de dados na Internet
Franquia de dados na InternetFranquia de dados na Internet
Franquia de dados na Internet
 
Requisitos de Interface com o usuário em Software Educacional
Requisitos de Interface com o usuário em Software EducacionalRequisitos de Interface com o usuário em Software Educacional
Requisitos de Interface com o usuário em Software Educacional
 
Políticas Educacionais do Ensino a Distância no Brasil
Políticas Educacionais do Ensino a Distância no BrasilPolíticas Educacionais do Ensino a Distância no Brasil
Políticas Educacionais do Ensino a Distância no Brasil
 
Essay: Multistakeholder Model
Essay: Multistakeholder ModelEssay: Multistakeholder Model
Essay: Multistakeholder Model
 
Essay: Brazilian Transition to IPv6
Essay: Brazilian Transition to IPv6Essay: Brazilian Transition to IPv6
Essay: Brazilian Transition to IPv6
 
Protocolos de Rede para Internet das Coisas
Protocolos de Rede para Internet das CoisasProtocolos de Rede para Internet das Coisas
Protocolos de Rede para Internet das Coisas
 
Como funciona a Internet - Camada de Aplicação
Como funciona a Internet - Camada de AplicaçãoComo funciona a Internet - Camada de Aplicação
Como funciona a Internet - Camada de Aplicação
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
 
Software Livre na Educação
Software Livre na EducaçãoSoftware Livre na Educação
Software Livre na Educação
 
O uso das TICs na educação
O uso das TICs na educaçãoO uso das TICs na educação
O uso das TICs na educação
 
Engenharia de Requisitos em Software para E-learning
Engenharia de Requisitos em Software para E-learningEngenharia de Requisitos em Software para E-learning
Engenharia de Requisitos em Software para E-learning
 
Mulheres na computação
Mulheres na computaçãoMulheres na computação
Mulheres na computação
 
Mulheres na computação
Mulheres na computaçãoMulheres na computação
Mulheres na computação
 

Último

Último (6)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Desenvolvimento de ambientes 3D para Web usando Three JS