照明与渲染/Blender
本页包含可与Verge3D for Blender一起使用的照明、渲染和背景属性的信息。
- 渲染器
- 环境照明
- 灯光(Lights)
- 立方盒反射光照探头
- 反射平面光照探头
- 背景(Background)
- 全局渲染属性
- 环境光遮蔽
- 轮廓渲染
- 每个对象的渲染属性
- 在 HiDPI(视网膜)屏幕上渲染
- 贴合摄影机边缘
- 可见性断点
- 线条渲染
- 剪切平面
渲染器
Verge3D被设计为尽可能地趋近Blender的Eevee渲染器。它支持基于物理的着色、灯光、阴影和基于图像的照明(IBL)。
环境照明
环境照明是Verge3D图形流水线的一个非常重要的组成部分。您可以只用环境贴图来照亮整个场景,而不使用任何灯光对象。请参阅 电动车定制器演示 作为示例:
默认的立方体模板为基于图像的照明提供了一个HDR纹理。您可以用自己的文件替换这个纹理,或者从头开始设置环境照明。这里是基本的 世界节点 设置,它在环境照明和背景上都使用了相同的纹理。
当使用HDR纹理时,确保将色彩空间设置为线性。
灯光(Lights)
在某些情况下,仅仅使用基于图像的照明不足以照亮场景。如果您想模拟一些额外的光源,需要动态阴影,或者您需要移动您的灯光(如汽车灯光),可以使用直接光源。
Verge3D支持以下灯光类型:
- Point Lights — 点光源,Verge3D支持颜色(Color)和功率(Power)属性。
- Sun Lights — 太阳光,Verge3D中支持颜色(Color)和强度(Strength)属性。
- Spot Lights — 聚光灯,颜色(Color)、功率(Power)、聚光灯形状(Spot Shape):Verge3D中支持尺寸(Size)和混合(Blend)属性。
- Area Lights — 面光,Verge3D支持的属性包括颜色(Color),功率(Power),“方形(Square-Shaped)”中的尺寸(Size),以及“长方形 (Rectangular-shaped)”中的X/Y尺寸(Size X/Size Y)。不支持碟形(Disk)和椭圆形(Ellipse)形状属性。
此外,您还可以为点光源、太阳光和聚光灯指定阴影属性。请参阅 对应章节 的更多信息。
立方盒反射光照探头
立方盒反射(Reflection Cubemap) 光照探头是一种用于通过生成局部立方盒反射来增加局部间接照明的对象。 这种类型的光照探头对象在场景中增加了镜面间接照明。
有关使用示例,请查看 Light Probe 演示(也可在资源商店中找到)。
支持以下属性:
- 探头
-
常规探头设置:
- 类型
- 影响体积的类型:球形或长方体。 只有位于此体积内的对象才会受到光照探头照明的影响。
- 半径/尺寸
- 控制影响体积的大小。 您也可以改变对象的比例, 使影响体积的形状不均匀。
- 强度
- 间接照明的强度。 任何不等于1.0的数值在物理学上都是不正确的。
- 裁剪起点
- 裁剪起始距离。 位于比此值更近的对象将不会被渲染到立方盒反射中。
- 裁剪终点
- 裁剪结束距离。 位于比此值更远的对象将不会被渲染到立方盒反射中。
- 可见性
-
对象可见性设置:
- 可见性集合
- 将应该出现在立方盒反射上的对象限制在这个集合中。 如果未指定,则使用所有场景对象。
- 反转可见性集合
- 如果指定了 可见性集合 , 则反转对此探头可见对象的选择。
- 自定义视差
-
启用视差校正的自定义设置。
这一组设置定义了一个视差体积,
用来投射探头捕捉到的照明。
如果 自定义视差 未启用,
视差效果将根据影响体积的 类型 和 半径/尺寸 计算。
- 类型
- 视差体积的类型:球形 或 长方体。
- 半径/尺寸
- 视察体积的大小。
- 自定义影响
-
启用自定义影响设置。
这一组设置允许定义一个将受到此光照探头影响的对象集合。
(如果指定) 影响集合 ,
将不会使用 类型 和 半径/距离 等常规探头设置。
- 影响集合
- 将光照探头将会影响的对象限制为此集合内的对象。 如果指定此项, 则它将代替 类型 和 半径/距离 等中的常规设置。
- 反选影响集合
- 如果指定了 影响集合 , 通过此选项可反选将受到光照探头影响的对象。
为了在Blender的视窗看到使用 立方盒反射 对象的结果,
您需要首先通过烘焙立方盒反射 或 烘焙间接光照明 按钮烘焙它们的立方体贴图,
这两个按钮都位于 间接照明 面板中,
该面板位于 渲染属性 选项卡中。
另外, Cubemap Size
属性还可以控制 立方盒反射
对象所使用的立方体贴图纹理的大小。
IBL环境模式
的设置也会影响到由 立方盒反射 对象生成的立方体贴图。
由于实现细节的差异性, 在Blender和Verge3D中,立方盒反射 光照探头的表现是不同的。
- Blender支持每个对象有多个光照探头,而Verge3D只支持一个。 这就是为什么Verge3D中的对象使用单一的立方体贴图, 要么来自 立方盒反射 对象,要么来自世界环境。 衰减 选项不受支持。
- Blender默认不对网格使用背面剔除(Backface Culling),而Verge3D使用。 因此,在Blender中, 如果 裁剪起点(Clipping Start) / 裁剪终点(Clipping End) 设置调整不当, 放置在探头影响范围内的物体会在立方盒反射上显示为黑点, 这是由于背面也被渲染了。 默认情况下,Verge3D中不会出现这种情况。
- 在将对象渲染(烘焙)到光照探头的立方体贴图中时, Blender只考虑对象材质的漫反射成分, 而Verge3D对它们的渲染与在主场景中的渲染方式没有区别。 这就是为什么全金属物体在Blender 中被渲染成黑色, 但在Verge3D中它们仍然反射了世界环境。
- 为了让 可见性集合 属性在Blender中发挥作用, 要求指定的集合也被链接到场景中。 在Verge3D中不需要, 只需将一个对象分配给一个集合即可。
反射平面光照探头
反射平面光照探头用于将实时反射(间接照明)应用于平面对象,例如镜子、地板和墙壁等。
有关使用示例,请查看 Light Probe 演示(也可在资源商店中找到)。
支持以下属性:
- 距离
- 光照探头影响的距离。
- 衰减
- 控制光照探头影响减小的速度。
- 钳制偏移
- 在光照探头影响范围内的对象的近摄影机剪切。
- 可见性集合
- 光照探头中可见的对象集合。
反射平面光照探头会大幅降低场景的性能,使用时将会对渲染调用乘以N+1。为了加快渲染速度,请在指定时适度控制 可见性集合 中的对象数量。
背景(Background)
在默认情况下,Blender和Verge3D中背景和环境照明会保持一致的渲染。如果需要将它们分开渲染,请使用基于 光路 节点的Is Camera Ray输出的高级世界节点设置。例如,要将背景颜色设置为纯灰色,并继续使用HDR贴图进行环境照明。
全局渲染属性
可在Blender的渲染属性面板上设置全局渲染属性。
- 立方体反射尺寸(Cubemap Size)
-
用于环境照明的纹理尺寸:
- 64, 128
- 请勿使用,256是Verge3D中可支持的最小值。
- 256
- 最合适的质量和较低的内存消耗(推荐)。
- 512
- 更好的质量,适中的内存消耗和相对降低的性能。可用在渲染高质量的反射的场景,例如渲染珠宝。
- 1024
- 高内存消耗,低性能,最佳渲染质量(一般不推荐)。
- 2048, 4096
- 请勿使用,1024是Verge3D中可支持的最大值。
- 视图转换(View Transform)
- 应用于Verge3D效果图的额外颜色校正:
- 标准
- 没有应用其他颜色校正。如果您不需要颜色校正,就改用这种方法,因为它比Filmic的工作速度略快。
- Filmic
- Blender默认方法。
- Filmic Log, Raw, False Color
- 不被支持,Verge3D将改用Standard。
- Enable Shadows and Shadow Map Side
- 启用阴影和阴影贴图面。阴影属性,请在 此处 了解详情。
- Anti-Aliasing
-
抗锯齿,选择场景使用何种反锯齿算法:
- Auto
- 自动,使用系统默认方法。
- MSAA 4x
- 如果目标硬件支持的话,则首选使用4倍采样的多采样抗锯齿。
- MSAA 8x
- 如果目标硬件支持的话,则首选使用使用8倍采样的多采样抗锯齿。
- MSAA 16x
- 如果目标硬件支持的话,则首选使用使用16倍采样的多采样抗锯齿。
- FXAA
- 强制使用快速近似抗锯齿(FXAA)。
- None
- 禁用抗锯齿。
- Use HDR Rendering
-
启用HDR渲染,即高动态范围渲染。
如果激活,Verge3D将使用16位浮动纹理作为渲染缓冲区。此功能可以显著改善Bloom后期处理的渲染以及基于节点的渐变纹理的平滑度。这样做的缺点是增加了GPU内存消耗,降低了性能。
此功能与通常用于生成基于图像的照明的HDR纹理无关,因此激活它不会改善此类纹理的渲染。
- IBL Environment Mode(基于图像照明环境模式
-
- PMREM (slow)
- PMREM(慢速),高质量(默认值)。
- Light Probe + Cubemap (medium)
- 光照探头+Cubemap(中速),降低基于图像的镜面反射质量,性能更好。
- Light Probe (fast)
- 光照探头(快速),禁用基于图像的镜面反射,性能最高。
- Outlining Effect
- 轮廓效果,见 下文 。
环境光遮蔽
环境光遮蔽是一种渲染技术, 通过根据点暴露于光源的程度从间接(环境光) 照明添加柔和阴影来提高场景真实感。
Blender使用地面真实环境光遮蔽(GTAO) (link) Verge3D已经在引擎中部署了相同的技术。
Verge3D支持如下AO设置, 可在 渲染属性 面板中的 环境光遮蔽 部分找到:
- 环境光遮蔽
- 在场景中启用环境光遮蔽。
- Distance
- 计算环境光遮蔽的半径(使用系统单位)。 值更高时会加深暗部和扩大暗部区域, 效果更明显,但性能也会更低。 值越低遮蔽越不明显。
- 系数
- 遮蔽效果的强度。
- 追踪精度
- 更高精度意味着更精确的遮蔽, 同时增加性能消耗。 较低的精度意味着更好的性能,但效果不太明显。
- 弯曲法向
- 使用修改后的(或“弯曲的”)法线来采样环境以取代原始环境。 修改后的发现表示遮蔽最少的方向, 使环境照明更加逼真。
轮廓渲染
轮廓渲染(又名剪影边缘渲染)是一种常见的非真实感渲染(NPR)技术,可以显著增强场景视觉感知。这种效果可用于各种应用,如电子学习、游戏、建筑可视化和技术绘图。
要在Verge3D应用中使用物体的轮廓(和可选的辉光),首先在Blender的渲染属性面板上启用该效果:
然后将 outline(轮廓) 拼图应用于对象物体。
轮廓渲染在AR/VR进程中不起作用。可使用其他方法来突出对象物体,如动画或改变材质的颜色。
可以使用以下属性来调整轮廓:
Enabled — 启用/禁用效果。
Edge Strength — 轮廓强度系数。
Edge Glow — 额外发光的强度(渲染在在主轮廓边缘之外)。
Edge Thickness — 轮廓边缘厚度系数。
Pulse Period — 以秒为单位的脉冲周期。指定以下参数,使效果动画化。
Visible Edge Color — 可见边颜色。
Hidden Edge Color — 隐藏边颜色,在任何其他场景对象后面的被渲染的轮廓边的颜色。
Render Hidden Edge — 渲染隐藏边,启用/禁用渲染其他场景对象后面的轮廓边。
尽管有可能渲染发光的物体,但在大多数情况下可以用轮廓渲染来提高场景的视觉清晰度。如果您需要从灯或其他明亮的物体上发光,可以考虑使用 辉光后期处理 来代替。
每个对象的渲染属性
Verge3D为您的几何对象支持以下额外的渲染属性:
- Rendering Order
- 渲染顺序,修改特定对象的渲染顺序。索引越小,对象就越早被渲染。在大多数情况下,当使用混合透明度时,您需要调整这个值,以消除透明度的伪影。
- Frustum Culling
- 锥台剔除,启用/禁用对象的锥台剔除优化。如果您有一些可以移动到屏幕空间之外的蒙皮对象,请取消勾选这个选项,以防止它被剔除。
- Receive Shadows
- 接收阴影,渲染或不渲染给定对象的阴影。参见 这里 的更多信息。
- HiDPI Compositing
- HiDPI合成, 使用HiDPI通道渲染对象,参见 See below for more info.
- Fix Ortho Zoom
-
固定正交摄影机变焦, 反转正交摄影机的缩放,将其作为该对象的比例因子。当为正交摄影机的父级对象启动此属性时,用户缩放摄影机不会导致缩放/移动。
如果您的对象依然出现了缩放,请清除它的父级反校正(逆矩阵):
- Fit to Camera Edge
- 请在 这里 查看详情。
- Visibility Breakpoints
- 启用对象的可见性断点控制。参见 此处 。
在 HiDPI(视网膜)屏幕上渲染
时至今日,大多数移动端设备和桌面设备的屏幕都使用了高像素密度技术(即“Retina”显示器),显着提高了画面渲染质量。但这带来的缺点是,渲染过多像素会增加设备的性能消耗。
以下两种方法,可以提高内容渲染质量,但又不会使得场景变得过慢:
- 使用更好的分辨率,例如将屏幕缩放比例因子设置为1.5左右。参见 此处 详细介绍。
- 仅对重要的内容启用HiDPI渲染,例如文本、屏幕空间UI元素等。
第二种方法,可以通过启用位于 对象属性 面板中的 HiDPI Compositing 选项轻松启用:
有关使用示例,请查看 Ring 演示(也可在资源商店中找到)。
贴合摄影机边缘
Fit to Camera Edge 是一种基于 Blender 模型绘制屏幕空间UI元素的技术。 与使用HTML/CSS相比,这种UI设计方法对于3D艺术家来说更“原生”,并且不需要外部工具,也带来了更多的可能:因为这类UI元素是真正的3D对象,您可以应用着色器、光照、动画、变形等3D技术让它们无缝集成到场景中,并产生交互变化等。
当您将摄影机设置为某些对象的父对象时,其 对象属性 面板中就会出现如下设置:
- Horizontal
- 对象要贴合的画布水平边界。 None — 水平方向不贴合, Left — 贴合左侧边界, Right — 贴合右侧边界, Stretch — 水平缩放对象以贴合屏幕。
- Vertical
- 对象要贴合的画布垂直边界。 None — 垂直方向不贴合, Top — 贴合顶部边界, Bottom — 贴合底部边界, Stretch — 垂直缩放以贴合屏幕。
- Fit Shape
- 贴合画布的形状。 Box — 使用对象的边界框, Sphere — 使用对象的边界球体以贴合屏幕上的对象。
- Fit Offset
- 在屏幕上贴合对象时的偏移量,实际使用中,要贴合的象的边界(框或球体)会按此值的绝对值来扩展尺寸。
要修复贴合摄影机过程中可能出现的问题,请清除对象的父级反校正(逆矩阵):
可见性断点
Visibility Breakpoints 允许您根据3D视口宽度/高度或方向设置显示/隐藏指定的对象内容。典型用法之一,使您的场景适应不同的屏幕尺寸和方向。 例如,在横向屏幕和纵向屏幕中,您可以指定两种不同的模型布局。
如果此属性指定给了当前摄影机,则尝试切换到场景中的备用摄影机(必须也具有可接受的可见性断点),如果未找到备用摄影机,则不执行任何操作。
推荐使用Blender的 关联复制 功能在两个对象间共用几何体。一个对象将以纵向模式呈现,而另一个对象则以横向模式显示。通过这种方式,您可以节省大量GPU内存并减少应用的加载时间。
您可以在 对象属性s 面板上配置断点:
- Min Width
- 让对象保持可见的最小画布宽度。Minimum canvas width the object stays visible.
- Max Width
- 让对象保持可见的最大画布宽度。
- Min Height
- 让对象保持可见的最小画布高度。
- Max Height
- 让对象保持可见的最大画布高度。
- Orientation
- 保持对象可见的屏幕方向。
线条渲染
使用此功能,您可以为Blender对象启用线条渲染风格。线条渲染的典型用例是绘制曲线对象,这些对象本身没有任何几何形状。此外您也可为常规的网格和曲面启用线条渲染风格。
您可在 对象数据属性 的 Verge3D Setting 面板中激活线条渲染:
您还可以在此处指定自发光颜色即线条渲染的宽度。
剪切平面
剪切平面(又称剖面图、横截面图、网格截面)是一种用于显示复杂对象(如建筑物、汽车、电器、小玩意、机器等)内部结构的技术。
若要添加新的剪切平面,请使用Blender的“添加对象”菜单中的“Clipping Planes(剪切平面)”菜单项:
场景中的对象将在剪切平面对象的 -Z 方向被剪切。
有关使用示例,请查看 Clipping Planes 演示(也可在资源商店中找到)。
剪切平面具有以下属性:
- Affected Objects
- 受影响的对象,被平面剪切的对象的集合。如果为空,所有场景对象都将被剪切。
- Negated
- 负方向,即对调被剪切和未剪切的两边。
- Clip Shadows
- 剪切从被剪切对象投出的阴影。
- Union Planes
- 对从所有裁剪平面构造并集,影响对象,而不是使用它们的交集影响对象。
- Filled Cross-Section
- 填充剪裁平面和受影响对象之间的横截面。
- Cross-Section Color
- 横断面漫反射颜色和不透明度。
- Render Side
- 横断面渲染侧。选择双面可渲染带有切口和孔的复杂几何体。
- Cross-Section Size
- 横截面尺寸。如果使用较大的场景大小,请增加该值。
遇到问题?
欢迎您随时在 论坛上提问!您还可以加入中文用户社区QQ群(171678760),在线寻求帮助。