sábado, 18 de mayo de 2013


 Nodo Billboard


El nodo Billboard permite crear un grupo con un sistema de coordenadas especiales, ya que a través del campo axisOfRotation (eje de rotación) indicamos el eje sobre el que a de girar el objeto, de forma que, siempre esté de cara al espectador.
 Todos los hijos agrupados mediante este nodo serán visualizados.  



Sintaxis: 
Billboard{   


   axisOfRotation  Eje_X  Eje_Y  Eje_Z   

   children[...]   

  

     Al igual que para el campo rotate del nodo transform, únicamente uno de los ejes puede tomar como valor la unidad, permaneciendo el resto a cero:  


  


Rotación sobre el eje X
1.0
0.0
0.0
Rotación sobre el eje Y
0.0
1.0
0.0
Rotación sobre el eje Z
0.0
0.0
1.0
 

  


  

Poniendo nombres propios a los nodos:  

  
     Hay una solución prevista para simplificar las repeticiones de objetos dentro de un escenario virtual. Esta solución consiste en asignar un nombre arbitrario al nodo que se piensa repetir en el código.  

     Supongamos, por ejemplo, que se van a utilizar repetidamente en un escenario unos cilindros exactamente iguales (que podrían ser las columnas de una casa).Dichos cilindros tendrán el siguiente código:   


 

 Shape {  


      appearance Appearance {  

           material Material { }  

      }  

      geometry Cylinder {  
           height 2.0  
           radius 0.5  
      }  
 }

 
(Este es el código de un cilindro con la apariencia por defecto, de 2 unidades de alto y una base de radio 0.5)   



     Se puede definir, para el ámbito de un documento VRML, que este tipo de cilindro tenga un nombre arbitrario, por ejemplo ColumnaRepetida (o como se desee, con tal de que comience por mayúscula), de la siguiente manera:   


  


 DEF ColumnaRepetida Shape {  


      appearance Appearance {  

           material Material { }  

      }  

      geometry Cylinder {  
           height 2.0  
           radius 0.5  
      }  
 }

 
     Entonces, cada vez que se quiera usar este nodo en otra parte del documento, basta con poner lo siguiente:  
 USE ColumnaRepetida
 
     En el ejemplo anterior de la caja y el cono, aparece el nodo Appearance repetido. Vamos a definirlo, en la primera ocasión que se utiliza con el nombre, "PorDefecto" y la segunda vez que se usa lo invocaremos mediante el comando USE:  
 #VRML V2.0 utf8  


 #Ejemplo de agrupación de una caja y un cono,  

 #haciendo uso de los comandos DEF y USE. 

 Group {  


    children [  

       Shape {  

          appearance DEF PorDefecto Appearance {  

               material Material {   }  
          }  
          geometry Box {  
               size 2.0 0.5 3.0  
          }  
       },  
       Shape {  
          appearance USE PorDefecto  
          geometry Cone {  
               height 3.0  
               bottomRadius 0.75  
          }   
       }  
    ]  
 }

 
     En este caso concreto, la simplificación no ha sido muy grande (sólo un par de líneas menos de código), pero ha servido para ilustrar el concepto. 

No hay comentarios:

Publicar un comentario