<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi,<br>
    <br>
        I was searching for some example as to how one can use the
    vtkRIBExporter.<br>
    <br>
        Since I didn't find any, I had to prototype something to help me
    understand.<br>
    <br>
        Here is one I wrote using Python + PyQt4 and VTK (for python).<br>
    <br>
        Hope it may be useful for others trying things out on the
    photo-realistic rendering aspect.<br>
    <br>
    <code>#!/usr/bin/env python</code><code><br>
    </code><code><br>
    </code><code>import sys</code><code><br>
    </code><code>import vtk</code><code><br>
    </code><code>from PyQt4 import QtCore, QtGui</code><code><br>
    </code><code>from vtk.qt4.QVTKRenderWindowInteractor import
      QVTKRenderWindowInteractor</code><code><br>
    </code><code><br>
    </code><code>class MainWindow(QtGui.QMainWindow):</code><code><br>
    </code><code>    </code><code><br>
    </code><code>    def __init__(self, parent = None):</code><code><br>
    </code><code>        QtGui.QMainWindow.__init__(self, parent)</code><code><br>
    </code><code><br>
    </code><code>        self.ribExportAction = QtGui.QAction("Export",
      self, shortcut="Ctrl+E",</code><code><br>
    </code><code>                                            
      statusTip="Export RIB", triggered=self.exportRIB)</code><code><br>
    </code><code>        self.frame = QtGui.QFrame()</code><code><br>
    </code><code>        </code><code><br>
    </code><code>        self.vl = QtGui.QVBoxLayout()</code><code><br>
    </code><code>        self.vtkWidget =
      QVTKRenderWindowInteractor(self.frame)</code><code><br>
    </code><code>        self.vl.addWidget(self.vtkWidget)</code><code><br>
    </code><code>        self.exportRIBButton =
      QtGui.QPushButton("Export RIB",self)</code><code><br>
    </code><code>       
      self.exportRIBButton.clicked.connect(self.exportRIB)</code><code><br>
    </code><code>        self.vl.addWidget(self.exportRIBButton)</code><code><br>
    </code><code>        self.ren = vtk.vtkRenderer()</code><code><br>
    </code><code>       
      self.vtkWidget.GetRenderWindow().AddRenderer(self.ren)</code><code><br>
    </code><code>        self.iren =
      self.vtkWidget.GetRenderWindow().GetInteractor()</code><code><br>
    </code><code>        </code><code><br>
    </code><code>        # Create source</code><code><br>
    </code><code>        source = vtk.vtkSphereSource()</code><code><br>
    </code><code>        source.SetCenter(0, 0, 0)</code><code><br>
    </code><code>        source.SetRadius(5.0)</code><code><br>
    </code><code>        </code><code><br>
    </code><code>        # Create a mapper</code><code><br>
    </code><code>        mapper = vtk.vtkPolyDataMapper()</code><code><br>
    </code><code>       
      mapper.SetInputConnection(source.GetOutputPort())</code><code><br>
    </code><code>        </code><code><br>
    </code><code>        # Create an actor</code><code><br>
    </code><code>        actor = vtk.vtkActor()</code><code><br>
    </code><code>        actor.SetMapper(mapper)</code><code><br>
    </code><code>        </code><code><br>
    </code><code>        self.ren.AddActor(actor)</code><code><br>
    </code><code>    </code><code><br>
    </code><code>        self.ren.ResetCamera()</code><code><br>
    </code><code>        </code><code><br>
    </code><code>        self.frame.setLayout(self.vl)</code><code><br>
    </code><code>        self.setCentralWidget(self.frame)</code><code><br>
    </code><code>        </code><code><br>
    </code><code>        self.show()</code><code><br>
    </code><code>        self.iren.Initialize()</code><code><br>
    </code><code>        </code><code><br>
    </code><code>    def exportRIB(self):</code><code><br>
    </code><code>        renWin = self.vtkWidget.GetRenderWindow()</code><code><br>
    </code><code>        writer = vtk.vtkRIBExporter()</code><code><br>
    </code><code>        writer.SetInput(renWin)</code><code><br>
    </code><code>        writer.SetFilePrefix('./tmp')</code><code><br>
    </code><code>        # writer.SetFilePattern("%s%3d.dcm.raw")</code><code><br>
    </code><code>        writer.Write()</code><code><br>
    </code><code>        writer.Update()</code><code><br>
    </code><code>        </code><code><br>
    </code><code>if __name__ == "__main__":</code><code><br>
    </code><code>    </code><code><br>
    </code><code>    app = QtGui.QApplication(sys.argv)</code><code><br>
    </code><code>    </code><code><br>
    </code><code>    window = MainWindow()</code><code><br>
    </code><code>    window.raise_()</code><code><br>
    </code><code>    sys.exit(app.exec_())</code><code><br>
    </code><br>
    Cheers<br>
    <pre class="moz-signature" cols="72">-- 
Nicholas Yue
Graphics - RenderMan, Visualization, OpenGL, HDF5
Custom Dev - C++ porting, OSX, Linux, Windows
<a class="moz-txt-link-freetext" href="http://au.linkedin.com/in/nicholasyue">http://au.linkedin.com/in/nicholasyue</a>
<a class="moz-txt-link-freetext" href="https://vimeo.com/channels/naiadtools">https://vimeo.com/channels/naiadtools</a></pre>
  </body>
</html>