<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    That's a lot of new classes.<br>
    <br>
    I tried to upgrade but now I get 717 linker errors.  I posted a new
    question regarding this.<br>
    <br>
    On 08/04/2011 08:58 AM, Dženan Zukić wrote:
    <blockquote
cite="mid:CAPf2UMSoZYfhWhg2aeVbxdkBk-3y54cEygP-LVCE7xcjbC9Vyw@mail.gmail.com"
      type="cite"><font size="2"><font face="verdana,sans-serif">True. <a
            moz-do-not-send="true"
            href="http://www.vtk.org/Wiki/Improvements_in_VTK_5.6">http://www.vtk.org/Wiki/Improvements_in_VTK_5.6</a><br>
        </font></font><br>
      <div class="gmail_quote">2011/8/4 Joseph D. Wieber Jr. <span
          dir="ltr">&lt;<a moz-do-not-send="true"
            href="mailto:jdwieber@gmail.com">jdwieber@gmail.com</a>&gt;</span><br>
        <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
          0.8ex; border-left: 1px solid rgb(204, 204, 204);
          padding-left: 1ex;">
          <div bgcolor="#ffffff" text="#000000"> Thanks for your reply. 
            Unfortunately, I don't see vtkGPUVolumeRayCastMapper in the
            version (5.4.2-8ubuntu4) I'm using.  I guess it's time for
            an upgrade.
            <div>
              <div class="h5"><br>
                <br>
                On 08/04/2011 05:45 AM, Dženan Zukić wrote:
                <blockquote type="cite"><font size="2"><font
                      face="verdana,sans-serif">Have you
                      tried vtkGPUVolumeRayCastMapper?<br>
                    </font></font><br>
                  <div class="gmail_quote">On Thu, Aug 4, 2011 at 02:59,
                    Joseph D. Wieber Jr. <span dir="ltr">&lt;<a
                        moz-do-not-send="true"
                        href="mailto:jdwieber@gmail.com" target="_blank">jdwieber@gmail.com</a>&gt;</span>
                    wrote:<br>
                    <blockquote class="gmail_quote" style="margin: 0pt
                      0pt 0pt 0.8ex; border-left: 1px solid rgb(204,
                      204, 204); padding-left: 1ex;">I apologize, I
                      figured it out.  It was the single line in
                      generateVolume that reads:
                      spVolumeProperty-&gt;IndependentComponentsOff();
                      When I comment out this line, and uncomment the
                      lines for linear interpolation and shading it
                      looks very nice.  However, it's terribly slow.  I
                      suspect that this version is software rendered.
                       Is there a similar hardware accelerated  method?<br>
                      <br>
                      Thanks
                      <div>
                        <div><br>
                          <br>
                          On 08/03/2011 07:18 PM, Joseph D. Wieber Jr.
                          wrote:<br>
                          <blockquote class="gmail_quote" style="margin:
                            0pt 0pt 0pt 0.8ex; border-left: 1px solid
                            rgb(204, 204, 204); padding-left: 1ex;"> <br>
                            Hi all,<br>
                            <br>
                            I'm trying to do some volume rendering using
                            the below code, but nothing is showing in
                            the render window.  When I run the code I
                            see the window and the background color that
                            I set, but no data.  The code cranks for
                            about 5 seconds before I see the default
                            render window replaced (the default render
                            window is white, and the volume render
                            window is gray-ish).  I don't see error
                            messages in the console either.<br>
                            <br>
                            I'm using Qt with QVTKWidget to create the
                            GUI.  I'm obviously doing something wrong,
                            but I don't see what it is.  Does anyone see
                            what I'm missing?  Thanks.<br>
                            <br>
                            Regards,<br>
                            <br>
                            Joseph<br>
                            <br>
                            void
                            MainWindow::on_actionOpenDirectory_triggered()<br>
                            {<br>
                               QString dirname =
                            QFileDialog::getExistingDirectory( this,<br>
                                                                       
                                       tr("Select a Directory"),<br>
                                                                       
                                       QDir::currentPath() );<br>
                               if( !dirname.isNull() )<br>
                               {<br>
                                   string pattern( dirname.toStdString
                            () );<br>
                                   pattern += "/%03d.png";<br>
                                   cerr &lt;&lt; "using pattern:&lt;"
                            &lt;&lt; pattern &lt;&lt; "&gt;\n";<br>
                            <br>
                                   vtkSmartPointer&lt; vtkVolume &gt;
                            spVolume = generateVolume ( pattern );<br>
                            <br>
                                 
                             vtkSmartPointer&lt;vtkRenderWindow&gt;
                            spRenWin =<br>
                                         
                             vtkSmartPointer&lt;vtkRenderWindow&gt;::New();<br>
                            <br>
                                   vtkSmartPointer&lt; vtkRenderer&gt;
                            spRen =<br>
                                           vtkSmartPointer&lt;
                            vtkRenderer &gt;::New();<br>
                                   spRen-&gt;AddViewProp ( spVolume );<br>
                            <br>
                                   spRenWin-&gt;AddRenderer( spRen );<br>
                                 
                             m_pUi-&gt;qvtkWidget-&gt;SetRenderWindow (
                            spRenWin );<br>
                                   vtkSmartPointer&lt;
                            vtkRenderWindowInteractor &gt; spIren =<br>
                                         
                             m_pUi-&gt;qvtkWidget-&gt;GetInteractor ();<br>
                                   spIren-&gt;SetRenderWindow( spRenWin
                            );<br>
                                   spRen-&gt;SetBackground( 0.2, 0.3,
                            0.4 );<br>
                                   spRen-&gt;ResetCamera ();<br>
                            <br>
                                   //I tried this in place of
                            ResetCamera, but id didn't work either<br>
                                   //        vtkSmartPointer&lt;
                            vtkCamera &gt; spCamera =
                            spRen-&gt;GetActiveCamera();<br>
                                   //        double* c =
                            spVolume-&gt;GetCenter();<br>
                                   //        spCamera-&gt;SetFocalPoint(
                            c[ 0 ], c[ 1 ], c[ 2 ] );<br>
                                   //        spCamera-&gt;SetPosition(
                            c[ 0 ] + 400, c[ 1 ], c[ 2 ] );<br>
                                   //        spCamera-&gt;SetViewUp( 0,
                            0, -1 );<br>
                            <br>
                            <br>
                                   spRenWin-&gt;Render();<br>
                                   m_pUi-&gt;qvtkWidget-&gt;setCursor (
                            Qt::ArrowCursor );<br>
                               }<br>
                               else<br>
                               {<br>
                                   //TODO: do something intelligent
                            here!<br>
                               }<br>
                            }<br>
                            <br>
                            <br>
                            //---------------------------------------------------------------------------------------------------------------------------

                            <br>
                            vtkSmartPointer&lt; vtkVolume &gt;
                            MainWindow::generateVolume( const
                            std::string&amp; pattern )<br>
                            {<br>
                               //m_spReader is a vtkSmartPointer&lt;
                            vtkPNGReader &gt;<br>
                               m_spReader-&gt;SetFilePattern (
                            pattern.c_str () );<br>
                               m_spReader-&gt;SetFileNameSliceOffset ( 1
                            );//images start at 001.png<br>
                               //TODO: derive these from input<br>
                               m_spReader-&gt;SetDataExtent( 0, 511, 0,
                            511, 1, 370 );//images go from 1 to 370<br>
                               m_spReader-&gt;SetDataSpacing( 1.0, 1.0,
                            1.0 ); // mm<br>
                               m_spReader-&gt;SetDataOrigin( 0, 0, 0 );<br>
                             
                             m_spReader-&gt;SetDataScalarTypeToUnsignedChar();<br>
                               //m_spReader-&gt;Update();<br>
                            <br>
                               vtkSmartPointer&lt; vtkPiecewiseFunction
                            &gt; spOpacityTransferFunction =<br>
                                       vtkSmartPointer&lt;
                            vtkPiecewiseFunction &gt;::New();<br>
                               spOpacityTransferFunction-&gt;AddPoint(
                            0, 0.0 );<br>
                               spOpacityTransferFunction-&gt;AddPoint(
                            255, 1.0 );<br>
                            <br>
                               vtkSmartPointer&lt; vtkVolumeProperty
                            &gt; spVolumeProperty =<br>
                                       vtkSmartPointer&lt;
                            vtkVolumeProperty &gt;::New();<br>
                               spVolumeProperty-&gt;SetScalarOpacity( 0,
                            spOpacityTransferFunction );<br>
                               spVolumeProperty-&gt;SetScalarOpacity( 1,
                            spOpacityTransferFunction );<br>
                               spVolumeProperty-&gt;SetScalarOpacity( 2,
                            spOpacityTransferFunction );<br>
                             
                             spVolumeProperty-&gt;IndependentComponentsOff();<br>
                             
                             spVolumeProperty-&gt;SetInterpolationTypeToLinear();<br>
                               //spVolumeProperty-&gt;ShadeOn();<br>
                               //spVolumeProperty-&gt;SetAmbient( 0.4 );<br>
                               //spVolumeProperty-&gt;SetDiffuse( 0.6 );<br>
                               //spVolumeProperty-&gt;SetSpecular( 0.2
                            );<br>
                            <br>
                               vtkSmartPointer&lt;
                            vtkFixedPointVolumeRayCastMapper &gt;
                            spVolumeMapper =<br>
                                       vtkSmartPointer&lt;
                            vtkFixedPointVolumeRayCastMapper
                            &gt;::New();<br>
                            <br>
                               spVolumeMapper-&gt;SetInputConnection(
                            m_spReader-&gt;GetOutputPort() );<br>
                            <br>
                               vtkSmartPointer&lt; vtkVolume &gt;
                            spVolume =<br>
                                       vtkSmartPointer&lt; vtkVolume
                            &gt;::New();<br>
                               spVolume-&gt;SetMapper( spVolumeMapper );<br>
                               spVolume-&gt;SetProperty(
                            spVolumeProperty );<br>
                            <br>
                               return spVolume;<br>
                            }<br>
                            <br>
                          </blockquote>
_______________________________________________<br>
                          Powered by <a moz-do-not-send="true"
                            href="http://www.kitware.com"
                            target="_blank">www.kitware.com</a><br>
                          <br>
                          Visit other Kitware open-source projects at <a
                            moz-do-not-send="true"
                            href="http://www.kitware.com/opensource/opensource.html"
                            target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
                          <br>
                          Please keep messages on-topic and check the
                          VTK FAQ at: <a moz-do-not-send="true"
                            href="http://www.vtk.org/Wiki/VTK_FAQ"
                            target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
                          <br>
                          Follow this link to subscribe/unsubscribe:<br>
                          <a moz-do-not-send="true"
                            href="http://www.vtk.org/mailman/listinfo/vtkusers"
                            target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
                        </div>
                      </div>
                    </blockquote>
                  </div>
                  <br>
                </blockquote>
              </div>
            </div>
          </div>
        </blockquote>
      </div>
      <br>
    </blockquote>
  </body>
</html>