3 passos para construir um Java 3D World

Em poucos passos, você pode começar a criar um programa 3D relativamente simples no JavaFX que exibe o mundo tridimensional (um exemplo é mostrado abaixo). Como você pode ver, este espaço 3D inclui quatro formas: uma esfera, um cubo, um cilindro, e uma pirâmide. Esta pequena lista mostra como começar com um cilindro.

Colocar em seu tampão de pensamento, como este exemplo é bastante técnica às vezes, e muitos dos conceitos relacionados com a construção de mundos 3D pode ser confuso, especialmente se esta é sua primeira experiência com programação em 3D.

Um exemplo de programa 3D em JavaFX.
Um exemplo de programa 3D em JavaFX.

Passo um: Adicionar um cilindro

Nesta etapa, você adiciona um objeto básico 3D para o seu mundo. JavaFX fornece três formas básicas que você pode adicionar: cilindros, caixas e esferas. Começar pela adição de um cilindro:

cilindro cilindro = new cilindro (100,50) -root.getChildren () adicionar (cilindro). -

o Cilindro construtor de classe aceita dois argumentos: o raio do cilindro e a sua altura. Este exemplo cria um cilindro aproximadamente a forma de um disco de hóquei, quatro vezes tão grande como é tall- seguida, ele adiciona o cilindro para o nó raiz da cena.

Neste ponto, o cilindro existe no mundo, mas não é visível. Com base no que você sabe de formas 2D, você pode ser tentado a torná-lo visível, adicionando uma cor de preenchimento (setFill) Ou uma cor de traço (setStroke). Mas isso não é como objetos 3D trabalho. No passo seguinte, a descobrir como aplicar um material para a superfície do cilindro de modo que será visível na cena.

Etapa dois: Criar um material

Tornando as faces de um objeto 3D é muito mais complicado do que renderizar objetos planos, bidimensionais. Para um objeto 2D, basta aplicar um Pintura objeto através do setFill método. A tinta pode ser uma cor simples, um gradiente de cor, ou uma imagem.

Para objetos em 3D, você não aplicar a tinta. Em vez disso, você aplicar um objeto especial chamado de material de Phong, representado pela PhongMaterial classe. Um material Phong (nomeado após Bui Tuong Phong, um pioneiro especialista em computação gráfica na década de 1970) fornece os meios pelos quais as faces de um objeto 3D são realisticamente prestados.

O código a seguir cria um material Phong simples baseada em dois tons de azul e, em seguida, aplica-se o material para o cilindro:

PhongMaterial Bluestuff = new PhongMaterial()-blueStuff.setDiffuseColor(Color.LIGHTBLUE)-blueStuff.setSpecularColor(Color.BLUE)-cylinder.setMaterial(blueStuff)-

Depois de o material Phong foi aplicada ao cilindro, o cilindro será visível dentro da cena, como mostrado.

O cilindro 3D com um material Phong.
O cilindro 3D com um material Phong.

Etapa três: Traduzir o cilindro

Você, sem dúvida notado que o cilindro não parece muito tridimensional. Isso é porque você está olhando para ele borda-: A câmera está apontando diretamente na intersecção da xey eixos, e o cilindro é centrado naquele mesmo local.

Para ganhar alguma perspectiva sobre o cilindro, você pode movê-lo para um local diferente no espaço 3D, traduzindo o x, y, e z-coordenadas. Por exemplo:

cylinder.setTranslateX (-200) -cylinder.setTranslateY (200) -cylinder.setTranslateZ (200) -

Aqui, o cilindro 200 é movido para a esquerda unidades, 200 unidades de deslocamento, e 200 unidades de distância a partir da câmara. A visão resultante se parece mais com um cilindro, como você pode ver aqui.

O cilindro 3D traduzido.
O cilindro 3D traduzido.

Nesta figura, parece que o cilindro tenha sido rodado para a frente de modo que você pode ver um pouco da superfície superior. Este não é o caso, no entanto. O que realmente aconteceu é que você não está mais olhando para a beira-on cilindro.

Em vez disso, porque o cilindro está abaixo da câmera, você está olhando para baixo sobre ele. Assim, você pode ver um pouco da face superior. Você também está olhando para ele de lado, o que explica por que parece apenas um pouco inclinada.

menu