设置[PIXAR RENDERMAN]渲染Maya。
学习目标
导出制作的贴图,并在 Pixar RenderMan for Maya 里做高品质渲染 setting 和 Shader 设置,并再了解下
SSS 属性。
RenderMan 的历史。
对电脑图形历史有很多贡献的 EDWIN CATMULL 1979年入职卢卡斯影业后成立了 PIXAR ANIMATION STUDIO 正式开始开发了 RENDERMAN 。
PIXAR ANIMATION STUDIO 原本是 ILM 的一部分动画开发子公司, Apple 创始人史蒂夫乔布斯从卢卡斯影业收购后,是从出售Pixar图形电脑的硬件公司开始的,但是 John Lasseter制作的短片动画部门制作其他公司的广告动画时跟Walt Disney协作在 1995制作了 TOY STORY 后, PIXAR 就作为独立的 Animation 开发工作室开始走上了独立开发公司的道路,之后制作了 TOY STORY、海底总动员等世界级动画片,之后被 Walt Disney 收购了。
制作多个剧场版动画和短片动画的过程中,把高品质3D渲染技术提升为世界顶级,做了很大的贡献。
RENDERMAN 是现有的具有最悠久历史的渲染软件,在2015年后开始公开发布了免费激活码版本。
安装 RenderMan。
备注 : 在中国如果没有使用 VPN 有可能无法安装。
https://renderman.pixar.com/store
选择 TRY FOR FREE 。
如果已经安装过其他版本或者激活码到期了就选 RENEW 。
一定要创建用户论坛账号。
生成账号后登陆。
https://renderman.pixar.com/intro
点击 Free to Try 按键在申请体验版的 Form 上诚实地输入信息。
填完后提交。
现在打开了下载页面。
点击 Download 按键下载安装文件。
RenderMan-InstallerNCR-22.5.0_1970143-windows10_vc14icc170.x86_64.msi
应该是下载了这种形式的安装文件。
直接安装吧。
尽量维持基本安装路径。
建议不要做改成 D 盘这种动作。
按 Next 键继续安装。
RENDERMAN 管理工具安装完成。
点击 Finish 结束。
自动执行 RENDERMAN 安装管理。
输入在网页上创建的账号和密码后点击 Next 安装。
点击 Show All 就能看到要安装的内容。
RenderMan 基本设置。
执行 MAYA。
作者用的是 MAYA 2019.1 。
环境设置上打开 Plug-in manager 窗口,把 Maya renderman plug-in 进行 load 。
Shelve 上出现了 Renderman 22.5 图标。
上端菜单条也容易找到。
作者只会说明用 SD 里制作的贴图渲染案例的过程。
详细的 Renderman 22.5 功能请参考 Renderman documents 或者 Pixar Renderman 网页。
https://renderman.pixar.com/learn_tutorials
里面有很多RENDERMAN相关案例。
在SD导出 Texture 。
会重新打开 SD 工程导出 Part1 做过的贴图。
贴图用 Metallic Roughness 方式导出。
RenderMan 光照。
设置基本 IBL 光照。
设置方向光。
在 RENDERMAN Shelf 里把鼠标放到太阳的图表上右击就可以选择并生成三种全局光照。
因为会添加 HDR IBL 光照,所以选择 PxrDomeLight 并添加。
使用 SD 和 SP 使用的相同的 HDR 图片。
Tomoco Studio.exr
生成 PxrDomeLight 在 Color Map 登记 Tomoco Studio.exr。
在 Maya viewport 会标识环境图,如上。
第一步先点击 R 键激活 GPU 渲染。
但是添加 Sphere Mesh 渲染后因为面数不足所以是上图的渲染效果。
选择 Sphere Mesh 后把 Rman Subdiv Scheme 在 None 变更成 Catmull-Clark 。
选择 Catmull-Clark 就跟上图一样,渲染的时候会自动适用 Subdivision 。
可以获取跟上图一样的干净的 Surface 。
现在基本设置完成了。
设置成跟 SD 或者 SP 差不多水准的渲染环境就可以了。
RenderMan 材质。
渲染前的材质设置。
1. 设置基本 PBR MATRIAL 。
2. 添加半透效果。
3. 最终渲染。
总共分3个阶段进行。
RenderMan Shelf 里把鼠标放到星星周围后右击,会如上图一样出现 6 种 Surface Material 列表。
添加 SURFACE MATERIAL 。
1. 在选择 Sphere Mesh 的状态下选择 PxrDisney 。
(PxrDisney 可能对大家来说更好理解。会提供跟传统实时渲染引擎的 PBR 差不多的参数。
2. 这个案例比较特别不会使用 Displacement 效果,所以选择基本设置 PxrDisney Material 。
在 HyperShde 里修改。
主要会修改以下 Input 信息。
1. Base Color (Albedo)
2. SubSurface(Translucency)
3. SubSrufaceColor
4. Roughness
是 PxrDisney 的 Roughness 基本 GPU Rendering 。
在这里适用 Base Color(Albedo) 和 Roughness Texture 。
现在把 SD 导出的贴图导进 Maya 工程后渲染。
Material Node 设置。
现在开始正式把 Texture 们连接到 Material Node 上吧。
作者在本次案例没有用 HyperShade 窗,用的是 Node Editor 。
使用 RenderMan 专用 Texture File loader 。
在 Node Editor 窗按下 Tab 键后用 PxrTexture 搜索后添加 Node 。
添加了叫 PxrTexture1 的 Node 。
为了便于知道用途, PxrTexture1 名字变更成了 Base_Color 。
用 Ctrl+D 复制 Base_Color Node 后命名变更为 AO_Map 。
因为 PxrDisney 没有单独的 AO map 输入端口,所以要直接用 Blend Node 混合到 Base_Color 。
在 Node Editor 里用 Tab 键弹出搜索窗后用 pxrblend 搜索添加 PxrBlend Node 。
把 PxrBlend node 的 operation 变更为 Multiply , AO Map 连接到 Top Color 后 Base_Color 连接到 Bottom Color 。
通常 RenderMan 里不使用 AO 图, 把 Displacement 等和实际表面Mesh曲率的信息从光的入射角使用 Path Tracing 计算,并声称为 Rendering buffer 。这个案例不会提及 Displacement 。
再次复制 Base_Color Node 后命名变更为 Roughness ,指定 Texture 路径。
Roughness Map 是单通道,根据需求添加 Luminance node ,连接到 Roughness 的 Result RGB 就会变成单一通道信息化。
连接 Normal Map 。
添加 PxrNormalMap Node 后指定 normal map texture 路径,连接到 PxrDisney1 的 Bump Normal 。
Metallic Texture 没连接。Jade 材质本身的 Metallic 值刚开始就设置成了 0 ,所以可以直接用 Constant value 本身。
为了做 preview rendering, Bump Scale 设成了 2。
Bump Orientation 值设置成 OpenGL 。
在 SD 制作 Jade 的时候, Normal map 是以 OpenGL 为准生成的。
利用 RenderMan IPR 做的实时 preview rendering。
做个测试渲染会发现色彩空间不正确。
Renderman的 PxrTexture Node 基本上 sRGB to Linear 是 False 。
PBR 渲染里 Linear Space Rendering 是很重要的概念,详细的概念在前面的章节已经讲过,再重新看下吧。
首先 Base Color 是材质的漫反射颜色。
因为这不是记录 Shader 或 Material 的 PBR 信息的贴图,所以一定要进行色彩空间变换。
点击 Base_Color Node 和 AM_Map Node ,两个都 Check Linearizer Toggle 。
普通 Linear Space rendering 结果。
Base_Color 和 AO_Map 都执行了色彩空间变换,现在材质正确的渲染完成了。
再扩展,变更 Tone Mapping 后观察下。
主要用在 HDTV 等地方的 Rec709 结果。
sRGB 和 rec709 对比可以在 View / Display View 菜单确认。
最终高分辨率渲染结果。
使用 RenderMan 的高分辨率渲染。
Substance Designer 里的标准 PBR 实时渲染。
使用 Nvidia Iray 的渲染。
以外的参考知识。
来变更下 Tone Mapping 方式。
是最近在 PBR Rendering Framework 备受瞩目的 ACES RRT v1.0 。 (现在是 UE4 的基本方式)
ACES RRT v1.0 Reference 를 잠깐 살펴 보자.
来看下 ACES RRT v1.0 Reference 。
float3 ACESFilm(float3 x)
{
float a = 2.51f;
float b = 0.03f;
float c = 2.43f;
float d = 0.59f;
float e = 0.14f;
return saturate((x*(ax+b))/(x(c*x+d)+e));
}出处 : https://knarkowicz.wordpress.com/2016/01/06/aces-filmic-tone-mapping-curve/
出处 : https://knarkowicz.wordpress.com/2016/01/06/aces-filmic-tone-mapping-curve/
为了理解线性渲染工作流,介绍一个读一下会有帮助的案例。
出处 : Renderman.pixar.com
https://renderman.pixar.com/color-management
此外的参考知识2.
简单设置 PxrPathTracer。
修改 Node Editor 里可以看到的 PxrPathTracer ,可以控制渲染速度(性能)。
PxrPathTracer 的生成。
打开 RenderMan Rendering Option 窗, Integator 选择为 PxrPathTracer 就可以看到 Node Editor 里生成了 PxrPathTracer 。
通常 Max Depth 会对渲染速度有最大的影响。
意味着 Path tracing 的光线追踪(Bounce) 次数的最大值。
Russian Roulette 的 Depth 值低于 4 后,渲染速度虽然变快了,但是会生成很多 Noise 。
以上数值在 IPR 渲染状态下几乎没变化,在 Production rendeing 状态会有差距。
About JP
链接: Website.
在这里插入图片描述
出生在韩国的TA。
1997年开始从事电脑图形视觉化工作后,在这个行业已经有21年经验了。
在多个网络游戏公司引领过美术团队,之前在allegorithmic担任TA负责人,在中国网易盘古工作室担任TA总监,现在是巨人网络TA部门的总负责人。
懒惰的人才有创意”是他坚信并执行的哲学道理。