elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  No puedo usar luces con mis shape3D :( [SOLUCIONADO]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: No puedo usar luces con mis shape3D :( [SOLUCIONADO]  (Leído 1,802 veces)
MidBifroid

Desconectado Desconectado

Mensajes: 7


Ver Perfil
No puedo usar luces con mis shape3D :( [SOLUCIONADO]
« en: 8 Agosto 2013, 02:34 am »

pues eso, llevo varios dias intentandolo

ya he visto consejos de estos links
http://stackoverflow.com/questions/2245253/java-3d-unable-to-get-shape3d-to-be-affected-by-lights
http://stackoverflow.com/questions/4657504/java3d-lighting-problem
http://www.vrupl.evl.uic.edu/LabAccidents/java3d/lesson10/indexb.html

pero no hay manera

las figuras prefabricadas como las esferas, cubos etc, si les afecta la luz, pero las figuras que creo yo con shapes no les afecta la luz

he probado ya bastantes cosas, en el mismo branchgroup y en otra rama distinta, me rindo, espero que me ayuden y gracias de antemano :(

Aqui el codigo del Universo
Código
  1.  
  2. private BranchGroup root = new BranchGroup();
  3. private void _initialize() {
  4.        getViewingPlatform().setNominalViewingTransform();
  5.        addBranchGraph(root);
  6.        BranchGroup g = new BranchGroup();
  7.        Shape3D s = new UnisexBreastShape3D();
  8.        DirectionalLight l = new DirectionalLight(true, new Color3f(Color.white), new Vector3f(-1,-1,-1));
  9.        AmbientLight a = new AmbientLight(true, new Color3f(Color.white));
  10.        BoundingSphere sph = new BoundingSphere(new Point3d(0d,0d,0d),100d);
  11.        l.setInfluencingBounds(sph);
  12.        a.setInfluencingBounds(sph);
  13.        g.addChild(s);
  14.        g.addChild(l);
  15.        g.addChild(a);
  16.       root.addChild(g);
  17.  

Y aqui el codigo del shape, por cierto, que disfruten de mi clase shape3d
Código
  1. QuadArray quad = new QuadArray(4*22, QuadArray.NORMALS | QuadArray.COORDINATES | QuadArray.COLOR_4 | QuadArray.ALLOW_COLOR_READ | QuadArray.ALLOW_COLOR_WRITE | QuadArray.ALLOW_COORDINATE_READ | QuadArray.ALLOW_COORDINATE_WRITE | QuadArray.ALLOW_TEXCOORD_READ | QuadArray.ALLOW_TEXCOORD_WRITE);
  2.  
  3.        quad.setCoordinates(0, new Point3d[]{
  4.            new Point3d(-0.8, 0.6, 0.2),
  5.            new Point3d(-0.6, -0.4, 0.2),
  6.            new Point3d(0.0, -0.4, 0.4),
  7.            new Point3d(0.0, 0.4, 0.4),
  8.            new Point3d(0.9, 0.8, -0.1),
  9.            new Point3d(0.7, -0.4, 0.0),
  10.            new Point3d(0.7, -0.4, -0.15),
  11.            new Point3d(0.9, 0.8, -0.25),
  12.            new Point3d(-0.9, 0.8, -0.25),
  13.            new Point3d(-0.7, -0.4, -0.15),
  14.            new Point3d(-0.7, -0.4, 0.0),
  15.            new Point3d(-0.9, 0.8, -0.1),
  16.            new Point3d(0.8, 0.6, 0.2),
  17.            new Point3d(0.6, -0.4, 0.2),
  18.            new Point3d(0.7, -0.4, 0.0),
  19.            new Point3d(0.9, 0.8, -0.1),
  20.            new Point3d(-0.9, 0.8, -0.1),
  21.            new Point3d(-0.7, -0.4, 0.0),
  22.            new Point3d(-0.6, -0.4, 0.2),
  23.            new Point3d(-0.8, 0.6, 0.2),
  24.            new Point3d(-0.75, 0.6, -0.4),
  25.            new Point3d(-0.6, -0.4, -0.3),
  26.            new Point3d(-0.7, -0.4, -0.15),
  27.            new Point3d(-0.9, 0.8, -0.25),
  28.            new Point3d(0.75, 0.6, -0.4),
  29.            new Point3d(0.6, -0.4, -0.3),
  30.            new Point3d(0.0, -0.4, -0.4),
  31.            new Point3d(0.0, 0.7, -0.5),
  32.            new Point3d(0.9, 0.8, -0.25),
  33.            new Point3d(0.7, -0.4, -0.15),
  34.            new Point3d(0.6, -0.4, -0.3),
  35.            new Point3d(0.75, 0.6, -0.4),
  36.            new Point3d(0.0, -1.4, 0.0),
  37.            new Point3d(0.0, -1.4, 0.0),
  38.            new Point3d(0.0, -1.4, 0.0),
  39.            new Point3d(0.0, -1.4, 0.0),
  40.            new Point3d(-0.9, 0.8, -0.25),
  41.            new Point3d(-0.9, 0.8, -0.1),
  42.            new Point3d(0.0, 0.8, 0.1),
  43.            new Point3d(0.0, 1.0, -0.2),
  44.            new Point3d(0.0, 0.8, 0.1),
  45.            new Point3d(0.9, 0.8, -0.1),
  46.            new Point3d(0.9, 0.8, -0.25),
  47.            new Point3d(0.0, 1.0, -0.2),
  48.            new Point3d(0.9, 0.8, -0.1),
  49.            new Point3d(0.0, 0.8, 0.1),
  50.            new Point3d(0.0, 0.4, 0.4),
  51.            new Point3d(0.8, 0.6, 0.2),
  52.            new Point3d(-0.9, 0.8, -0.1),
  53.            new Point3d(-0.8, 0.6, 0.2),
  54.            new Point3d(0.0, 0.4, 0.4),
  55.            new Point3d(0.0, 0.8, 0.06),
  56.            new Point3d(0.0, 0.7, -0.5),
  57.            new Point3d(-0.75, 0.6, -0.4),
  58.            new Point3d(-0.9, 0.8, -0.25),
  59.            new Point3d(0.0, 1.0, -0.2),
  60.            new Point3d(0.9, 0.8, -0.25),
  61.            new Point3d(0.75, 0.6, -0.4),
  62.            new Point3d(0.0, 0.7, -0.5),
  63.            new Point3d(0.0, 1.0, -0.2),
  64.            new Point3d(0.0, 0.4, 0.4),
  65.            new Point3d(0.0, -0.4, 0.4),
  66.            new Point3d(0.6, -0.4, 0.2),
  67.            new Point3d(0.8, 0.6, 0.2),
  68.            new Point3d(0.0, 0.7, -0.5),
  69.            new Point3d(0.0, -0.4, -0.4),
  70.            new Point3d(-0.6, -0.4, -0.3),
  71.            new Point3d(-0.75, 0.6, -0.4),
  72.            new Point3d(0.0, -0.4, 0.4),
  73.            new Point3d(0.0, -0.8, -0.0),
  74.            new Point3d(0.7, -0.4, 0.0),
  75.            new Point3d(0.6, -0.4, 0.2),
  76.            new Point3d(-0.7, -0.4, 0.0),
  77.            new Point3d(0.0, -0.8, 0.0),
  78.            new Point3d(0.0, -0.4, 0.4),
  79.            new Point3d(-0.6, -0.4, 0.2),
  80.            new Point3d(0.7, -0.4, 0.0),
  81.            new Point3d(0.0, -0.8, 0.0),
  82.            new Point3d(0.6, -0.4, -0.3),
  83.            new Point3d(0.7, -0.4, -0.15),
  84.            new Point3d(0.6, -0.4, -0.3),
  85.            new Point3d(0.0, -0.8, 0.0),
  86.            new Point3d(-0.6, -0.4, -0.3),
  87.            new Point3d(0.0, -0.4, -0.4),
  88.            new Point3d(-0.6, -0.4, -0.3),
  89.            new Point3d(0.0, -0.8, 0.0),
  90.            new Point3d(-0.7, -0.4, 0.0),
  91.            new Point3d(-0.7, -0.4, -0.15)
  92.        });
  93.  
  94.  
  95.  
  96.        Color carne = new Color(255,208,144);
  97.        Appearance app = new Appearance();
  98.  
  99.        Material mat = new Material();
  100.        mat.setCapability(Material.ALLOW_COMPONENT_WRITE);
  101.        mat.setDiffuseColor(new Color3f(carne));
  102.        mat.setAmbientColor(new Color3f(new Color(32,24,0)));
  103.        //mat.setEmissiveColor(new Color3f(Color.blue));
  104.        mat.setSpecularColor(new Color3f(Color.white));
  105.        mat.setShininess(2);
  106.        mat.setLightingEnable(true);
  107.  
  108.        app.setCapability(Appearance.ALLOW_MATERIAL_WRITE);
  109.        app.setMaterial(mat);
  110.        this.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE);
  111.        this.setAppearance(app);
  112.  
  113.  
  114.        setGeometry(quad);
  115.  
  116.  

El resultado es que el ambient funciona, pero las direccionales no, las luces no hacen ningun efecto 3D, tratan a mi shape como si fuera plano :(


« Última modificación: 8 Agosto 2013, 19:35 pm por MidBifroid » En línea

MidBifroid

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: No puedo usar luces con mis shape3D :(
« Respuesta #1 en: 8 Agosto 2013, 19:34 pm »

que estupidez, creia que con decir las cosas solo 1 vez ya bastaba, pero por lo visto hay que tratar a java como si fuera una persona estupida normal y corriente

primero tienes que decirle que vas a hacer un shape a base de quads y le indicas los puntos de cada quad

logicamente habra quads, cada uno de cada forma y orientacion, al gusto

pero luego hay que volver a decirle a java, ei, este quad tiene un plano asi, y otro asi, y otro asi... como si no lo supiera el tonto

Código
  1. for (int x = 0; x < points3d.length; x++) {
  2.            quad.setNormal(x, new Vector3f((float) points3d[x].getX(), (float) points3d[x].getY(), (float) points3d[x].getZ()));
  3.        }

ALGUIEN ME EXPLICA POR QUE SEMEJANTE ESTUPIDEZ ?


En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
No puedo usar luces con mis shape3D :( [SOLUCIONADO]
« Respuesta #2 en: 17 Agosto 2013, 15:26 pm »

El mensaje 'No puedo usar luces con mis shape3D :( [SOLUCIONADO]' fue bloqueado
Tópico superado. Gracias por traerlo a nuestro foro!
Leer reglas:
http://foro.elhacker.net/reglas
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Usar la DLL SciLexer en VB (Solucionado)
Programación Visual Basic
aaronduran2 4 1,992 Último mensaje 10 Julio 2008, 19:04 pm
por aaronduran2
Usar variable PHP en HTML [SOLUCIONADO]
PHP
novalida 6 26,866 Último mensaje 7 Febrero 2010, 18:53 pm
por dimitrix
BATCH: Como puedo usar dos comandos en una sola linea?[Solucionado]
Scripting
gh1E 9 11,904 Último mensaje 7 Julio 2010, 00:37 am
por gh1E
Que Docking usar [SOLUCIONADO]
Java
Afsoon 3 2,414 Último mensaje 1 Diciembre 2010, 05:20 am
por cyberserver
Realmente tengo que usar clases cuando puedo simplemente usar Querys?
Java
Aikanáro Anário 3 3,292 Último mensaje 27 Noviembre 2011, 01:54 am
por sapito169
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines