I would like to render a scene in orthographic mode. I tried the following code, but the scene ist still in perspective mode. Can anybody give me a hint?
The code is a complete example. If you start it, you will see a box which lines run together on z axis (perspective) instead of beeing parallel.
Thanks in advance, Joe
Code: Select all
package de.jreality.tutorial;
import java.awt.Color;
import java.awt.Component;
import javax.swing.JFrame;
import de.jreality.geometry.IndexedFaceSetFactory;
import de.jreality.scene.Camera;
import de.jreality.scene.SceneGraphComponent;
import de.jreality.ui.viewerapp.ViewerApp;
public class SimpleViewer {
public static void main(String[] args){
SceneGraphComponent sceneGraphComponent = new SceneGraphComponent();
IndexedFaceSetFactory indexedFaceSetFactory = new IndexedFaceSetFactory();
double[][] vertices = new double[][]{ {-1, -1, 0}, {1, -1, 0}, {1, 1, 0}, {-1, 1, 0},
{-1, -1, 5}, {1, -1, 5}, {1, 1, 5}, {-1, 1, 5}};
int[][] faceIndices = new int[][]{ {0, 1, 2, 3}, {7, 6, 5, 4}, {0, 1, 5, 4},
{1, 2, 6, 5}, {2, 3, 7, 6}, {3, 0, 4, 7}};
Camera camera = new Camera();
camera.setPerspective(false);
camera.setNear(-10.0);
camera.setFar(10.0);
sceneGraphComponent.setCamera(camera);
indexedFaceSetFactory.setVertexCount(vertices.length);
indexedFaceSetFactory.setVertexCoordinates(vertices);
indexedFaceSetFactory.setFaceCount(faceIndices.length);
indexedFaceSetFactory.setFaceIndices(faceIndices);
indexedFaceSetFactory.setFaceColors(new Color[]{});
indexedFaceSetFactory.setGenerateEdgesFromFaces(true);
indexedFaceSetFactory.setGenerateFaceNormals(true);
indexedFaceSetFactory.update();
sceneGraphComponent.setGeometry(indexedFaceSetFactory.getGeometry());
ViewerApp viewerApp = new ViewerApp(sceneGraphComponent);
JFrame frame = new JFrame();
frame.getContentPane().add((Component)viewerApp.getViewingComponent());
frame.setSize(512, 512);
frame.validate();
frame.setVisible(true);
}
}