Matemática e Computação
 

Mensagens
Não te abandones em lugares onde a luz da tua harmonia não esteja presente.

 


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)