Skip to content

Instantly share code, notes, and snippets.

@tcrowson
tcrowson / softimage_DisableViewportVertColor.py
Last active January 2, 2016 08:09
For Softimage. Set the 'Vertex Color' display option to 'Never Show' for all cameras and 3d viewports (lights excluded). This can be very useful when working with normal maps, due to the crazy performance hit from Tangent properties.
from win32com.client import constants
for camera in [cam for cam in Application.ActiveSceneRoot.FindChildren2("", constants.siCameraPrimType)]:
Application.SetValue("%s.camdisp.vcdisplay" %camera, 0)
for viewport in Application.Desktop.ActiveLayout.Views.Find("View Manager").Views:
Application.SetValue("Views.View%s.UserCamera.camdisp.vcdisplay" %viewport, 0)
Application.SetValue("Views.View%s.TopCamera.camdisp.vcdisplay" %viewport, 0)
Application.SetValue("Views.View%s.FrontCamera.camdisp.vcdisplay" %viewport, 0)
Application.SetValue("Views.View%s.RightCamera.camdisp.vcdisplay" %viewport, 0)
@tcrowson
tcrowson / qt_ClearTreeWidget.py
Last active October 17, 2020 18:51
For PyQt/PySide. A simple function for clearing the contents of a QTreeWidget/QTreeView, since these classes lack convenient clear() or clearContents() methods. Takes a QTreeWidget or QTreeView object as an argument.
import PySide
from PySide import QtGui
def clearQTreeWidget(tree):
iterator = QtGui.QTreeWidgetItemIterator(tree, QtGui.QTreeWidgetItemIterator.All)
while iterator.value():
iterator.value().takeChildren()
iterator +=1
i = tree.topLevelItemCount()
while i > -1:
@tcrowson
tcrowson / softimage_GroupMeshesByModel.py
Last active January 2, 2016 07:59
For Softimage. This script gathers all the polymeshes for selected models and places them in model-specific groups.
# Gathers all the polymeshes for selected models and places them in model-specific groups
# (i.e. one group for each model).
from win32com.client import constants
if len(Application.Selection) > 0:
selectedModels = [item for item in Application.Selection if item.Type == '#model']
# Create the groups and populate them
for model in selectedModels:
@tcrowson
tcrowson / softimage_GatherFramebuffers.py
Last active April 14, 2021 18:31
For Softimage. Searches for 'Store_Color_In_Channel' nodes and adds their channels to the scene channel list.
# loop through shader nodes in the scene, identify 'store_color_in_channel' nodes,
# and add them to the scene globals. Avoid duplicate channnels.
for x in Application.FindObjects("", "{6495C5C1-FD18-474E-9703-AEA66631F7A7}" ):
if str(x.ProgID) == "Softimage.sib_color_storeinchannel.1.0":
chanName = Application.GetValue(x.Channel)
addChan = Application.CreateRenderChannel("%s"%(chanName), "siRenderChannelColorType", "")
newChan = (addChan[-1])
if newChan.isdigit():
Application.RemoveRenderChannel(addChan)