8.2 - Nó MovieTexture
Este
nó especifica a posição do filme a ser usado
texturizando a forma. O filme deve estar no formato MPEG, como também
a imagem deve ser repetida verticalmente, ou horizontalmente, ao longo
de cada uma das faces da forma.
Os seguintes campos estão
atuais neste nó:
loop - especifica se o filme deve rodar repetidamente;
speed - especifica a velocidade de execução do filme;
As
velocidades negativas rodam a película para trás.
startTime - especifica o instante inical de começar
o filme em segundos.
stopTime - especifica o tempo de parada do filme em
segundos.
URL - que especifica o endereço do filme. Você pode especificar
posições múltiplas se você quiser, o browser
procurará dados naquelas posições na ordem decrescente
de preferência.
repeatS - especifica se o filme deve ser repetido verticalmente.
repeatT - especifica se o filme deve ser repetido horizontalmente.
Syntax
do nó MovieTexture :
MovieTexture
{
loop
FALSE
speed
1
startTime
0
stopTime
0
url
[ ]
repeatS
TRUE
repeatT
TRUE
}
O
nó MovieTexture tem dois campos eventOut: duration_changed
e isActive. Uma duration_changed é gerada quando a URL atual
é mudada, o valor para este evento é o tempo em segundos
do som. O evento isActive recebe um valor TRUE quando o filme começa
a rodar, quando o filme para o evento isActive recebe FALSE.
8.3 - Nó PixelTexture
Este
nó especifica a posição da imagem a ser usada
texturizando a forma, bem como se a imagem dever ser repetida verticalmente,
ou horizontalmente, ao longo de cada uma das faces da forma.
Três
campos estão presentes neste nó:
image
- que define a imagem usando pixels.
repeatS
- que especifica se a imagem deve ser repetida verticalmente.
repeatT
- que especifica se a imagem deve ser repetida horizontalmente.
Os
primeiros três valores do campo image definem a largura
da imagem (em pixels), a altura da imagem (m pixels), e o número
de bytes usados por cada pixel.
Os
valores possíveis para o número de bytes são:
1:
Grayscale
2: Grayscale com canal alfa para transparência
3: RGB
4:
RGB com canal alfa para transparência
Todos
os campos são opcionais, os valores defaut que estão
sendo aplicados nos campos não estão especificado.
Nota: (1) se você não especificar os
campos da imagem, nenhuma textura ocorre.
(2)
Especificar um pixel da imagem pode parecer como um trabalho duro,
porém alguns efeitos interessantes podem ser conseguidos com
pouco esforço.
Syntax:
PixelTexture
{
image 0 0
0
repeatS TRUE
repeatT TRUE
}
Exemplo
146: Exempo de PixelTexture.
Viewpoint
{
description
"PixelTexture"
position 0
0 5
}
Background {
groundColor
[ 0.8 0.8 1 ]
skyColor [
0.8 0.8 1 ]
}
NavigationInfo {
type [ "EXAMINE"
"ANY" ]
}
Shape {
appearance
Appearance {
texture
PixelTexture {
image
1 2
3 0xFFFF00 0xFF0000
}
}
geometry DEF
SQUARE IndexedFaceSet {
coordIndex
[ 0, 1, 2, 3 ]
coord
Coordinate {
point
[ -1.5 -1 0, 1.5 -1 0, 1.5 1 0, -1.5 1 0 ]
}
}
}
Exemplo 147: Exempo
de PixelTexture. Repita o exemplo anterior com
image
2 1
3 0x255 0xFF6600
Exemplo 148:
Exemplo de ImageTexture com animação.
Transform
{
translation
0 0 -15
rotation
1 0 0 1.57
children
[
Shape
{
appearance
Appearance {
material
Material {
diffuseColor
1 0 1
}
texture
ImageTexture {
url
["C:/VRML/Textura/imagemTextura10.jpg"]
}
textureTransform
DEF MT TextureTransform {
center
-0.5
-0.5
#
0.0 -1.0,
-1.0 -1.0,
-1.0
0.0
scale
2.5
2.5
}
}
geometry
Box {
size
10 10 10
}
}
]
}
DEF TT TimeSensor {
cycleInterval
5
loop
TRUE
}
DEF OI ScalarInterpolator {
key
[0 0.5 1]
keyValue
[ 0, 3.14, 6.28 ]
}
ROUTE TT.fraction_changed TO OI.set_fraction
ROUTE OI.value_changed TO MT.rotation
8.4
- Text
O nó Text pemite adicionar textos 2D ao mundo VRML.
O nó FontStyle define tamanho, direção, fonte
e estilo de fonte usados na exibição do texto.
Sintaxe
do Text
Text {
string
[]
fontStyle
NULL
length
[]
maxExtent
0.0
}
Os caracteres do texto são determinados no campo string,
enquanto length refere-se ao "tamanho"
de cada caracter do texto dentro do sistema local de coordenadas.
Porém, se a string é muito curta, ela é expandida
( o texto é escalonado ou acrescentam-se espaços em
branco entre as letras) e, se muito longa, é comprimida.
O
campo maxExtent limita e comprime o
texto: se o seu tamanho for maior que maxExtent, o texto é
comprimido, caso contrário, não há compressão.
O campo maxExtent é medido na
horizontal para textos na horizontal (em FontStyle Node: horizontal
= TRUE ) e na vertical para textos na vertical (horizontal = FALSE).
O campo fontStyle, por sua vez, contém
o nó FontStyle. Este define o estilo do texto a ser escrito,
podendo-se especificar um dos três tipos de letra (serif,
sans-serif ou typewriter/fixed-width), bem como se o texto ficará
normal (plain roman), em negrito (bold) ou em itálico (italic)
e se na horizontal ou vertical.
O
exemplo a seguir, esclarece melhor a sintaxe deste nó:
Exemplo 149: Exemplo do
nó Text.
Viewpoint
{ position 9 3 17 }
Transform
{
translation
0 3 0
children
[
Shape
{
geometry
Text {
string "Curso de VRML"
fontStyle
FontStyle {
size
2.5
family "TYPEWRITER" # Sempre maiúscula e entre aspas
style "ITALIC" # Sempre maiúscula e entre aspas
}
}
}
]
}
Exemplo
150: Disco
voador (arquivo.wrl)