[RLM] The case of the false positive for virtual machine detection

When RLM detects that it’s running on a virtual machine, you’ll see “This server does not run on virtual machines, exiting” and “solidangle initialization error: 5, not restarting” in the RLM debug log:

06/22 11:45 (solidangle) RLM License Server Version 10.1BL2 for ISV "solidangle"
06/22 11:45 (solidangle) Settings from RLM Version 10.1BL2 for ISV "solidangle"
06/22 11:45 (solidangle) This server does not run on virtual machines, exiting
06/22 11:45 (rlm) Reread request (for everyone) by webuser@example-pc
06/22 11:45 (rlm) Restarting solidangle on port 55555
06/22 11:45 (rlm) New thread created to watch ISV solidangle
06/22 11:45 (rlm) Starting any new ISV servers...
06/22 11:45 (rlm) 
06/22 11:45 (rlm) solidangle initialization error: 5, not restarting
06/22 11:45 (rlm) 
06/22 11:45 (rlm) The ISV server is running on the wrong host.
06/22 11:45 (rlm) 
06/22 11:45 (rlm) This can happen if:
06/22 11:45 (rlm)  The hostid of this machine doesn't match any license file
06/22 11:45 (rlm)  - or -
06/22 11:45 (rlm)  You are attempting to run the server on a virtual machine

In this case, the machine wasn’t virtual. And both RLM and the solidangle ISV were the same version (10.1BL2), so it wasn’t a case of a newer solidangle.set with an older RLM, which gives you the same log output.

The problem was the older RLM version. The older RLM 10.1BL2 would sometimes issue a false positive for virtual machine detection. The solution is to upgrade to the newer RLM 11.2BL2, which you can get by downloading Arnold or later.

[Arnold] System requirements

In general, Arnold is going to work on pretty much any 64-bit system where Houdini, Maya, Cinema 4D, or Softimage works. However, there are some minimum OS requirements:

  • OSX 8 or later (as of Arnold
  • Windows 7 or later (as of Arnold 4.2.3)
  • Linux with at least glibc 2.12 and libstdc++ 3.4.13 (gcc 4.4.7) (as of Arnold 4.2.6)
  • CPUs need to support the SSE4.2 instruction set (as of Arnold

Other than that, Arnold works on Intel and AMD processors, and has no graphic card or GPU requirements, since Arnold is a CPU-based renderer.

[MtoA] Is there an ARNOLD_PROCEDURAL_PATH environment variable?

No, there isn’t. HtoA recently added support for an ARNOLD_PROCEDURAL_PATH environment variable, but neither MtoA or Arnold itself support ARNOLD_PROCEDURAL_PATH.

Here’s a few things you can do:

  • If you’re kicking ASS files, you can set the procedural search path on the kick command line. For example, assuming ARNOLD_PROCEDURAL_PATH is set in your environment, you could do this on Windows:
       kick -set options.procedural_search_path %ARNOLD_PROCEDURAL_PATH%

    Or this on Linux or OSX:

       kick -set options.procedural_search_path $ARNOLD_PROCEDURAL_PATH
  • You could add the procedural search path to the system path (PATH on Windows, LD_LIBRARY_PATH on Linux, DYLD_LIBRARY_PATH on OSX). Arnold will then find the procedural by searching through the system path.
  • Maya, you can put an environment variable in the Procedural Search Path text box. Note that you have to use square brackets, like this: [ARNOLD_PROCEDURAL_PATH].

[HtoA] About instancing

A few quick notes about instancing support in HtoA:

  • For instancing, use the Instance object with fast point instancing. HtoA doesn’t support full point instancing.
  • You can assign material to instances with the shop_materialpath string attribute on the instance points.
  • Fast point instancing supports per-instance user data and instance OBJ property overrides.
  • Light instancing is not supported [yet]. Actually, Arnold itself doesn’t support light instances, but what plugins like MtoA and SItoA do is translate the light instances into duplicates of the light for Arnold.
  • Procedurals (both DSO and ASS) can be instanced.

[HtoA] Using custom Arnold cameras in Houdini

Here’s how to set up your custom camera in Houdini. I’ll use the Oculus camera as an example.

  1. Copy OculusCamera.dll and OculusCamera.mtd to your HtoA arnold\plugins folder. For example, on my machine, that’s here:
  2. In the Shop network, create an Arnold Shader Network.
  3. In the Arnold Shader Network (arnold_vopnet), create an Camera > Oculus Camera and an Output > Camera Output. Connect the Oculus Camera to the OUT_Camera.
  4. In the Obj network, select your camera, and in the Camera properties, set the Camera Shader to point to your arnold_vopnet.

[C4DtoA] Using the Bitmap Shader for image sequences

Arnold doesn’t support .mov files for textures, but with C4DtoA you can use the Bitmap shader to load image sequences like seq_0000.tx, seq_0000.tx, seq_0000.tx, …

  1. In the Bitmap Shader > Shader properties, select one of the files in the image sequence.
  2. In the Animation sequence, manually enter the start and end frames in the Movie Start Frame and Movie End Frame text boxes
  3. Click Calculate

Under the covers, C4DtoA doesn’t actually implement the Bitmap Shader. Instead, C4DtoA translates the Bitmap Shader to an Arnold Image shader