Hasta el momento todolo que se ha visto a nivel de pintado de las figuras es l
a información que se da en el ColoringAttributes de la Apariencia. De
esta forma no se tiene un buen nivel de realismo, Es por eso que en en esta sección
Veremos como Java3D maneja los efectos de la Luz.
Java3D basa completamente sus modelos de 'Shading' en OpenGL, asi que mas información
se puede encontrara en la documentación de OpenGL.
Modelo de Iluminación
Primero que nada se debe decir que al igual que en OpenGL, el modelo sólo simula los efectos
de la luz sobre objetos independientes, por lo que no hay sombras ni reflexiones; para lograr estos
efectos se deben simular dibujando poligonos que aparezcan en la escena como sombras o reflejos.
El modelo de iluminación tres tipos de reflexiones de la luz, la ambiental, la difusa
y la especular. Para entender mejor estos terminos se presenta la siguiente ilustración
Los colores en Java3D se especifican usando los valores RGB (red, green, blue), y para casos esciales se
puede utililzar el RGBA (RGB mas Alpha, transparencia).
Los tipos de sombreado aceptados por Java3D son Flat y Gouraud; esta caracteristica se debe
setear en el ColoringAttributes, de la apariencia de los objetos. Las diferencias son claras en la
siguiente figura.
A continuación un ejemplo mínimo usando la receta
Appearance createAppearance() { Appearance appear = new Appearance(); Material material = new Material(); appear.setMaterial(material); //2.2 poner material en la apariencia return appear; } BranchGroup createScene (){ BranchGroup scene = new BranchGroup(); scene.addChild(new Sphere(0.5f, Sphere.GENERATE_NORMALS, //2.1 generar normales del objeto createAppearance())); AmbientLight lightA = new AmbientLight(); lightA.setInfluencingBounds(new BoundingSphere()); //1.1 Bounds scene.addChild(lightA); //1.2 ponerlo en el grafo return scene; }
Y el grafo correspondiente.
Existen cuatro tipos de fuentes de luz, AmbientLight, PointLight,
DirectionalLighty SpotLight; para cada una de ellas veremos sus constructores.
Los materiales presentan las cracteristicas reflectivas de un objeto, el cual es sumado
a la información de colores dada por las fuentes de luz. A cotinuacion un resumen de los constructores
y métodos de la clase Material