miércoles, 28 de enero de 2009

Poner una imágen como textura en Java 3D

Como siempre programando en Java3D, cree un box, pero me dije, ¿Porqué el box no puede tener como textura una foto o imágen que desee?.

Terminando de cuestionarme, investigue por internet como colocar las texturas y por fin llegue a mi respuesta. Se deben crear ciertos objetos que serán parámetros para las figuras geométricas.

  • Crear un objeto para el tipo de textura:
  • int paratextura = Primitive.GENERATE_NORMALS + Primitive.GENERATE_TEXTURE_COORDS;
  • /*Nota: Esta sentencia pide ciertas librerías, las cuales en Netbeans 5 ó superior indica cuales son las que deben declararse o incluirse.*/
  • Crear objetos de Carga de textura,textura y apariencia:
  • TextureLoader loader=null;
  • Texture texture=null;
  • Appearance ap=null;
  • Inicializar con parámetros:
  • loader = new TextureLoader("pared.jpg","INTENSITY", new Container());
  • /*Nota: "pared.jpg" es la imagen que deseamos sea la textura para nuestra figura geométrica.*/
  • texture = loader.getTexture();
  • ap = new Appearance();
  • ap.setTexture(texture);
  • Ahora damos la textura a la figura geométricacon los parámetros ya creados
  • Box cabeza=new Box(1.2f,1.25f,1.25f,paratextura,ap);
  • /*Nota: Ahora ingresamos el primer parámetro de paratextura, y el otro porsupuesto de apariencia, y listo.*/

Y podemos ver los resultados,  para una pared que en si es un box:

Saludos....

12 comentarios:

Eliabd dijo...

jaja, si te gusto mucho ese proyecto verdad, pero si vos, que calidad estubo es proyecto. de repente te haces un juego con puro java 3D

fagoner dijo...

uhmmmm puede ser jejejeje
hice uno sencillo para arqui2, al rato y lo publico, bueno veremos

Anónimo dijo...

llevaba horas buscando eso, no encontraba como hacerlo, esta muy bueno el ejemplo, gracias

Wilson Rolando Crespo Omonte dijo...

las dimensiones de la imagen deben ser potencia de 2, aunque en las nuevas versiones de java3d ya esta salvado este incoveniente, en windows carga cualquiera sea la dimension, pero en linux aun no he comprobado que sea igual. Atte. Wilson Crespo (www.cresposoft.com)

Anónimo dijo...

Soy nuevo en esto y me da el siguiente error :

Position.java:82: cannot find symbol
symbol : class container
location: class Position
loader = new TextureLoader("tierra.bmp","INTENSITY", new container());

Podriais decirme que libreria podria faltarme? me hacen programar a pelo con gedit :O

Jose Abelardo Castañeda dijo...

podras subir un ejemplo mas preciso
con codigo

juanmsalamanca dijo...

Me sirve harto para un proyecto pero si tuviera que colar una imagen diferente en cada cara del cubo como loa ria?

juanmsalamanca dijo...

Me sirve harto para un proyecto pero si tuviera que colar una imagen diferente en cada cara del cubo como loa ria?

erick dijo...

publicare uno

Anónimo dijo...

Muy bueno no sabia que 3D tuviera la clase Box, gracias!!

Unknown dijo...

Muy bueno...disculpa y si quisiera poner una imagen diferente en cada cara del cubo???

Anónimo dijo...

En que lugar puedo poner la imagen para que el nedbeans la pueda cojer? gracias