October 29, 2018
The project started with my interest in food photography. I had been planning to do a realistic CG food project for a while. I would go on Pinterest and drool upon plethora of amazing food photography that it has to offer. Decision making can be a hard process, and for me it was 10 months of procrastination until one late night I realize that I have been eating too many cookies while working. So here it is, a recipe to create some cookies and milk.
Recipe is very simple, and involves modelling, lighting, shading and rendering. There are some interesting parts when we get to create some cookie crumbs and milk bubbles.
We can start by creating a pinterest board of various cookies and milk photography, thinking about various composition and elements we like and dislike.
Let's take the cookie available with us and create a cheap setup for photography (Yes, it could be a cookie on a toothpick on a Toblerone) or a tripod. Take photographs all around the cookie so we can also use it as a sculpting and texturing reference later on. The hard part is not to eat the cookie.
We start by blocking out the scene in Maya using basic shapes. Modeling should be pretty straight forward using subdivs. While modeling, it's important to get the ratios, proportions and composition right. Once we have a general idea for our composition, we can then create the camera and set dress our elements accordingly.
Next we'll export the cookies to ZBrush so we can sculpt those nice organic details. For this composition we can just create one cookie, and then duplicate and rotate the cookie several times, to set dress, so we can be efficient and focus on making that one cookie look realistic. Using basic sculpt brushes, mainly move, clay and damian standard we can get a decent look. At this point we are focusing on basic shapes and some smaller cracks, choco chips etc. Micro-details can be added through displacements/bump maps when we shade. We can then export a mid-resolution version of our cookie to Maya, still containing most of the major silhouette.
At this point we can also sculpt some bubbles in our milk. Making holes in geometry can be tricky, but ZBrush has us covered here. We simply paint a mask where we want holes in our mesh and then create polygroups based on mask selection. With our polygroups we can create panel loops to make it smooth and get desired shapes we want and then using the Curve Bridge tool we can create convincing bubbles in the milk.
Creating crumbs on the tray and on cookie surface is simple to setup in Houdini. Let's start by creating a Sphere, then creating multiple versions of distorted sphere using mountain node. We can then import our geometry in Houdini and create random points on surface. Using copy stamping we can easily scatter the cookie crumbs on the cookie.
To scatter on tray, we need a bit more control, and we can do that by painting density of crumbs we want on the tray and then duplicating those cookie crumbs on it.
Once all the geometry is created, we can then export it to Maya as an Alembic file.
Now that we have our scene setup in Maya, with all the geometry imported from Houdini and ZBrush, we can start to set up lights. Before setting up the lighting it is important to refer to some photographic references for lighting food and also read about real world lighting techniques. A lot of food photography uses a strong key light with a soft box, which is blocked by cards to create desired effects and bring the food to the focus. Good lighting is important for storytelling and leading the eyes of viewer to see what is important.
In our case we will start with a strong key light, adding some bounce light from a HDRI and then a rim light for shaping. To control the light emission energy we will explore several RenderMan features for control light, including geometrical light blockers.
Let's create a PxrRectLight, which is perfect for simulating a soft box. We can position it to the left of the scene and start an Interactive Preview Render(IPR) to visualize our lighting in real time. It's important to get correct placement of the light, looking at the composition and how the light falls onto the cookies and the shadows the light creates. Focusing on the light's position and intensity is a good starting point.
Intensity can be changed by adjusting exposure(F-Stops), intensity or scaling the light itself (make sure light is not normalized).
Once the light position and intensity starts to look good, we can also set the emission focus. This feature helps focus the light energy and in this case will help us achieve a nice gradation and fall-off. Using Cone Angle and Cone Softness can also help in refining the look of the gradient. Now let's plug in a Soft Box HDR as our Color Map within the light, so that we get subtle coloring in reflections and in the fall of areas of light. We want this key light to be fairly cool and the fill and bounces to be warm. This will help pop out the cookies and milk from the background elements.
We can now create a PxrDomeLight, this will act as our fill light. Similar to our key light we can adjust the intensity and plugin a HDRI in the Color Map channel.
We are using a free HDRIcreated by Maxime Roz available from this website: http://www.maximeroz.com/hdri-free-pack/
(soft box and environment HDRI are available with the asset files)
Finally let's create a rim light, this will help define the forms and allow the the silhouette to read more clearly. We can now fine tune the colors of each light by either adjusting the temperature control or the color swatch. Using IPR provides interactive control of the physically plausible lights, letting us focus on art direction and look development to quickly dial in the desired look, without having to worry about all the technical details or wait for a rendering to complete. .
Once The key, fill and rim lights are in ballpark, we can isolate each light for fine tuning. A lot of lighting tweaks will be also made while shading, going back and forth to achieve the correct look.
Now that we have our lighting setup, it's time to add some shading and textures to our scene. RenderMan 21 comes with various integrators, and we will be rendering this scene using PxrPathtracer. Since this is a forward path tracing algorithm, it will work well with our light setup with HDRI and key light. Let's start by setting up the shaders, Bxdfs, for our scene.
We can start by shading the set first, which involves background wall, tray and wooden table. We will use PxrSurface to shade all these objects. PxrSurface is an all purpose shader the provides a lot of freedom and versatility. Since these objects won't have any layers we can use PxrSurface to get the look we want (for a layered shader we'd choose pxrLayeredSurface). The material setup is simple and mostly involves Diffuse, Normal/Bump, Specular, Displacement and Specular Roughness.
It is good to think about building materials in lobes, i.e. Diffuse Lobe, Specular Lobe, Subsurface Lobe. This way we can focus on one material parameter at a time and build upon our shaders.
Typically we will define the albedo of a material by giving it a Diffuse map. We can paint on the UV's or give it a ptex map. We can adjust the multiplier (gain) to adjust the look.
Tip:
Make sure your textures follow the linear workflow. In RenderMan 21 most of it is already taken care for us. While importing color map through PxrTexture node we can check the linearize button to make sure we see the expected color that we painted.
Tip:
RenderMan has a special format for storing texture data, in .tex files. This format is useful for efficient LOD. It's a good idea to convert all your textures to .tex file format for PxrTexture node, you can do it manually one by one through txmake command or use the texture manager which allows to convert files recursively. Note, when using .tif, .exr or other formats, RenderMan for Maya will automatically run txmake and convert these images in the RenderMan folder. Pre-converting the files simply allows us to skip that step.
This is where we can plug in our maps to control the Specular Gain and also Roughness. Specular gain determines how reflective we want the material to be, and Roughness determines the glossiness of the material (shiny vs matte). A Specular map is generally added to the Face Color parameter, and the Roughness/Glossiness map is added to Specular Roughness parameter.
Face and Edge color controls the Fresnel fall off. Generally, all materials have high edge color thus increasing the reflection away from the camera viewing angle. RenderMan 21 also provides advanced controls like specular model, anisotropy and shading tangent. For our purposes we will leave those with default their settings and simply plug in our specular and roughness maps to get desired result.
Tip: Paint specular map (Face Color) to be black and white (0-1) and then use a PxrRemap node to control the output values of your map. Setting up shader this way will provide a lot of freedom for art direction without having to edit the image externally in Photoshop or Mari.
These can be created on a per lobe basis or globally. RenderMan 21 allows for adding bump to individual diffuse and/or specular channel or globally that affects each lobe. We can for most materials just use the global Bump Normal parameter to get those extra fine details. For the Normal map we can use, PxrNormalMap node instead of PxrTexture node. This way we can just point it to the normal map file and also adjust the scale of the bump in the same node. PxrSurface also allows for layered bump/normal which could be useful for getting additional layer of fine details.
This is useful to create some translucent effect where complex scattering of light occurs within the surface for example skin, ketchup or our cookie. RenderMan provides various Subsurface shading models to choose from for a variety of effects, like Jensen Dipole, d'Eon Better Dipole, Burley Normalized, and Multiple Mean Free Paths.
For our cookie, we will use Jenson Dipole model, since we are trying to produce a realistic result and using the same color map we used for diffuse it will give as a little more translucency in the occluded region of cookie, making it look natural.
There are 2 additional options: the Mean Free Path (MFP Distance and MFP Color.
MFP Distance defines how far that ray travels within the surface. MFP Color, on the other hand, defines which color/wavelength of light travels furthest.
RenderMan also gives us trace controls, Continuation Ray mode could be useful in scenarios where we are not getting enough scatter. By default it is off which means light simply traces out of the object.
By adjusting Subsurface gain, MFP Distance and MFP Color we can get the correct look for our cookie.
Single scatter is an inexpensive scattering method, which can be used for most situations, but lacks fine controls. We will use Burley Normalized Subsurface, which provides added contrast and saturation for our milk.
In RenderMan 21 various Jensen subsurface models assume a locally flat, semi-infinite medium. PxrSurface gives us the added flexibility of combining single scatter with subsurface, for added Subsurface control in thin areas. This can be beneficial for added translucency if we are aiming for skim milk for example.
For our milk we will set Continuation Rays to All Hits, and then set our Max continuation hits to 10. These settings will generate a lot of scattering. We will also use the milk settings suggested in the RenderMan docs under Table of Scattering Values, keeping in mind scene scale in order to tweak our depth settings. The deeper the scattering, the more transparent the milk will look. Too much scattering, and our milk is at risk of looking too watery, too little scattering, and the milk will look waxy. Approximating a realistic subsurface balance is difficult, so always consult image references.
Another subsurface trick, was to use a very slight orange irradiance tint color value, which will tint the subsurface before the calculations happen, giving our milk a nice golden glow, this was done in order to counteract the cool lighting in the scene, which was making our milk too blue.
With most of our scene shaded, we can move on to creating our glass shader. The bottle requires a layered shader, so we will use PxrLayerSurface for this, and create several layers, base glass, milk droplets, dirt and dust. To add layers to PxrLayerSurface, we will plug in a PxrLayerMixer.
PxrLayerMixer is where we can define a base material and then layer other bxdf's on top of it using PxrLayer.
We will make a PxrLayer (glass) as our base layer. Then we will make another PxrLayer (milk) as layer 1 in PxrLayerMixer that goes on top of the glass. We will provide a Layer1 mask that will act as opacity for our milk on top of glass.
To create the bottle we will enable the Glass lobe. Here we can define the Refraction gain, Reflection gain and Refraction Roughness of the glass. We can also change IOR in the Advanced parameters, however we will use the default 1.5 because that is the IOR for glass. To make glass we want very low diffuse and high refraction.
Tip:
Increase max Diffuse and max Specular depth based on the glass surface in render settings, this will ensure that you are seeing the correct refraction results by tracing objects inside and behind the glass geometry.
Now that we have shaded all of the objects in our scene, we can create different render elements that we can use to composite our image and do some color correction.
This is very straight forward in RenderMan, we can just enable various Light path Expressions (LPEs) to output our Diffuse, Specular, Indirect Lighting, etc, as secondary passes.
LPEs can be creating via the Render Settings -> Passes -> Outputs.
To create Matte ID for objects, RenderMan provides the PxrMatteID node. On each of our bxdfs we can add an extra RenderMan attribute for Matte ID and then connect it to PxrMatteID node. This will create flat color output, which can be used to composite and color correct specific areas. Each MatteID node can support upto 6 color IDs.
Once we have all our passes rendered as a 32-bit exr, we can import it into Photoshop and layer those elements on top of each other. This allows us to control individual render elements and do any color correction and minor tweaks to get the final look. At this point we can also add little bit of chromatic aberration and additional post effects to give it photographic qualities.
As we can see it is a simple recipe to create realistic image. With RenderMan 21 we get physically correct lighting and shading at our fingertips. Using straightforward workflows we are able to create a realistic image within a week's time. RenderMan 21 makes this cookie making process a breeze.
I hope you enjoy these cookies and milk at home and share your own version of this recipe.
Harsh Agrawal is a CG Generalist, specializing in shading, texturing and look development who loves watercoloring in his free time.
He's currently working at ILM in Singapore.
Personal Website
本项目源于我对食物摄影的兴趣。我一直计划做一个逼真的计算机图形(CG)食物项目。我会去 Pinterest 浏览大量令人惊叹的食物摄影作品。下定决心是一个艰难的过程,对我来说,这拖延了整整10个月,直到一个深夜,我意识到,我在工作时吃了太多的饼干。于是就有了这个饼干和牛奶的创作。
食谱很简单,它涉及建模、灯光、着色和渲染。我们在制作饼干碎末和牛奶泡沫时会有一些非常有趣的内容。
我们从创作一个有各种饼干和牛奶摄影的 Pinterest 板入手,考虑到我们喜欢和不喜欢的各种构图和元素。
让我们用现有的饼干,制定了一个便宜的摄影方案(是的,可以把一个饼干放在牙签和Toblerone三角巧克力上),或三脚架上。我们在饼干周围拍摄了一些照片,这样我们就可以将它们作为以后进行雕刻和纹理处理的参考。要控制住不吃饼干真的很难。
我们首先使用基本形状勾画出 Maya 场景。使用Subdivs建模应该非常直截了当。在建模时,重要的是倍率、比例和构图要恰当。一旦我们对构图有了概念,我们就可以摆好摄像机,并相应地装饰素材。
接下来,我们把饼干导出到 ZBrush 中,以便我们可以雕刻一些漂亮的有机细节。对于这个构图,我们只需制作一个饼干,然后复制和旋转饼干几次,加以装饰,这样我们的效率会更高,并专注于让这块饼干看起来更逼真。使用基本雕刻刷,主要是 move 笔刷、clay 笔刷和 Damian Standard 笔刷,我们就得到了一个像样的外观。这时,我们专注于基本的形状和一些较小的裂缝、巧克力片等细节。当我们着色时,可以通过置换/凹凸贴图添加微细节。然后,我们可以将中分辨率版本的饼干模型导出到Maya中,这时仍包含大多数的主要轮廓。
到了这里,我们还可以在牛奶中雕刻一些气泡。用几何图形制作一些小孔可能比较棘手,但 ZBrush 可以在这方面帮到我们。我们只需绘制一个在网格上有孔的遮罩,然后根据选择的遮罩创建出多个多边形组。有了不同的多边形组,我们可以创建小组循环使其更为光滑,并获得所需的形状,然后使用 Curve Bridge 工具,就可以在牛奶中创造出令人信服的泡沫。
用 Houdini 技术可轻易地创造一些在托盘上的饼干碎末。我们先创建一个球体,然后使用山峰节点创建多个版本的变形球体。接着我们可以将几何图形导入 Houdini 中,并在表面创建一些随机点。使用复制压模,我们就可以很容易地在饼干上撒上碎末。
要在托盘中撒上碎末,我们需要更多的控制,可以通过绘制托盘上想要的碎末密集度,然后在盘上复制这些饼干碎末。
创建好所有几何图形后,我们可以将其作为 Alembic 档案导出到 Maya 中。
现在我们在 Maya 中设置了场景,有了从 Houdini 和 ZBrush 导出的几何图形,就可以开始设置灯光。在设置灯光前,重要的是参考用于食物打光的一些摄影资料,并且还要阅读有关真实世界照明的技术。许多食物摄影使用强烈的主光源,利用卡片阻挡光线的柔光盒,制造所需的效果,并将光线聚焦在食物上。好的灯光对于叙述故事非常重要,它能引导观众的眼睛去看重要的地方。
在我们的作品中,我们先用强烈的主光源,添加一些来自 HDRI 的反弹光,然后用边缘光塑造轮廓。为了控制发光能量,我们将探索几种 RenderMan 控制灯光的功能,包括几何图形的遮光。
让我们创建一个PxrRectLight,这是模拟柔光盒的最佳选择。我们可以将其放置在场景的左边,并启动一个交互式预览渲染器, Interactive Preview Render(IPR)来实时显示我们的灯光。重要的是要正确放置灯光,观察构图和光线如何落在饼干上,以及光线产生的阴影。注重光的位置和强度是很好的开始。
可以通过调整曝光(F-Stops)、强度或缩放光本身(确保光线未被归一化)来更改强度。
一旦光的位置和强度看起来不错,我们就可以设置发射焦点。此功能有助于集中光能,在这种情况下,将有助于我们达到不错的光线渐变和衰减效果。使用锥角 (Cone Angle) 和锥度柔化(Cone Softness) 也可以帮助加细灯光梯度的外观。现在我们插入柔光盒HDR作为我们光线内的颜色贴图(Color Map),这样我们在反射和光区落点就得到了微妙精细的着色。我们希望主光线是清冷的,然后补光和反光是温和的。这将有助于饼干和牛奶从背景元素中凸显出来。
我们现在可以创建 PxrDomeLight,这将用作我们的补光。和我们的主光线类似,我们可以调节该灯光的强度并在颜色贴图通道中插入HDRI。
我们使用的是由以下Maxime Roz网站提供的免费 HDRI:
http://www.maximeroz.com/hdri-free-pack/
(柔光盒和环境HDRI可用于.asset档案中)
最后,我们来创建边缘光,这将有助于确定形式,并能让轮廓显示得更加清楚。我们现在可以通过调节温度控制或颜色样本来微调每个光线的颜色。使用 IPR 提供合乎实际灯光的交互控制,让我们专注于艺术角度和效果变化,以快速调节到所需的外观,而无需担心所有的技术细节或等待渲染完成。
一旦主光、补光和边缘光都大致合适,我们便可以单独对每个灯光进行微调。很多灯光调整也可以在着色时进行,可反复调节以达到正确的外观。
现在我们的灯光已设置完毕,是时候对场景进行着色和纹理处理了。RenderMan 21附带了各种集成器,我们将使用 PxrPathTracer 来渲染这个场景。由于这是正向光线追踪算法,它会与我们的HDRI光线设置和主光线很好地配合。我们从为场景设置着色器Bxdfs开始。
我们可以首先为设置着色,其中涉及背景墙、托盘和木桌。我们将使用 PxrSurface 为所有这些物体着色。PxrSurface是一个通用着色器,提供了很多自由和多功能。因为这些物体没有任何层次,我们可以使用 PxrSurface 来获得我们想要的外观(对于分层着色,我们要选择PxrLayerSurface)。材料设置很简单,主要涉及漫射、法线/凹凸、高光反射、置换和高光粗糙度。
最好考虑在波瓣中创建材料,如漫射波瓣、高光反射波瓣、次表面波瓣。这样,我们可以一次只专注于一个材料参数,建立于我们的着色器。
漫射波瓣:通常,我们通过给材料漫射贴图来定义材料的反射率。我们可以在UV上绘制或给予ptex贴图,这样可以调整倍增(增加)来调整外观。
诀窍:确保纹理遵循线性工作流程。大部分已在RenderMan 21里顾及到了。当通过 PxrTexture 节点导入颜色贴图时,我们可以检查线性化按钮,以确保看到我们绘制的预期颜色。
诀窍:RenderMan 有一个特殊的格式,用于在 .tex 档案中存储纹理数据。此格式对于高效的 LOD 非常有用。将所有纹理转换为对于 PxrTexture 节点的.tex 档案格式是一个好主意,可以通过 txmake 命令手动逐个执行,或者使用纹理管理器以递归方式转换档案。注意,当使用 .tif、.exr 或其他格式时,RenderMan for Maya 将自动运行 txmake 并在 RenderMan 档案夹中转换这些图像。预转换档案只是让我们跳过了这一步。
高光波瓣:这是我们可以插入贴图来控制高光增益和粗糙度的地方。高光增益决定了我们希望材料达到的反射率,粗糙度决定了材料的光泽度(有光泽与哑光)。通常将高光贴图添加到面部颜色参数中,而将粗糙度/光泽度贴图添加到高光粗糙度参数中。
面部和边缘颜色控制“菲涅耳效果"(Fresnel)衰减。通常,所有材料具有高边缘颜色,从而增加远离摄影机视角的反射。RenderMan 21也提供诸如高光模型、各向异性和着色切线的高级控制。为了我们的目的,我们对这些均采用默认设置,只插入我们的高光和粗糙度贴图以获得所要的效果。
诀窍:将高光贴图(面部颜色)绘制为黑白(0-1),然后使用 PxrRemap 节点控制贴图的输出值。以这种方式设置着色器将为美术设计提供很多自由度,而无需在 Photoshop 或 Mari 中进行外部编辑图像。
凹凸/法线:这些可以基于每个波瓣或全局来创建。RenderMan 21允许向单个漫射和/或高光通道添加凹凸贴图或者全局添加影响每个波瓣的凹凸贴图。我们可以为大多数材料只使用全局凹凸法线参数以获得这些额外细节。对于法线贴图我们可以使用 PxrNormalMap节点而不是 PxrTexture 节点。这样,我们可以将其指向法线贴图档案,并且还可以调整同一节点中的凹凸比例。PxrSurface 还允许分层的凹凸/法线贴图,这可能有助于获得额外的细节层次。
次表面波瓣:这有助于在有产生复杂散光的表面范围内创建一些半透明效果,例如在皮肤、番茄酱或我们的饼干上。RenderMan 提供各种次表面着色模型,可以选择各种效果,如 Jensen偶极光源、d'Eon 更好的偶极光源、Burley归一化和多个平均自由程(Jensen Dipole, d'Eon Better Dipole, Burley Normalized, and Multiple Mean Free Paths).
。
对于我们的饼干,我们使用 Jenson 偶极光源模型,因为我们力图产生一种真实效果,并使用我们用于漫反射的相同颜色贴图,它会在饼干的被遮挡区域提供更半透明的效果,使它看起来更自然。
还有 2 个附加选项:平均自由程( MFP Distance 和 MFP Color)。
MFP Distance 定义光线在表面内行进的距离。另一方面,MFP Color 定义行进距离最远的光的颜色/波长。
RenderMan还为我们提供了追踪控制,连续射线模式在我们没有得到足够散射的情况下会很有用。默认情况下,它是关闭的,这意味着光线只从物体中追踪出来。
通过调整次表面增益、MFP Distance 和MFP Color,我们可以得到饼干的正确外观效果。
单一散射或次表面散射:单一散射是一种廉价的散射方法,可用于大多数情况,但缺乏精细控制。我们将使用 Burley 归一化次表面散射,它将为我们的牛奶提供额外的对比度和饱和度。
在RenderMan 21中,各种 Jensen次表面模型采用局部扁平的半无限介质。PxrSurface 给我们提供了将单次散射与次表面组合的更多灵活性,用于在稀薄区域添加次表面控制。例如,如果我们的拍摄目标是脱脂牛奶,这种方法对于添加半透明的效果非常有益。
对于我们的牛奶,我们将 Continuation Rays 设置为 All Hits,然后将我们的最大 Continuation Hits设置为10。这些设置将产生大量的散射。我们还使用RenderMan文档中的散射值表下建议的牛奶设置,要考虑到场景缩放以调整我们的深度设置。散射越深,牛奶看起来越透明。太多的散射会让我们的牛奶看起来太清淡,太少散射会让牛奶会看起来如蜡一般。接近真实的次表面平衡是很困难的,所以要一直参考图片资料。
另一个次表面散射方法,是使用非常微弱的橙色辐照度色调颜色值,这将在计算开始之前调节次表面,让我们的牛奶有很漂亮的金色光,这样做是为了抵消在场景清冷的灯光下,我们的牛奶颜色会看起来太蓝。
我们的大部分场景都已着色,这样我们可以继续创建我们的玻璃着色器。奶瓶需要一个分层着色器,所以我们将为此使用 PxrLayerSurface,并创建几个层次,如基层玻璃、牛奶滴和灰尘。要将图层添加到 PxrLayerSurface,我们需要插入 PxrLayerMixer。
我们可以在 PxrLayerMixer 中定义基本材料,然后用 PxrLayer 加上其他 bxdf 层。
我们将制作一个PxrLayer(玻璃)作为我们的基本层。然后我们将在 PxrLayerMixer 中将另一个 PxrLayer(牛奶)作为第 1 层,放在玻璃上。我们将为第 1 层提供遮罩,让玻璃上的牛奶不透明。
玻璃波瓣:要创建瓶子,我们将启用玻璃波瓣。这里我们可以定义玻璃的折射增益、反射增益和折射粗糙度。我们还可以在高级参数中更改 IOR,但是我们将使用默认值1.5,因为这是玻璃的 IOR。为了创建玻璃效果,我们需要非常低的漫射和高折射。
诀窍:在渲染设置中,基于玻璃表面增加最大漫射和最大高光深度,这将确保通过追踪玻璃几何体内部和后部的物体来查看正确的折射结果。
现在我们已经将场景中的所有物体着色了,这样我们可以创建不同的渲染元素,用于合成图像并做一些颜色校正。
这在 RenderMan 中非常简单,我们可以启用各种光线路径表达式(LPE)来输出我们的漫反射、高光反射、间接灯光等作为第二性光照。
LPEs可以通过渲染设置 - >光照- >输出来创建。
要创建物体的 Matte ID,RenderMan 提供了 PxrMatteID 节点。在我们的每个bxdfs上,我们可以为Matte ID 添加一个额外的 RenderMan 属性,然后将其连接到 PxrMatteID 节点。这将创建平面颜色输出,可用于特定区域的合成和颜色校正。每个 MatteID 节点可以持多达 6 个颜色 ID。
一旦我们将所有的光照结果渲染为 32 位 exr,我们就可以将其导入 Photoshop 并将这些元素叠加在一起。这允许我们控制单个渲染元素,并做任何颜色校正和小调整以获得最终的外观。这时,我们还可以加一点色差和额外后效,让它增添摄影质量。
我们可以看到,这是一个创作逼真图像的简单食谱。使用 RenderMan 21,我们就可以趁手得到真实正确的灯光和着色。使用简单的工作流程,我们能够在一周时间内创建逼真的图像。RenderMan 21让这个饼干图像的制作过程变得无比轻松。
我希望您在家里也可以享受这些饼干和牛奶,并分享您自己的食谱版本。
Harsh Agrawal 是计算机绘图(CG)通才,精于着色、纹理处理和外观创作。在空闲时间喜欢画水彩画。
感谢Meina Young提供中文翻译.