RenderMan Procedural Primitive DSO : No active context.

许多年轻滴朋友都开始学习RM了,Procedural Primitive这个RM强大的功能当然是不可少的。我已经不止一次的被人询问按照RM文档的范例写那个球的DSO问题,总会出现如下错误,

A00000 {WARNING} RiSphere: No active context.

这个问题出现的原因是DSO没有用正确的静态库链接——我们需要用的库是prman.lib,而不是libprmansdk.lib。那么为什么用后者编译器一样可以通过呢?因为Ri函数都是C函数,编译器在这两个库中生成的函数符号是完全一样的,而后者中的Ri函数是为了给RifPlugins使用的,不是给PP DSO使用的。

解决问题的方法就是使用prman.lib而不是libprmansdk.lib生成你的PP DSO。

RPS 13.5下这个现象可重现。

Many young men began to learn RM, the Procedural Primitive is also an important feature about the powerful RM renderer. I was asked to help for the sphere DSO in Application Note of RM’s document. The error is

A00000 {WARNING} RiSphere: No active context.

It was caused by the wrong static library, i.e. we should use prman.lib NOT libprmansdk.lib to be linked with our DSO shared library. Why it will be still correct if we still use libprmansdk.lib is because of the same C function symbol generate by compiler in both 2 static library.

Use prman.lib not libprmansdk.lib to generate your PP DSO.

Reproduced under RPS 13.5.

原文地址:https://www.cnblogs.com/Jedimaster/p/1842097.html