<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>