Top Banner
Mini-Curso: X3D Básico Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo
45

Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

Apr 18, 2015

Download

Documents

Internet User
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

Mini-Curso: X3D BásicoMini-Curso: X3D Básico

Gustavo Francisco FrizzoCleber Alexandre de Azevedo

Page 2: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

Sumário Sumário Introdução BS X3D

◦ Estrutura◦ Conceito

X3D-Edit Estrutura dos Objetos Campos dos Objetos DEF/USE Textos Transformações

◦ Translação◦ Rotação◦ Escala

Page 3: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

SumárioSumárioAparênciaSite de ReferênciasLinhaFace VisãoOutros GruposInterpolaçãoSensoresJunção com Java

Page 4: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

IntroduçãoIntroduçãoX3D significa extensible 3DFoi criado para fazer a

comunicação entre 3D e web, sendo feito em XML

O X3D não é uma API de programação,nem tão pouco um formato de arquivo para troca de geometrias

É um padrão aberto para distribuir conteúdo 3D

Page 5: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

Site para ReferênciasSite para Referências http://www.web3d.org/x3d/content/

X3dTooltipsPortuguese.html

Page 6: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

BS ContactBS ContactÉ uma aplicação desenvolvida

pra visualização de conteúdo Web 3D.

Funciona como plugin para browsers

Pode ser encontrada em: http://www.bitmanagement.com/en/download

Vamos aos exemplos

Page 7: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

X3DX3DArquivos X3D são simples

arquivos de texto definidos pela extensão .x3d

O código é baseado em TAGs, como no HTML ou XML.

Exemplos:

<head> Codigo </head>

<!-- TAG de comentario -->

<Box size='10 50 10'/>

Page 8: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

X3DX3D

Um arquivo X3D começa com um cabeçalho que o

identifica o arquivo. Independente da

codificação, o cabeçalho contém os seguintes

elementos na ordem:

◦ Identificação do padrão suportado (neste caso

“X3D”);

◦ Versão do padrão suportado (a mais atual é a

3.2);

◦ Identificação da codificação de caracteres

suportado (“utf8” – case sensitive).

Page 9: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

X3D – Cabeçalho BásicoX3D – Cabeçalho Básico

Page 10: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

X3DX3D

O código desenvolvido ficará

dentro das TAGs <Scene>

</Scene>

As TAGs <Shape> </Shape> são

usadas dentro de <Scene> e

definem uma forma.

Page 11: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

Usando o X3D-Edit…Usando o X3D-Edit…

Page 12: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

X3D-EditX3D-EditAmbiente que facilita a criação e

manipulação do código.Pode ser encontrado em:https://savage.nps.edu/X3D-Edit/#DownloadsPara usá-lo, descompacte o arquivo

baixado em alguma pasta e execute o arquivo:

..\X3D-Edit\x3deditor32\bin\x3deditor32.exe

Page 13: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

Primeiro ExemploPrimeiro Exemplo

Page 14: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

X3D – Estruturas BásicasX3D – Estruturas Básicas

• <Sphere/><Sphere/>

• <Box/><Box/>

• <Cone/><Cone/>

• <Cylinder/><Cylinder/>

Page 15: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

ExecícioExecícioCrie e visualize cada umas das

estruturas básicas apresentadas.

• <Sphere/><Sphere/>

• <Box/><Box/>

• <Cone/><Cone/>

• <Cylinder/><Cylinder/>

Page 16: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

X3D – Estrutura BásicaX3D – Estrutura BásicaDEF e USE: usado com qualquer

elemento para dar um nome a ele (DEF) e depois usar ele de novo (USE)

Page 17: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

ExercícioExercícioAltere o tamanho e a forma das

estruturas usando os comandos apreendidos.

Page 18: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

X3D - TextosX3D - Textos

Cada conjunto de aspas é uma linha.

Page 19: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

ExercíciosExercíciosCrie um “Olá Mundo” em X3D.

Crie dois objetos (ex.: um cone e um cubo) na mesma cena.

Page 20: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

EixosEixos

Page 21: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

X3D – TransformaçõesX3D – TransformaçõesTranslation

◦Translada o objeto de um ponto ao outro.

Page 22: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

ExercícioExercício

Crie 5 objetos na mesma cena, fazendo com que eles não se interceptem.

Page 23: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

X3D - TransformaçõesX3D - TransformaçõesRotação

◦Rotaciona o objeto em volta do eixo.

rotation = ‘x y z angulo’ angulo = 0~3.14.

Page 24: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

ExercícioExercícioUtilize a rotação para alterar a

posição dos objetos.

Page 25: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

X3D - TransformaçõesX3D - TransformaçõesScale

◦Aumenta ou diminui a escala de um objeto, multiplicando os lados (x, y, z) por um valor definido.

Page 26: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

ExercícioExercícioAltere o tamanho dos seus

objetos utilizando a escala.

Page 27: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

X3D - TransformaçõesX3D - TransformaçõesUtilizando todas juntas.

Page 28: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

ExercíciosExercíciosCrie um palhaço utilizando os

objetos e as transformações.

Crie uma cadeira.

Page 29: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

X3D - AparênciaX3D - AparênciaA aparência é alterada entre as

TAGs <Appearance> </Appearance>

É possível alterar a cor dos objetos, a forma com que emana ou absorve a luz do ambiente e adicionar texturas

Page 30: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

X3D - AparênciaX3D - AparênciaTAG <Material/>Material: diffuseColor:

◦ Reflete as luzes do ambiente. Depende do ângulo de visão e do ângulo da fonte de luz.

emissiveColor:◦ Incandecênsia do objeto, é independente da luz.

specularColor:◦ Conduz o reflexo do objeto.

Shininess:◦ Controla a intensidade especular (polído).

Transparency:◦ Permite ver através do objeto, 0 até1.

Page 31: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

X3D - AparênciaX3D - AparênciaTextura

Page 32: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

ExemploExemplo

Page 33: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

ExercícioExercício

Crie 5 objetos com cores diferentes.

Page 34: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

SitesSiteshttp://www.web3d.org/x3d/content/X3

dTooltipsPortuguese.html Site para informação de tags e campos dela.

http://x3dGraphics.com Site com exemplos com código fonte e um livre gratis

com informações sobre X3D.

http://www.xj3d.org/ Site sobre o XJ3D, ferramenta utilizada na junção de X3D

com Java.

Page 35: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

IndexedLineSetIndexedLineSet

IndexedLineSet = cria linhas que precisão se fechar, onde o campo, onde -1 é para informar que um conjunto de linhas acabou. coordIndex indica a ordem de criação das linhas através dos vértices.Coordinate = cria os vértices, através do campo point, que serão usados no index

<IndexedLineSet DEF='ILS' coordIndex='0 1 2 0 -1'><Coordinate DEF='TurnPoints' point='0.0 -7.0 -1.0 -1.75 -7.0 -0.5 2.25 -7.0 -0.25'/></IndexedLineSet>

Page 36: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

IndexedFaceSetIndexedFaceSet

IndexedFaceSet = mesma coisa que o Line mas cria faces. Coordinate = continua igual.

<IndexedFaceSet DEF='IFS' coordIndex='0 1 2 3 -1 3 4 5 0 -1'><Coordinate point='0.0 0.0 0.0 2.0 0.0 0.0 2.0 2.0 0.0 0.0 2.0 0.0 0.0 2.0 -2.0 0.0 0.0 -2.0'/></IndexedFaceSet>

Page 37: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

ViewpointViewpoint• NavigationInfo = Modo do usuário navegar pela cena com

campo type ("EXAMINE" "WALK" "FLY" "LOOKAT" "ANY" "NONE")., speed, headlight, avatarSize, visibilityLimit, transitionType, transitionTime entre outros.

• Viewpoints = define uma especifica posição e orientação ao olhar um cena 3D

description = nome da visão. orientation = orientação da visão. position = posisão da visão. fieldOfView = alcance limite da visão.

<Viewpoint DEF='DefaultPositionLeft7Degrees' description='7' orientation='1 0 0 -0.1'/>

<Viewpoint DEF='DefaultPositionLeft7Degrees' description='8' orientation='1 0 0 -0.3'/>

Page 38: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

Outros GruposOutros Grupos• Group – grupo basico.

– bboxCenter (três valores)– bboxSize (três valores)

• StaticGroup - grupo não é animado.

• LOD (level of detail) - quando dois objetos se colidem ele deixa o de maior prioridade.

• Switch - serve para escolha de nodos.

Page 39: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

InterpolaçãoInterpolação<CoordinateInterpolator/><OrientationInterpolator/> -

dada as orientações essa tag cria um trajeto entre elas

<PositionInterpolator/> - dada as coordenadas essa tag cria um trajeto entre elas

<ScalarInterpolator/> - idem com scalas.

<ColorInterpolator/> -idem com cores.

Page 40: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

SensoresSensoresTimeSensor – sensor de tempo.PlaneSensor – sensor para movimento em

um plano.KeySensor – sensor de entrada pelo

teclado por botão clicado.CylinderSensor – sensor para rotação em

um eixo.SphereSensor – sensor para rotação em

todos os sentidos.StringSensor – quando usado o enter do

teclado. TouchSensor – sensor de click na estrutura.ProximitySensor – sensor de proximidade.LoadSensor – sensor para carregar

estruturas pesadas (não será visto)

Page 41: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

SensoresSensores<TimeSensor/> = controla quando a

animação flui◦ cycleInterval, startTime, stopTime,

pauseTime, resumeTime (um valor), loop, enabled (booleano)

<ROUTE/> = Conecta a saída informação de um nó para passar um valor e estimular a entrada dessa informação para outro nó.

◦ fromNode, fromField, toNode, toField (nomes)

Page 42: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

SensoresSensores9 passos básicos para sensores:

•1° Escolha o nó a ser animado;

•2° Defina um nome para o nó de interesse;

•3° Certifique-se se o nó é input e determine seu ponto flutuante: SFFloat, SFVec3f, SFColor e etc;

•4° Determinar qual “Interpolator”: se você não estiver usando um nó sequencer ou Script, determine qual interpolador irá produzir a informação correta para uma mudança de valor(“value_changed”) de saida, por exemplo: PositionInterpolator produz SFVec3f “value_changed” events.

•5° Triggering sensor: se desejar adicione um sensor no inicio, para produzir SFTime ou SFBool “trigger” para começar a animação.

– Normalmente um evento triggering é um informação de saida para uma cascata de animação.

Page 43: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

SensoresSensores• 6° TimeSensor clock: adicione um sensor de tempo,

então ajuste seu campo “cycleInterval” de acordo com o intervalo de duração de seu animação.– Ajuste loop=‘false’ se a animação percorre até

um tempo pré estimado;– Loop=‘true’ se é repetitivo.

• 7°Connect Trigger: sensor “ROUTE” para o “TimeSensor” enviar uma ordem de iniciar a animação.

• 8° Connect clock: faça um “ROUTE” o “TimeSensor fraction_changed” para o interpolador(ou sequencia) “set_fraction” na ordem para seguir a animação de modo correto;

• 9° Connect animation output: “ROUTE” a interpolação, sequencia, ou Script no campo “value_changed” para o objetivo de interesse na ordem para se completar a animação.

Page 44: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

Mais ExemplosMais Exemplos

Page 45: Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.

ReferenciasReferenciashttp://x3dgraphics.com/

http://www.xj3d.org/

http://www.web3d.org/