| View Issue Details [ Jump to Notes ] | [ Print ] | ||||||||
| 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 | ||||||||
| 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 | ||||||||
| Tags | No tags attached. | ||||||||
| Project | |||||||||
| Type | |||||||||
| Attached Files | |||||||||
| Relationships | |
| Relationships |
| Notes | |
|
(0037049) Kitware Robot (administrator) 2016-08-12 09:55 |
Resolving issue as `moved`. This issue tracker is no longer used. Further discussion of this issue may take place in the current VTK Issues page linked in the banner at the top of this page. |
| Notes |
| 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 |
| Issue History |
| Copyright © 2000 - 2018 MantisBT Team |