A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Universidade Federal do Ma

Apresentações semelhantes


Apresentação em tema: "Universidade Federal do Ma"— Transcrição da apresentação:

1 Universidade Federal do Ma
Introdução à Computação Gráfica Prof. Anselmo C. de Paiva Depto de Informática VRML

2 Roteiro Introdução a VRML Conceitos Chave
Construindo e Agrupando Formas Predefinidas Prof. Anselmo C. de Paiva - DEINF-UFMA

3 1-2 - Introdução a VRML - Conceitos Chave
Virtual Reality Modeling Language

4 Arquivo VRML Descrição textual de um mundo VRML.. Extensão wrl
Prof. Anselmo C. de Paiva - DEINF-UFMA

5 Tipos de Componentes de um Arquivo VRML:
VRML Header (cabeçalho) - obrigatório Protótipos Formas, interpoladores, sensores e scripts Rotas Prof. Anselmo C. de Paiva - DEINF-UFMA

6 Outros itens: Comentários Nodos Campos e valores de campos
Nomes de nodos definidos Nomes de nodos usados Prof. Anselmo C. de Paiva - DEINF-UFMA

7 fig 2.1 Prof. Anselmo C. de Paiva - DEINF-UFMA

8 O Cabeçalho VRML #VRML V2.0 utf8
Prof. Anselmo C. de Paiva - DEINF-UFMA

9 Comentários # Draw the hut walls
Prof. Anselmo C. de Paiva - DEINF-UFMA

10 Nodos Nodos descrevem formas e suas propriedades. Geralmente contém:
tipo (obrigatório) chaves (obrigatório) campos (pocionais) e seus valores dentro das chaves Prof. Anselmo C. de Paiva - DEINF-UFMA

11 Exemplo de nodo Cylinder { } height 2.0 radius 2.0
Prof. Anselmo C. de Paiva - DEINF-UFMA

12 Campos e valores de campos
height 2.0 radius 2.0 São os atributos de um nodo São opcionais porque têm valores default Prof. Anselmo C. de Paiva - DEINF-UFMA

13 Definições de nomes de campos
DEF node-name node-type { ... } Prof. Anselmo C. de Paiva - DEINF-UFMA

14 Uso de nomes de campos USE USE node-name
Prof. Anselmo C. de Paiva - DEINF-UFMA

15 Formas geometry - define a estrutura material - aparência (cor)
texture - textura (vidro, madeira, etc.) Estes atributos ficam dentro do nodo SHAPE VRML suporta formas geométricas primitivas e avançadas Prof. Anselmo C. de Paiva - DEINF-UFMA

16 Agrupando formas Nodo group Prof. Anselmo C. de Paiva - DEINF-UFMA

17 3 - Construindo e Agrupando Formas Predefinidas

18 Forma - Nodo Shape Todas as formas são construídas com o nodo Shape
appearance NULL #exposedField SFNode geometry NULL #exposedField SFNode } Prof. Anselmo C. de Paiva - DEINF-UFMA

19 Aparência - nodo appearance
O atributo do campo Appearance pode ser preenchido com um nodo appearance Appearance { material NULL #exposedField SFNode texture NULL #exposedField SFNode textureTransform NULL #esposedField SFNode } Prof. Anselmo C. de Paiva - DEINF-UFMA

20 Nodo Material Especifica atributos de material podendo ser usado como valor do atributo material de appearance Material { ambientIntensity 0.2 #exposedField SFFloat diffuseColor #exposedField SFColor emissiveColor #exposedField SFColor shininess #exposedField SFFloat specularColor #exposedField SFColor transparency 0.0 #exposedField SFFloat } Prof. Anselmo C. de Paiva - DEINF-UFMA

21 Caixa - Nodo Box Cria uma caixa, podendo ser usado como valor do campo geometry no nodo shape. Box { size #field SFVec3f Prof. Anselmo C. de Paiva - DEINF-UFMA

22 Exemplos fig 3.1 Prof. Anselmo C. de Paiva - DEINF-UFMA

23 Prof. Anselmo C. de Paiva - DEINF-UFMA

24 Nodo Cone Cone { } bottomRadius 1.0 #field SFFloat
height 2.0 #field SFFloat side TRUE #field SFBool bottom TRUE #field SFBool } Prof. Anselmo C. de Paiva - DEINF-UFMA

25 Prof. Anselmo C. de Paiva - DEINF-UFMA

26 Prof. Anselmo C. de Paiva - DEINF-UFMA

27 Nodo Cylinder Cylinder { } radius 1.0 #field SFFloat
height 2.0 #field SFFloat side TRUE #field SFBool top TRUE #field SFBool bottom TRUE #field SFBool } Prof. Anselmo C. de Paiva - DEINF-UFMA

28 Prof. Anselmo C. de Paiva - DEINF-UFMA

29 Prof. Anselmo C. de Paiva - DEINF-UFMA

30 Prof. Anselmo C. de Paiva - DEINF-UFMA

31 Nodo Sphere Sphere { } radius 1.0 #field SFFloat
Prof. Anselmo C. de Paiva - DEINF-UFMA

32 Prof. Anselmo C. de Paiva - DEINF-UFMA

33 Nodo Group Group { children [ ] #exposedField MFNode
bboxCenter #field SFVec3f bboxSize #field SFVec3f addChildren #eventIn MFNode removeChildren #eventOut MFNode Prof. Anselmo C. de Paiva - DEINF-UFMA

34 Prof. Anselmo C. de Paiva - DEINF-UFMA

35 Prof. Anselmo C. de Paiva - DEINF-UFMA

36 use a geometria “texto” no nodo “shape”
4 - Formas de Texto use a geometria “texto” no nodo “shape”

37 Nodo Texto Text { } string [ ] #exposedField MFString
length [ ] #exposedField MFFloat maxExtent 0.0 #exposedField SFFloat fontStyle NULL #exposedField SFNode } Prof. Anselmo C. de Paiva - DEINF-UFMA

38 Prof. Anselmo C. de Paiva - DEINF-UFMA

39 Use o campo translation do nodo Transform agrupado a uma forma
5 - Posicionando Formas Use o campo translation do nodo Transform agrupado a uma forma

40 Nodo Transform Transform { children [ ] #exposedField MFNode
translation #exposedField SFVec3f rotation #exposedField SFRotation scale #exposedField SFVec3f scaleOrientation #exposedField SFRotation bboxCenter #field SFVec3f bboxSize #field SFVec3f center #exposedField SFVec3f addChildern #eventIn MFNode removeChildren #eventIn MFNode Prof. Anselmo C. de Paiva - DEINF-UFMA

41 Transform { translation 0.0 2.0 0.0 children [ Shape {
#VRML V2.0 utf8 Transform { translation children [ Shape { appearance Appearance { material Material { } } geometry Cylinder { } } ] Prof. Anselmo C. de Paiva - DEINF-UFMA

42 Prof. Anselmo C. de Paiva - DEINF-UFMA

43 Prof. Anselmo C. de Paiva - DEINF-UFMA

44 campos “rotation” e “center”do nodo “Transform”
6 - Rotacionando Formas campos “rotation” e “center”do nodo “Transform”

45 Eixos de Rotação Prof. Anselmo C. de Paiva - DEINF-UFMA

46 Prof. Anselmo C. de Paiva - DEINF-UFMA

47 Valores para Eixos de Rotação Comuns
Y: Z: Prof. Anselmo C. de Paiva - DEINF-UFMA

48 Ângulos de Rotação Radianos 1 grau = 0.0175 radianos
360 graus = 6.3 radianos x graus = x* radianos Prof. Anselmo C. de Paiva - DEINF-UFMA

49 Prof. Anselmo C. de Paiva - DEINF-UFMA

50 Prof. Anselmo C. de Paiva - DEINF-UFMA

51 Prof. Anselmo C. de Paiva - DEINF-UFMA

52 Prof. Anselmo C. de Paiva - DEINF-UFMA

53 Prof. Anselmo C. de Paiva - DEINF-UFMA

54 7 - Escala

55 Prof. Anselmo C. de Paiva - DEINF-UFMA

56 Sintaxe Prof. Anselmo C. de Paiva - DEINF-UFMA

57 Prof. Anselmo C. de Paiva - DEINF-UFMA

58 Prof. Anselmo C. de Paiva - DEINF-UFMA

59 TimeSensor, PositionInterpolator, OrientationInterpolator
7 - Animação TimeSensor, PositionInterpolator, OrientationInterpolator

60 Animação requer dois elementos
Um relógio: Nodo TimeSensor Uma descrição de como as coisas mudam ao longo do tempo: Nodos PositionInterpolation e OrientationInterpolation Prof. Anselmo C. de Paiva - DEINF-UFMA

61 Animação Pode-se ligar a saída de um TimeSensor na entrada de um PositionInterpolation ou OrientationInterpolation e a saída destes nodos a um nodo Transform. Prof. Anselmo C. de Paiva - DEINF-UFMA

62 Relógio O campo eventOut time do TimeSensor indica a hora corrente.
Um TimeSensor pode ser iniciado ou parado pela definição de valores absolutos para startTime e stopTime Prof. Anselmo C. de Paiva - DEINF-UFMA

63 Tempo Fracionário Inicia em 0.0 e vai até 1.0
fraction_changed eventOut indica mudanças no tempo fracionário cycleInterval define a duração entre 0.0 e 1.0 campo loop = TRUE -> repete o ciclo Prof. Anselmo C. de Paiva - DEINF-UFMA

64 Posições-chave em tempo fracionário
Deve-se prover um valor de posição e/ou orientação para cada um dos instantes de tempo entre 0 e 1. Há infinitos instantes entre 0 e 1. Pode-se definir apenas algumas posições-chave e o interpolador calcula as demais. Prof. Anselmo C. de Paiva - DEINF-UFMA

65 Interpolação linear Prof. Anselmo C. de Paiva - DEINF-UFMA

66 Interpolação com múltiplas chaves
Prof. Anselmo C. de Paiva - DEINF-UFMA

67 Sintaxe: Nodo Time Prof. Anselmo C. de Paiva - DEINF-UFMA

68 Nodo PositionInterpolator
Prof. Anselmo C. de Paiva - DEINF-UFMA

69 Nodo OrientationInterpolator
Prof. Anselmo C. de Paiva - DEINF-UFMA

70 Prof. Anselmo C. de Paiva - DEINF-UFMA

71 Prof. Anselmo C. de Paiva - DEINF-UFMA

72 Animação de tamanho pode ser feita usando um nodo PositionInterpolator ligado com o eventIn set_scale de um objeto. Prof. Anselmo C. de Paiva - DEINF-UFMA

73 10 - Aparência de Materiais
Nodos Appearance, Material, ColorInterpolator e ScalarInterpolator

74 Prof. Anselmo C. de Paiva - DEINF-UFMA

75 Sombreamento Prof. Anselmo C. de Paiva - DEINF-UFMA

76 Prof. Anselmo C. de Paiva - DEINF-UFMA

77 Nodo Shape Prof. Anselmo C. de Paiva - DEINF-UFMA

78 Nodo Appearance Prof. Anselmo C. de Paiva - DEINF-UFMA

79 Nodo Material Prof. Anselmo C. de Paiva - DEINF-UFMA

80 Exemplo Group { children [ Shape {
appearance Appearance { material Material { diffuseColor } } geometry Sphere { } }, appearance Appearance { material Material { diffuseColor } } geometry Cylinder { radius 2.0 height 0.05 } appearance Appearance { material Material { diffuseColor } } geometry Cylinder { radius 0.15 height 5.0 } } ] Prof. Anselmo C. de Paiva - DEINF-UFMA

81 Nodo ColorInterpolator
Prof. Anselmo C. de Paiva - DEINF-UFMA

82 Nodo ScalarInterpolator
Prof. Anselmo C. de Paiva - DEINF-UFMA

83 11 - Grupos

84 Nodo Group Prof. Anselmo C. de Paiva - DEINF-UFMA

85 Nodo Switch Prof. Anselmo C. de Paiva - DEINF-UFMA

86 Nodo Billboard Prof. Anselmo C. de Paiva - DEINF-UFMA

87 12 - Importação de Arquivos

88 Nodo Inline Prof. Anselmo C. de Paiva - DEINF-UFMA

89 Prof. Anselmo C. de Paiva - DEINF-UFMA

90 13 - Construindo formas com pontos linhas e faces
PointSet, IndexedLineSet, IndexedfaceSet, CoordinateInterpolator

91 Prof. Anselmo C. de Paiva - DEINF-UFMA

92 Prof. Anselmo C. de Paiva - DEINF-UFMA

93 Prof. Anselmo C. de Paiva - DEINF-UFMA

94 0, 1, 2, 3, 0, -1, 4, 5, 6, 7, 4, -1, 0, 4, -1, 1, 5, -1, 2, 6, -1, 3, 7 Prof. Anselmo C. de Paiva - DEINF-UFMA

95 Prof. Anselmo C. de Paiva - DEINF-UFMA

96 0, 1, 2, 3, -1, 7, 6, 5, 4, -1, 0, 4, 5, 1, -1, 1, 5, 6, 2, -1, 2, 6, 7, 3, -1, 3, 7, 4, 0 Prof. Anselmo C. de Paiva - DEINF-UFMA

97 Prof. Anselmo C. de Paiva - DEINF-UFMA

98 Bordas suaves Prof. Anselmo C. de Paiva - DEINF-UFMA

99 Prof. Anselmo C. de Paiva - DEINF-UFMA

100 Prof. Anselmo C. de Paiva - DEINF-UFMA

101 Prof. Anselmo C. de Paiva - DEINF-UFMA

102 Prof. Anselmo C. de Paiva - DEINF-UFMA

103 Prof. Anselmo C. de Paiva - DEINF-UFMA

104 Prof. Anselmo C. de Paiva - DEINF-UFMA

105 Prof. Anselmo C. de Paiva - DEINF-UFMA

106 Prof. Anselmo C. de Paiva - DEINF-UFMA

107 14 - Superfícies ElevationGrid

108 Prof. Anselmo C. de Paiva - DEINF-UFMA

109 Prof. Anselmo C. de Paiva - DEINF-UFMA

110 Prof. Anselmo C. de Paiva - DEINF-UFMA

111 Prof. Anselmo C. de Paiva - DEINF-UFMA

112 15 - Toróides Extrusion

113 Características-chave
Perfil (cross section) Caminho (spine) Escala Orientação Prof. Anselmo C. de Paiva - DEINF-UFMA

114 Prof. Anselmo C. de Paiva - DEINF-UFMA

115 Prof. Anselmo C. de Paiva - DEINF-UFMA

116 Prof. Anselmo C. de Paiva - DEINF-UFMA

117 Prof. Anselmo C. de Paiva - DEINF-UFMA

118 Prof. Anselmo C. de Paiva - DEINF-UFMA

119 17 - Texturas

120 Prof. Anselmo C. de Paiva - DEINF-UFMA

121 Prof. Anselmo C. de Paiva - DEINF-UFMA

122 Prof. Anselmo C. de Paiva - DEINF-UFMA

123 Prof. Anselmo C. de Paiva - DEINF-UFMA

124 Prof. Anselmo C. de Paiva - DEINF-UFMA

125 Prof. Anselmo C. de Paiva - DEINF-UFMA

126 Prof. Anselmo C. de Paiva - DEINF-UFMA

127 Prof. Anselmo C. de Paiva - DEINF-UFMA

128 Prof. Anselmo C. de Paiva - DEINF-UFMA

129 23 - Neblina Nodo Fog

130 Atributos da neblina Cor (default: branco) Espessura
Tipo: Linear ou Exponential Prof. Anselmo C. de Paiva - DEINF-UFMA

131 Modo de criação de neblina
Não simula partículas em suspensão Quanto mais longe do usuário, mais a cor dos objetos se aproxima da cor da neblina Prof. Anselmo C. de Paiva - DEINF-UFMA

132 Background Não é afetado pela neblina
Prof. Anselmo C. de Paiva - DEINF-UFMA

133 Prof. Anselmo C. de Paiva - DEINF-UFMA

134 Prof. Anselmo C. de Paiva - DEINF-UFMA

135 24 - Sons

136 Formatos de Som Wave - Representação real do som
Midi - Instruções para tocar o som em um instrumento digital Midi é muito mais compacto do que Wave Prof. Anselmo C. de Paiva - DEINF-UFMA

137 Prof. Anselmo C. de Paiva - DEINF-UFMA

138 Prof. Anselmo C. de Paiva - DEINF-UFMA

139 Prof. Anselmo C. de Paiva - DEINF-UFMA

140 Prof. Anselmo C. de Paiva - DEINF-UFMA

141 25 - Controlando o Nível de Detalhe
Nodo LOD

142 Prof. Anselmo C. de Paiva - DEINF-UFMA

143 Prof. Anselmo C. de Paiva - DEINF-UFMA

144 Prof. Anselmo C. de Paiva - DEINF-UFMA

145 26 - Controlando o Ponto de Vista
Nodos Viewpoint e NavigationInfo

146 Viewpoint Como qualquer objeto, o ponto de vista pode ser movido sendo colocado como “child” de um nodo “Transform”. Prof. Anselmo C. de Paiva - DEINF-UFMA

147 Campo de Visão Prof. Anselmo C. de Paiva - DEINF-UFMA

148 Viewpoint “jump” e “no-jump”
Jump - quando o ponto de vista é mudado, a visão do usuário também muda No-Jump - não há mudança da visão com a troca do viewpoint, mas apenas quando esse se movimentar depois da troca. Exemplo: elevador Prof. Anselmo C. de Paiva - DEINF-UFMA

149 Avatar Representação do usuário no mundo virtual Características:
aparência / dimensões como se move Prof. Anselmo C. de Paiva - DEINF-UFMA

150 Modos de movimentação Walk Fly Examine None
Prof. Anselmo C. de Paiva - DEINF-UFMA

151 Dimensões de um avatar width - quão perto um avatar pode chegar de um objeto antes de colidir com ele height - a que distância do chão o avatar fica quando caminha sobre ele step height - especifica a altura máxima de um obstáculo que um avatar pode passar quando estiver caminhando Prof. Anselmo C. de Paiva - DEINF-UFMA

152 Prof. Anselmo C. de Paiva - DEINF-UFMA

153 Prof. Anselmo C. de Paiva - DEINF-UFMA

154 Prof. Anselmo C. de Paiva - DEINF-UFMA

155 VisibilitySensor, ProximitySensor, Collision
27 - Sensores de Usuário VisibilitySensor, ProximitySensor, Collision

156 Prof. Anselmo C. de Paiva - DEINF-UFMA

157 Prof. Anselmo C. de Paiva - DEINF-UFMA

158 Prof. Anselmo C. de Paiva - DEINF-UFMA

159 Prof. Anselmo C. de Paiva - DEINF-UFMA

160 28 - Portais Anchor

161 Prof. Anselmo C. de Paiva - DEINF-UFMA

162 Seleção de pontos de vista: #
Prof. Anselmo C. de Paiva - DEINF-UFMA

163 29 - Informações sobre o mundo
WorldInfo

164 Prof. Anselmo C. de Paiva - DEINF-UFMA

165 30 - Scripts

166 Nodo Script tem seus próprios campos, eventos de entrada e de saída, conforme definido pelo programador Prof. Anselmo C. de Paiva - DEINF-UFMA

167 Campos Script { } ... field tipoDoCampo nomeDoCampo valorInicial
Prof. Anselmo C. de Paiva - DEINF-UFMA

168 Exemplos Prof. Anselmo C. de Paiva - DEINF-UFMA

169 Mais Exemplos Prof. Anselmo C. de Paiva - DEINF-UFMA

170 Prof. Anselmo C. de Paiva - DEINF-UFMA

171 Evento de Entrada Script { } ... eventIn tipoDoEvento nomeDoEvento
Prof. Anselmo C. de Paiva - DEINF-UFMA

172 Prof. Anselmo C. de Paiva - DEINF-UFMA

173 Evento de Saída Script { } ... eventOut tipoDoEvento nomeDoEvento
Prof. Anselmo C. de Paiva - DEINF-UFMA

174 Usando Campos e Eventos em uma Definição de Interface
Script { field SFFloat gravity -9.8 field SFVec3f velocity field SFVec3f position eventIn SFVec3f set_position eventOut SFVec3f position_changed eventIn SFFloat set_fraction } Prof. Anselmo C. de Paiva - DEINF-UFMA

175 Para definir um exposed field
Defina o field (ex. position) Defina o eventIn (ex. set_position) Defina o eventOut (ex. position_changed) Prof. Anselmo C. de Paiva - DEINF-UFMA

176 Scripts podem ser escritos em Java ou JavaScript
url “myscript.js” field ... eventIn ... eventOut ... } Prof. Anselmo C. de Paiva - DEINF-UFMA

177 Incluindo scripts no nodo
url “javascript: function set_position (pos,time) { position = pos ; } field ... eventIn ... eventOut ... Prof. Anselmo C. de Paiva - DEINF-UFMA

178 Controle de execução tipicamente um script executa sempre que um eventIn recebe um valor, computa alguma coisa e coloca o resultado em um ou mais eventOuts Prof. Anselmo C. de Paiva - DEINF-UFMA

179 mustEvaluate se a avaliação do script não pode ser postergada, então o campo mustEvaluate deve ser true. Prof. Anselmo C. de Paiva - DEINF-UFMA

180 directOutput quando um script precisa manipular mais do que suas variáveis de entrada, deve-se deixar directOutput true. neste caso, perde-se performance, mas é possível manipular a estrutura do mundo vrml Prof. Anselmo C. de Paiva - DEINF-UFMA

181 API - Application Programming Interface
Características: acesso aos campos da interface e eventOut’s do nodo script conversão entre os tipos VRML e os da linguagem habilidade de iniciar e terminar um script e responder a eventos acesso ao browser para mudar a estrutura de um mundo ou carregar um novo mundo Prof. Anselmo C. de Paiva - DEINF-UFMA

182 Acessando Campos e eventOut’s
Em Java a API fornece classes para acessar os campos e eventOut’s: getField e getEventOut Em JavaScript a API automaticamente cria uma interface para cada campo ou eventOut. Prof. Anselmo C. de Paiva - DEINF-UFMA

183 Eventos Eventos recebidos tem dois componentes:
Event value - um valor, como uma coordenada 3d. Event time stamp - o valor de tempo absoluto no qual o evento foi gerado. Prof. Anselmo C. de Paiva - DEINF-UFMA

184 Conversão entre tipos Em Java a API fornece um conjunto de classes para os tipos VRML Em javaScript a API automaticamente converte os tipos VRML para tipos JavaScript Prof. Anselmo C. de Paiva - DEINF-UFMA

185 Prof. Anselmo C. de Paiva - DEINF-UFMA

186 Criando um Interpolador
DEF Mover Script { url “move1.js” eventIn SFFloat set_fraction eventOut SFVec3f value_changed } Prof. Anselmo C. de Paiva - DEINF-UFMA

187 Rotina para mover em linha
function set_fraction(fraction,eventTime) { value_changed[0] = fraction; value_changed[1] = 0.0; value_changed[2] = 0.0; } Prof. Anselmo C. de Paiva - DEINF-UFMA

188 Rotina para interpolador senoidal
function set_fraction(fraction,eventTime) { value_changed[0] = fraction; value_changed[1] = Math.sin(fraction*6.28); value_changed[2] = 0.0; } Prof. Anselmo C. de Paiva - DEINF-UFMA

189 Rotina para um interpolador helicoidal
function set_fraction(fraction,eventTime) { value_changed[0] = fraction; value_changed[1] = Math.sin(fraction*6.28); value_changed[2] = Math.cos(fraction*6.28); } Prof. Anselmo C. de Paiva - DEINF-UFMA

190 Interpolador helicoidal parametrizado
Prof. Anselmo C. de Paiva - DEINF-UFMA


Carregar ppt "Universidade Federal do Ma"

Apresentações semelhantes


Anúncios Google