问题标签 [renderman]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
graphics - RenderMan 事件向量不一致
我正在将一系列光和表面着色器从 3Delight 转换为 PRMan,我发现了两者之间的差异,我无法解决。似乎当由于光照着色器中的跟踪而评估表面着色器的透射不透明度时I
,PRMan 中的入射矢量被设置为表面的法线。
在我的示例场景中,有一个半球漂浮在圆盘上方。来自上方的远处光线将跟踪的透射值投射到它们后面的表面上(对于光线来说有点向后,但这是一个演示)。当被相机观察时,半球上的表面被渲染为由其法线着色的纯色,但在查询传输时具有入射方向的不透明度。
这是我期望它的样子,也是我从 3Delight 收到的:
请注意,地板是实心的,几乎是纯绿色;如果入射角是垂直的,我们期望的颜色。但是,当我使用 PRMan 渲染完全相同的场景时,我会收到以下信息:
它似乎在投射法线。
我尝试通过获取值rayinfo
并计算一个 new I
,但这些值都与I
实际设置的值匹配。我也注意到与 的差异E
,但我无法确定 PRMan 中的设置。
问:我怎样才能得到我所期待的事件向量“I”?
内容scene.rib
:
内容projector.sl
:
内容inspect_incident.sl
:
renderman - RenderMan“rgba”显示模式产生3通道图像而不是4?
我有一个 .rib 文件,其中包含以下显示和量化语句:
我希望得到一张有 4 个通道(每通道 16 位)的图像。
然而,我得到的图像只有 3 个通道。
如何在输出中获取 Alpha 通道?
我正在使用prman。
curve - RenderMan 中描述的 RiBasis 是什么意思?
我正在开发 3ds Max 的插件。在这个插件中,我将几何信息导出到可以由 RenderMan 渲染器渲染的 .rib 文件中。当我将 nubrs 曲线的数据导出到 RiBasis 和 RiCurve 描述的 .rib 文件时。我在 RiBasis 中使用了 RtBsplineBasis,但我得到了错误的结果,即渲染曲线比 3ds Max 渲染器的结果短。然后我重新打印第一个和最后一个控制顶点,曲线足够长,但它的形状有点不同。谁能告诉我我怎么得到错误的结果或者RiBasis是什么意思?如何获得正确的 RiBasis?非常感谢!
c - 用 Pixie 编译一个简单的 C 程序进行渲染(开源渲染器)
所以我使用MinGW作为Windows的C编译器我做了一个简单的C程序
所以我使用命令...
gcc -o test.o test.c -I"\..\Program Files (x86)\Pixie\include" -L"\..\Program Files (x86)\Pixie\lib" -lri
确定预编译器的包含文件在哪里......以及链接器的库在哪里
我收到以下错误
我试图看看我是否可能错过了一个链接库,但是......我没有看到丢失的引用但是在 .h 文件中
有没有人有什么建议?
imagemagick - Imagemagick 转换适用于具有非 RGBA 通道名称的 OpenEXR 文件
由 Pixar 的 RenderMan 生成的 OpenEXR 文件使用不同的、非传统的通道名称,Ci.r, Ci.g, Ci.b, a
而不是R, G, B, A
. 而 Imagemagick 的转换似乎无法处理这个问题?
给定一个具有以下通道的EXR 文件:
我喜欢通过 Imagemagick 的转换将其转换为 JPEG:
我得到的是一个空的JPEG。有谁知道如何让 Imagemagick 知道不同的频道名称?
tcl - TCL 检查环境变量
因此,我一直试图为此找到答案,但在互联网上找不到答案。我需要检查是否存在环境变量。我以为我有正确的代码,但它一直返回错误。
有任何想法吗?
graphics - 在 Renderman 中渲染实体
这是关于没有 Maya(或任何此类 GUI)界面的 Renderman Pro Server 19。
Renderman 文档清楚地解释了如何定义实体:https ://renderman.pixar.com/forum/docs/RPS_19/ribBinding.php#rib-entity-file-example ,但它没有定义如何将实体包含在我们的主要代码。
由于该链接将来可能会失效,因此我将在此处引用文档的一部分:
RIB 实体文件包含单个用户实体。RIB 实体文件不完整,因为它们不包含足够的信息来向渲染器描述帧。RIB 实体文件依赖于渲染管理服务以集成到“合法”或完整的 RIB 文件中。这些文件通过允许渲染管理器将对象插入到预先存在的场景中,为 3-D“剪贴画”提供了机制。
RIB 实体文件必须符合用户实体部分中描述的用户实体约定。总而言之,用户实体必须由属性块分隔,必须具有名称属性,并且必须完全包含在单个属性块中。还必须满足三个附加要求:
标题提示:##RenderMan RIB-Structure 1.1 Entity 必须作为文件的第一行包含在内。
实体必须建立在以原点为中心的对象坐标系中。
实体必须有一个 RIB 绑定请求以提供用户实体中所有几何图元的单个边界框
并附上了以下实体示例的代码:
现在,在主 RIB 文件中一次又一次地包含同一段代码真的很麻烦(需要抽象),所以实体似乎是一个不错的方法。
那么,我应该如何将这些实体包含在我的主文件中?
python - Python字符串错误的字符
首先让我说我试图创建一个最小的示例,但无法复制结果。我尽量不要把我所有的代码都放在这里成为一种习惯,但我不确定用另一种方式来说明这个问题。我正在编写一个类以将数据从我的应用程序输出为特定格式,但我在代码中得到了错误的结果。
我试图输出的格式应该是这样的:
节点样式“nodeType”“名称”
“属性类型属性名称” [值]
如果属性链接到另一个节点
“参考属性类型属性名称”[“节点名称:输出属性名称”]
例子:
我得到的结果如下所示:
如果在字符串中输出特殊字符和额外项目直到引用另一个节点,它看起来就像这样。如果我链接到另一个属性让我们说basecolor,它只会给出错误的结果,直到basecolor。如果根本没有连接就没有问题。为什么字符串会给出这种行为?这是有问题的课程。该类采用我单步执行的一组节点对象。
shader - 有没有办法比较来自不同着色器的两个“凹凸”属性?
我正在尝试制作一个插件,该插件采用选定的着色器并从选定的类型(从所有着色器的列表中)创建另一个。
创建一个新的着色器并命名它并在对象上替换它不是问题,但我也在尝试重新连接它的所有属性,我遇到了一个真正的问题。
如果源着色器是 aPhong
并且目标类型是Blinn
重新连接它们的所有公共属性没有问题(我在循环中列出了我的目标着色器的所有属性,我将它们全部比较并尝试连接如果有类似那些)。
Blinn
并且Phong
凹凸属性被命名为: .normalCamera
。
但我的问题是:
对于 a
PxrDisney
,例如,bump 属性被命名为:.bumpNormal
。对于 a
PxLMPlastic
,凹凸被命名为:.diffuseNn
。
关于如何绕过这个问题的一些想法?
xml - 如何在 Nuke 中读取 DTEX 文件格式?
我想在 Mac 上为 The Foundry Nuke 添加 Pixar RenderManProServer 21.5 库的组件。这些组件对于阅读DTEX
格式(对于深度合成)至关重要。Foundry 的用户指南告诉我,我需要创建一个 XML environment.plist文件并将其放在.MacOSX目录中。
但它不起作用。
有没有其他方法可以在 Mac 上为 Nuke 安装 RenderMan 库组件?