These days I am trying to use VTK Crystal Eyes for stereo display, but
failed.
I could not get above-below images. The source code is as follows.
( I use VTK nightly code on June 16,1999, and Visual C++ 6.0
on Windows NT 4.0 ).
========================
( The code modified from the sample Mace3.cpp )
vtkRenderer *ren1 = vtkRenderer::New();
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->StereoCapableWindowOn();
renWin->AddRenderer(ren1);
vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
iren->SetRenderWindow(renWin);
// create the pipline, ball and spikes
vtkSphereSource *sphere = vtkSphereSource::New();
sphere->SetThetaResolution(7); sphere->SetPhiResolution(7);
vtkPolyDataMapper *sphereMapper = vtkPolyDataMapper::New();
sphereMapper->SetInput(sphere->GetOutput());
vtkActor *sphereActor = vtkActor::New();
sphereActor->SetMapper(sphereMapper);
// sphereActor->GetProperty()->SetColor(0.8,0.8,0.8);
vtkConeSource *cone = vtkConeSource::New();
cone->SetResolution(5);
vtkGlyph3D *glyph = vtkGlyph3D::New();
glyph->SetInput(sphere->GetOutput());
glyph->SetSource(cone->GetOutput());
glyph->SetVectorModeToUseNormal();
glyph->SetScaleModeToScaleByVector();
glyph->SetScaleFactor(0.25);
vtkPolyDataMapper *spikeMapper = vtkPolyDataMapper::New();
spikeMapper->SetInput(glyph->GetOutput());
vtkActor *spikeActor = vtkActor::New();
spikeActor->SetMapper(spikeMapper);
// spikeActor->GetProperty()->SetColor(0.8,0.8,0.8);
ren1->AddActor(sphereActor);
ren1->AddActor(spikeActor);
ren1->SetBackground(0.2,0.3,0.4);
renWin->SetSize(1024,768);
// do the first render and then zoom in a little
//renWin->Render();
//ren1->GetActiveCamera()->Zoom(1.4);
renWin->SetFileName("test.ppm");
renWin->StereoRenderOn();
renWin->SetStereoTypeToCrystalEyes();
renWin->Render();
renWin->SaveImageAsPPM();
iren->Start();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Additionally, in terms of Crystal Eyes, there is a black internal between the above image ( left-eye ) and below image ( right eye ), e.g., there is 38 blank internal for 1024*768 on my computer. I viewed the VTK source code, and did not find any code lines to process this black internal. ( it seems there no considering of black internal as the vertical viewport is divided by 2 forVTK_Stereo_Crystal_Eyes ). Am I right?
Meantime, I checked the latest VTK nightly code ( July 8 ), and found
there are no VTKStarBaseRenderWinows.cpp(.H) that processes VTK_Crystal_Eyes.
( In the pack of VTK nightly code on June 16), there are VTKStarBaseRenderWinows.cpp(.H)
).
I do not know what happened with VTK_Crystal_Eyes.
Could you give me help?
Thanks in advance
Jianhua
I am trying the Crystal Eyes for stereo display on Windows NT 4.0, and
have some problems.
I am using VTK on June 16, 1999 and Visual C++ 6.0.
The tested source file is as follows. ( modified from the example Mace3.cpp
)
//////////////////////////////////////////////////////////////////////
vtkRenderer *ren1 = vtkRenderer::New();
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->StereoCapableWindowOn();
renWin->AddRenderer(ren1);
vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
iren->SetRenderWindow(renWin);
// create the pipline, ball and spikes
vtkSphereSource *sphere = vtkSphereSource::New();
sphere->SetThetaResolution(7); sphere->SetPhiResolution(7);
vtkPolyDataMapper *sphereMapper = vtkPolyDataMapper::New();
sphereMapper->SetInput(sphere->GetOutput());
vtkActor *sphereActor = vtkActor::New();
sphereActor->SetMapper(sphereMapper);
// sphereActor->GetProperty()->SetColor(0.8,0.8,0.8);
vtkConeSource *cone = vtkConeSource::New();
cone->SetResolution(5);
vtkGlyph3D *glyph = vtkGlyph3D::New();
glyph->SetInput(sphere->GetOutput());
glyph->SetSource(cone->GetOutput());
glyph->SetVectorModeToUseNormal();
glyph->SetScaleModeToScaleByVector();
glyph->SetScaleFactor(0.25);
vtkPolyDataMapper *spikeMapper = vtkPolyDataMapper::New();
spikeMapper->SetInput(glyph->GetOutput());
vtkActor *spikeActor = vtkActor::New();
spikeActor->SetMapper(spikeMapper);
// spikeActor->GetProperty()->SetColor(0.8,0.8,0.8);
ren1->AddActor(sphereActor);
ren1->AddActor(spikeActor);
ren1->SetBackground(0.2,0.3,0.4);
renWin->SetSize(1024,768);
// do the first render and then zoom in a little
//renWin->Render();
//ren1->GetActiveCamera()->Zoom(1.4);
renWin->SetFileName("test.ppm");
renWin->StereoRenderOn();
renWin->SetStereoTypeToCrystalEyes();
renWin->Render();
renWin->SaveImageAsPPM();
iren->Start();
/////////////////////////////////////////////////////////////////////////////////////////////////////
// create the rendering objects
vtkRenderer *ren1 = vtkRenderer::New();
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->StereoCapableWindowOn(); // added by me
renWin->AddRenderer(ren1);
vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
iren->SetRenderWindow(renWin);
// create the pipline, ball and spikes
vtkSphereSource *sphere = vtkSphereSource::New();
sphere->SetThetaResolution(7); sphere->SetPhiResolution(7);
vtkPolyDataMapper *sphereMapper = vtkPolyDataMapper::New();
sphereMapper->SetInput(sphere->GetOutput());
vtkActor *sphereActor = vtkActor::New();
sphereActor->SetMapper(sphereMapper);
// sphereActor->GetProperty()->SetColor(0.8,0.8,0.8);
vtkConeSource *cone = vtkConeSource::New();
cone->SetResolution(5);
vtkGlyph3D *glyph = vtkGlyph3D::New();
glyph->SetInput(sphere->GetOutput());
glyph->SetSource(cone->GetOutput());
glyph->SetVectorModeToUseNormal();
glyph->SetScaleModeToScaleByVector();
glyph->SetScaleFactor(0.25);
vtkPolyDataMapper *spikeMapper = vtkPolyDataMapper::New();
spikeMapper->SetInput(glyph->GetOutput());
vtkActor *spikeActor = vtkActor::New();
spikeActor->SetMapper(spikeMapper);
// spikeActor->GetProperty()->SetColor(0.8,0.8,0.8);
ren1->AddActor(sphereActor);
ren1->AddActor(spikeActor);
ren1->SetBackground(0.2,0.3,0.4);
renWin->SetSize(300,300);
renWin->StereoRenderOn();
renWin->SetStereoTypeToCrystalEyes();
renWin->Render();
iren->Start();
///////////////////////////////////////////////////////////////////////
Could somebody give me some solutions?
Thanks in advance
Jianhua