ERROR : 21000-REND-RegenerateMaps – Unspecified failure

Third-party renderers, like Arnold or Maxwell, don’t support rendermap so you’ll get this error if you try to do a rendermap. In a recent case, the customer told us that he figured out that “the Maxwell render add-on was causing a conflict. Any old models I made with the add-on installed were affected, but new models created without the add on will bake textures just fine.”

Getting Texture Map colors in ICE

I swear this didn’t work the first time I tried 😉 but you can use multiple texture maps.
Just don’t use the Explorer button in the Get Texture Map Color PPG.

Here’s how (hat tip to Letterbox):

  • Drag a Get Texture Map Color into your ICE tree.
    This node will get the color from the first Texure_Map property you created.
  • Then just copy and paste that node, double-click it, and edit the name of the property (eg, change it to “Texture_Map1”).

The Explorer doesn’t want to let you use any other texture map:

Friday Flashback #29

2001 – The FX Tree would be introduced in the soon-to-be-announced XSI 2.0, and this banner gave a sneak peak (on the left side, in the background very faintly, you can see a some FX Tree nodes, and on the right, you can see some FX tree scripting).

Click through the image above for a better view of what they’re talking about in this July 2001 thread from the XSI list:

-----Original Message-----
From: Jean-Louis
Sent: Tuesday, July 31, 2001 8:46 AM
To: XSI@Softimage.COM
Subject: Re: 2.0 Rumour+Speculation

And it looks all scriptable too: on the right of that same red banner you can
make out "FxTree.FileInput".
If it all turns out to be true I'll be over the moon.
Jean-Louis Billard
Graphics Dept. - Imaj

----- Original Message -----
From: "Meils Dühnforth" 
Sent: Tuesday, July 31, 2001 2:18 PM
Subject: RE: 2.0 Rumour+Speculation

Look at the interface screenshot shining through the red background at their
homepage top - definitely looks like a compositing tree!

Guess this is XSI 2.0 and not DS 5.0...

Meils Dühnforth
nhb studios

Unsubscribe? Mail Majordomo@Softimage.COM with the following text in body:
unsubscribe xsi

Writing particle point positions to a CSV file

One of the nice things about Python is the convenience of modules like CSV.

A point cloud is an X3DObject, so you could just get the point positions the same way you would for a mesh. But the recommended way to do it is with ICEAttribute.GetDataArrayChunk or, for small point clouds, ICEAttribute.DataArray.

import csv
from siutils import si		# Application
from siutils import sidict	# Dictionary
from siutils import log		# LogMessage

# Get a CSV writer object
csvWriter = csv.writer(open('cloud1.csv', 'wb'), delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)

# PointCloud is an X3DObject, so you can simply get points at current frame
# For large point clouds, use the ICEAttribute object instead
points = sidict.GetObject( "pointcloud" ).ActivePrimitive.Geometry.Points;
for p in points:
	#print "(%s, %s, %s)" % ( p.Position.X, p.Position.Y, p.Position.Z )
	csvWriter.writerow([p.Position.X, p.Position.Y, p.Position.Z])

# Use the ICEAttribute.DataArray for PointPositions
# For large point clouds, use ICEAttribute.GetDataArrayChunk
points = sidict.GetObject( "pointcloud" ).ActivePrimitive.Geometry.ICEAttributes("PointPosition").DataArray
for p in points:
	log( "%s, %s, %s" % (p.X, p.Y, p.Z) )
	csvWriter.writerow([p.X, p.Y, p.Z])

Update: The above script will write the CSV file in %XSI_BINDIR%. Changing the output location is an exercise left to the reader 😉 as is using GetDataArrayChunck (but for that you can copy the example in the docs).

Silly ICE tricks: randomizing the primitive particle shapes

The primitive shapes (Point, Segment, Disc, Rectangle, and so on) are controlled by the Shape parameter, which is an integer parameter with 10 possible values. So you could just plug a Random Value node into the Shape port, set the mean to Box, and the variance to 4 or 5. Note that if the random value goes out of range, you get a point.

If you don’t want points or segments (or some other shape), you could just use a Randomized Value node to drive a Select Case node:

Understanding locations in ICE

  • In ICE, a location is a handle to a specific spot/point/location on a geometric object.
  • A location is defined by the topology, so it’s a property that doesn’t change when the 3d object deforms.
  • You use locations to “get data”. Given a location you read data, such as positions, normals, and weight maps, from the underlying geometry.

Operating systems

The other day I ran a report on the Softimage support cases since Dec 2010, and broke that down by Operating System:

Now this isn’t necessarily representative of the entire user base, because I’ve heard that typically only 5% of Subscription customers ever use support. This chart represents only the Softimage users who contact support, and relies on the user-selected values for the operating system.

Note the low number of Vista cases. It’s almost all XP or Windows 7, and the XP cases come mostly from Japan.