MantisBT - VTK | |||||
| View Issue Details | |||||
| ID | Project | Category | View Status | Date Submitted | Last Update |
| 0008317 | VTK | (No Category) | public | 2008-12-18 11:14 | 2016-08-12 09:55 |
| Reporter | JNaresh | ||||
| Assigned To | Kitware Robot | ||||
| Priority | normal | Severity | minor | Reproducibility | have not tried |
| Status | closed | Resolution | moved | ||
| Platform | OS | OS Version | |||
| Product Version | |||||
| Target Version | Fixed in Version | ||||
| Project | |||||
| Type | |||||
| Summary | 0008317: Rendering is slow compared to Java3D | ||||
| Description | I have created a scene with 10x10x10 spheres. I am using VTK with java wrapper. When I try to rotate the model, the rendering is sluggish compared to Java3D. I have attached the sample code below. //-----Imports---------------------------------------------------------------- import javax.swing.JFrame; import vtk.vtkActor; import vtk.vtkLight; import vtk.vtkPolyDataMapper; import vtk.vtkProperty; import vtk.vtkRenderer; import vtk.vtkRenderWindowPanel; import vtk.vtkSphereSource; /** * This class renders multiple spheres in VTK window. This can be used * for stress testing Java3D. */ public class MultipleSpheres { /** * Number of spheres in X direction. */ private int m_nX = 10; /** * Number of spheres in Y direction. */ private int m_nY = 10; /** * Number of spheres in Z direction. */ private int m_nZ = 10; /** * RenderWindow panel. */ private vtkRenderWindowPanel m_zPanel; /** * Reference to JFrame. */ private JFrame m_zFrame; static { System.loadLibrary("vtkCommonJava"); System.loadLibrary("vtkFilteringJava"); System.loadLibrary("vtkIOJava"); System.loadLibrary("vtkImagingJava"); System.loadLibrary("vtkGraphicsJava"); System.loadLibrary("vtkRenderingJava"); System.loadLibrary("vtkInfovisJava"); System.loadLibrary("vtkViewsJava"); } // static /** * Constructs MultipleSpheres object. * * @param ascArg Array of command line arguments. */ public MultipleSpheres( String [] ascArg ) { for( int i = 0; i < ascArg.length; i++ ) { if ( ascArg[i].equalsIgnoreCase("-nx") && (i+1) < ascArg.length ) { m_nX = Integer.parseInt(ascArg[++i]); } else if ( ascArg[i].equalsIgnoreCase("-ny") && (i+1) < ascArg.length ) { m_nY = Integer.parseInt(ascArg[++i]); } else if ( ascArg[i].equalsIgnoreCase("-nZ") && (i+1) < ascArg.length ) { m_nZ = Integer.parseInt(ascArg[++i]); } } buildUI(); buildScene(); m_zFrame.setVisible(true); } // Constructor MultipleSpheres /** * Builds the UI. */ private void buildUI() { m_zPanel = new vtkRenderWindowPanel(); m_zPanel.GetRenderWindow().SwapBuffersOn(); m_zFrame = new JFrame("MultipleSpheres"); m_zFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); m_zFrame.add("Center", m_zPanel); m_zFrame.setSize(500, 500); } // buildUI /** * Builds the scene. */ private void buildScene() { vtkSphereSource zSphere = new vtkSphereSource(); zSphere.SetThetaResolution(100); zSphere.SetPhiResolution(50); zSphere.SetRadius(1.0); vtkPolyDataMapper zPolyDataMapper = new vtkPolyDataMapper(); zPolyDataMapper.SetInputConnection(zSphere.GetOutputPort()); vtkProperty zProperty = new vtkProperty(); zProperty.SetColor(1.0, 0.3882, 0.2784); zProperty.SetDiffuse(0.7); zProperty.SetSpecular(0.4); zProperty.SetSpecularPower(30); vtkRenderer zRenderer = m_zPanel.GetRenderer(); double dX = -m_nX; for( int i = 0; i < m_nX; i++ ) { double dY = -m_nY; for( int j = 0; j < m_nY; j++ ) { double dZ = -m_nZ; for( int k = 0; k < m_nZ; k++ ) { System.out.println("X: " + dX + ", Y: " + dY + ", Z: " + dZ); vtkActor zActor = new vtkActor(); zActor.SetMapper(zPolyDataMapper); zActor.SetProperty(zProperty); zActor.SetPosition(dX, dY, dZ); zRenderer.AddActor(zActor); dZ += 2.0; } dY += 2.0; } dX += 2.0; } vtkLight zLight1 = new vtkLight(); zLight1.SetFocalPoint(1.875, 0.6125, 0); zLight1.SetPosition(0.875, 1.6125, 1); zRenderer.AddLight(zLight1); vtkLight zLight2 = new vtkLight(); zLight2.SetFocalPoint(1.875, 0.6125, 0); zLight2.SetPosition(9, 9, -9); zRenderer.AddLight(zLight2); vtkLight zLight3 = new vtkLight(); zLight3.SetFocalPoint(1.875, 0.6125, 0); zLight3.SetPosition(0.875, -9, -9); zRenderer.AddLight(zLight3); zRenderer.GetActiveCamera().SetFocalPoint(0, 0, 0); zRenderer.GetActiveCamera().SetPosition(0, 0, 1); zRenderer.GetActiveCamera().SetViewUp(0, 1, 0); zRenderer.GetActiveCamera().ParallelProjectionOn(); zRenderer.ResetCamera(); // zRenderer.GetActiveCamera().SetParallelScale(1.5); } // buildScene /** * Main function. * * @param ascArg Array of command line arguments. */ public static void main( String ascArg[] ) { MultipleSpheres zMultSpheres = new MultipleSpheres(ascArg); } // main } // Class MultipleSpheres | ||||
| Steps To Reproduce | |||||
| Additional Information | |||||
| Tags | No tags attached. | ||||
| Relationships | |||||
| Attached Files | |||||
| Issue History | |||||
| Date Modified | Username | Field | Change | ||
| 2008-12-18 11:14 | JNaresh | New Issue | |||
| 2011-06-16 13:11 | Zack Galbreath | Category | => (No Category) | ||
| 2016-08-12 09:55 | Kitware Robot | Note Added: 0037049 | |||
| 2016-08-12 09:55 | Kitware Robot | Status | expired => closed | ||
| 2016-08-12 09:55 | Kitware Robot | Resolution | open => moved | ||
| 2016-08-12 09:55 | Kitware Robot | Assigned To | => Kitware Robot | ||
| Notes | |||||
|
|
|||||
|
|
||||