<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=big5">
<META content="MSHTML 5.50.4522.1800" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hello,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2> I want to write a VTK program
with multi-render in C++. But only the last one render (ren4) can display,
others render is totoally black.</FONT></DIV>
<DIV><FONT face=Arial size=2>Does anybody know why?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Tony Chung</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>My code.</FONT></DIV>
<DIV><FONT face=Arial
size=2>-------------------------------------------------------------</FONT></DIV>
<DIV><FONT face=Arial size=2>void main( int argc, char *argv[]
)<BR>{</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2> int i;<BR> // create a rendering window
and both renderers<BR> renWin =
vtkRenderWindow::New();<BR> vtkRenderer *ren1 =
vtkRenderer::New(); // main
window<BR> renWin->AddRenderer(ren1);<BR> vtkRenderer *ren2 =
vtkRenderer::New(); // sub-win 1<BR>
renWin->AddRenderer(ren2);<BR> vtkRenderer *ren3 =
vtkRenderer::New(); // sub-win 2<BR>
renWin->AddRenderer(ren3);<BR> vtkRenderer *ren4 =
vtkRenderer::New(); // sub-win 3<BR>
renWin->AddRenderer(ren4);<BR> <BR> iren =
vtkRenderWindowInteractor::New();<BR> iren->SetRenderWindow(renWin);</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2> // read the volume<BR> v16 =
vol_reader();<BR> // ********* create a b/w lookup table
*************<BR> bwLut = bw_table();<BR>c = 32;<BR> // *********
create coronal plane ******************<BR> coronal =
cor_plane(v16,c,bwLut);<BR> coronal->PickableOff();<BR>a =
32;<BR> // ********* create axial plane ********************<BR>
axial = axi_plane(v16,a,bwLut);<BR>
axial->PickableOff();<BR>s = 32;<BR> // ********* create sagittal plane
*****************<BR> sagittal= sag_plane(v16,s,bwLut);<BR>
sagittal->PickableOff();</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>
/**************************************************************/<BR> </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2> // assign our actor to both
renderers<BR> ren1->AddActor(sagittal);<BR> ren1->AddActor(axial);<BR> ren1->AddActor(coronal);<BR> <BR> ren2->AddActor(axial);<BR> ren3->AddActor(sagittal);<BR> ren4->AddActor(coronal);</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2> // set the size of our
window<BR> renWin->SetSize(600,300);</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2> vtkCamera *aCamera =
vtkCamera::New();<BR> aCamera->SetViewUp (0, 0, -1);<BR>
aCamera->SetPosition (0, 10, 0);<BR> aCamera->SetFocalPoint (0, 0,
0);<BR> aCamera->ComputeViewPlaneNormal();<BR> <BR>
ren1->SetActiveCamera(aCamera);<BR> ren1->ResetCamera ();<BR>
aCamera->Dolly(1.5);<BR>
ren1->ResetCameraClippingRange();</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2> // set the viewports and background of the
renderers<BR> ren1->SetViewport(0,0,0.6,1);<BR> ren2->SetViewport(0.6,0,1,0.33);<BR> ren3->SetViewport(0.6,0.33,1,0.66);<BR> ren4->SetViewport(0.6,0.66,1,1);</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial
size=2> ren1->SetBackground(0.2,0.3,0.5);<BR> ren2->SetBackground(0.2,0.5,0.3);<BR> ren3->SetBackground(0.4,0.2,0.1);<BR> ren4->SetBackground(0.3,0.7,0.6);</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2> // draw the resulting
scene<BR> renWin->Render();<BR>//_beginthread((void(*)(void*))updateplane,STACK_SIZE,NULL);</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV><FONT face=Arial size=2>
<DIV><BR> // make one view 90 degrees
fromother<BR> //ren1->GetActiveCamera()->Azimuth(90);<BR> picker
=
vtkCellPicker::New();<BR> iren->SetPicker(picker);<BR> iren->SetEndPickMethod(
&annotatePick, (void *)NULL );<BR> iren->Start();</DIV>
<DIV> </DIV>
<DIV><BR> // Clean
up<BR> ren1->Delete();<BR> ren2->Delete();<BR> ren3->Delete();<BR> ren4->Delete();<BR> renWin->Delete();<BR> <BR>}</FONT></DIV></BODY></HTML>