Working with large scenes and models

Softimage 2014 now supports scene (.scn) and model (.emdl) files of size up to 4 GB. That’s on Windows. On Linux, the limit is [still?] 2 GB.

Note that this applies only to scenes and models saved from Softimage 2014. You can’t save a huge 3GB scene out of Softimage 2013 and load it into Softimage 2014. Large files saved by 2013 and older are not saved properly, and won’t load into 2014.

On Linux, Softimage 2014 will warn you if you save a file that exceeds 2GB. Presumably that will give you a chance to reduce the file size, or save out models, so you can re-load the assets later.

The Softimage customer improvement program

Over on the AREA Mr Entertainment blog, the Softimage Program Manager has posted a short video that goes over how the CIP progam helps product planning.

On the Softimage list, someone mentioned that they wouldn’t mind turning on CIP, as long as it doesn’t use too many CPU cycles. Now, I don’t know exactly how CPU-intensive the CIP instrumentation is (I don’t think it is all that intensive), but I do remember reading a few things about CIP:

  • CIP records a transcript of user activities in the software (eg commands used)
  • That transcript is stored in RAM (but there is a limit of something like 2MB)
  • At regular intervals, the transcript will be serialized to disk (not in one big file, but in many files…again, as I remember it, there is a file size limit, and a limit to the number of files)
  • Every day or so, the transcripts are sent to Autodesk. The send happens only if the current CPU/network/system utilization is really very low. That is, it won’t be sent if you’re in the middle of playing back a scene and using the CPU.

Interestingly, while poking around on my own system a few weeks ago, I disabled CIP, either by editing a .MC3 file or changing a registry setting. Now I cannot enable CIP from inside Softimage, and I don’t remember what I changed 🙂

Understanding backwards and forwards compatibility

You say backwards, I say forwards…

Backward compatible and forward compatible have specific meanings in the software world, but in collequial/conversational usage, the meanings are usually reversed.

For example, customers never ask me

Is Softimage 2012 forward compatible with Softimage 2013?

Rather, they ask me

Is Softimage 2013 backward compatible with 2012?

What the customer usually wants to know is can 2012 load a scene saved by 2013?

But that’s not backwards compatiblity, that’s forwards compatibility 😉

  • Forwards compatibility = ability of older versions to load data saved by newer versions.

    Softimage is not forwards compatible: it cannot load files from newer versions of Softimage

  • Backwards compatibilty = ability of the new versions to load data saved by older versions.

    Softimage is backwards compatible: it can load scene files [and models] saved by older versions of Softimage

In general:

  • Newer versions of Softimage can load scenes and models created by older versions.
  • Older versions Softimage cannot load scenes and models created by newer versions.
  • Newer versions of Softimage can load plugins compiled with older versions

Netview and Internet Explorer 9

I’ve posted before that Netview uses the version of Internet Explorer installed on your system. It turns out that, as of IE8, it’s not quite that simple. Thanks to Luc-Eric for pointing this out.

Netview is a hosted version of the Internet Explorer WebControl, and by default, the WebControl displays pages in IE7 Standards mode.

To force Netview to use IE9 mode, you can either set a registry entry

               Internet Explorer
                                   xsi.exe = (DWORD) 000090000

or add this meta tag to your HTML page:

<meta http-equiv="X-UA-Compatible" content="IE=9" > 

I tested the registry entry, and after I set it, this browser detect page correctly said I was using IE9 (before I set the registry, it said I was using IE7).

Also, after setting the registry entry, Netview scored 140 at (before I set the registry, Netview scored 40). Note that IE9 itself scores 141.

Server is unreachable. Marked as invalid for the next 300 seconds

By default, any network drive that times out is “marked as invalid” for 5 minutes (300 seconds), and you’ll see a message like this in the script log:

# INFO : 4000 - Server '\\server' is unreachable. Marked as invalid for the next 300 seconds

The timeout interval is controlled by the environment variable SI_FILEPATH_ACCESSRETRYDELAY.

Setting SI_FILEPATH_ACCESSRETRYDELAY to 0 will force Softimage to always try to access the files on the network drive. That might be useful if your network has extremely poor reliability.

From an XSI mailing list thread about this message, here’s a bit more info about how Softimage resolves paths:

XSI first checks the last path that an image has been found. This
might be offline drive X:. If a drive times out, we don’t try to
check that location for a while because otherwise it’d be really slow.
At this point, XSI resort to searching for the file from the user
path, using its search logic.
So that warning isn’t a problem – unless your “user path” was really
set to X:, in which case, go fix the path in the external file list.
The path where XSI finds the image is called the “resolved path”.


Menu Window view

When you’re editing a relational view, the Set View list includes a “Menu Window”.
I don’t think you would embed this view in a relational view. Instead, you would pop up an instance of this view, because the Menu Window view is a tear-off menu.

The only example usage I could find is in %XSI_HOME%\Application\toolbars\Main_Shelf.xsitb:

            <item type="scriptbutton" label="Polygons" userwidth="108" userheight="18" scriptengine="VBScript" tooltip="">
               <scripttext>&lt;![CDATA[Set oView = Desktop.ActiveLayout.CreateView( &quot;Menu Window&quot;, &quot;title is not used&quot; )
oView.Move 200, 160 
oView.SetAttributeValue &quot;TargetContent&quot;, &quot;ModelGetPrimitive&amp;Polygon Mesh&quot; ]]&gt;</scripttext>

So the targetcontent looks like “ModelGetPrimitive>PolygonMesh”.
The target content is composed by concatenating the module (Model), toolbar section (Get), and menu (Primitive), then an > symbol, and the menu command with no spaces.
hat tip: Luceric

The Menu Window is defined by the view %XSI_HOME%\Application\views\UITkMenuHost.xsivw.

In Softimage, a Menu Window view looks like this:

64-bit Softimage and Netview and Flash

As I mentioned in my video posting yesterday, if you’re running 64-bit Softimage then you won’t have Flash in Netview. That’s because Netview will be using the 64-bit version of Internet Explorer, but Flash is 32-bit only.

Outside of Softimage, back in Windows, you’re almost always running a 32-bit version of a browser, which is why Flash is available.

Netview uses an embedded web browser (an ActiveX control ) which it creates and embeds within a Softimage view.

  • On Windows, this ends up being whatever version of Internet Explorer the user has installed on their machine. However, for IE8 and later, the WebControl runs in IE7 compatiability mode.
  • On Linux, I believe Netview uses IE v5.5, which comes with Mainwin.

Luceric tweeted the other day about a beta 64-bit version of Flash. That “Square” preview release is relatively new (Nov 2010), but I know they had previous betas back in March 2010.

There’s a Linux version too of 64-bit Flash, but I don’t think it’s possible to get Flash into Netview on Linux. On Windows, Flash is installed in IE, and Netview picks up on that because Netview uses the version of IE installed with the OS. On Linux, however, we use a version of IE that ships with Softimage. So even if you had some version of IE running on Linux (unlikely), that wouldn’t be enough to get Flash into Netview. Flash would be installed just in that other IE. More likely, Flash will be installed in whatever other browser you have installed on Linux.

PPG doesn’t pop up automatically when you create a null

A customer mentioned to me the other day that the PPG didn’t pop up when he created a null.

It turns out we never pop-up the PPG when you create a null. I just never noticed that.
To verify that, I checked the implementation of GetPrim, which is the script GetPrimProc in %XSI_HOME%\Application\DSScripts\primitives.vbs.

In GetPrimProc, you’ll see that we skip nulls when we call AutoInspect:

' Inspect the new object
if Not TypeName (out_primitive) = "Nothing" then
	if  Not out_primitive.type = "null" then
		AutoInspect GetPrimProc, ,, "General"
	end if
end if

The customer also had another problem: pressing ENTER didn’t open up the PPG either, or if it did, all he got was a numeric slider for setting the Icon. Restarting Softimage fixed this; my guess is that the cached PPG layout was corrupted somehow (Softimage caches PPG layout definitions–if you’ve spent any time coding custom properties you’ve probably noticed how the PPGs of existing properties don’t change when you change the layout code).