车辆 – 局部立方体贴图
汉化标题:车辆 – 局部立方体贴图 原文标题:Cars – Local cubemaps 汉化更新时间:2026-01-14 00:00:00 +0800 英文原文最新更新时间:2022-06-13 01:18:53 +0300
局部立方体贴图是一种技术,通过拍摄物体周围整辆车的快照,并将其用作该物体的反射遮罩,从而改善类球体物体的反射效果。以下是实际效果演示:
Caterham 的前大灯就是一个很好的例子。即使是 SSLR 也无法正确处理它们,如果没有车辆在前大灯中的反射,它们看起来就像远处漂浮的斑点。
重要说明
此功能仅适用于相对较小的类球体物体,如前大灯。由于它在某个点周围拍摄球形镜头并使用它来遮罩反射,因此对其他物体(如镀铬保险杠或引擎盖)没有帮助。
使用局部立方体贴图反射的网格最初应具有 "ksPerPixelMultiMap" 着色器,否则着色会出错。如果您需要其他着色器的某些功能,请告知我。
由于大量缓存、更新频率低以及该遮罩的过度简化渲染,此功能对 FPS 的影响不大。如果在 Reflections FX 设置中禁用了动态局部立方体贴图,此功能的 FPS 成本几乎为零。
语法
有几种方法可以使用此功能。如果是前大灯的情况,有一个模板文件 "oldschool_lights_reflections.ini" 旨在简化整个设置过程(为左右前大灯设置两个局部立方体贴图):
ini
[INCLUDE: common/oldschool_lights_reflections.ini] ; 包含模板,该模板将完成大部分工作
MeshesLeft = headlightL ; 左侧网格列表,可选
MeshesRight = headlightR ; 右侧网格列表,可选
MeshesToCut = headlights ; 要切割的网格列表(如果左右前大灯使用单个网格)
SplitAxis = 1, 0, 0 ; 仅在使用 MeshesToCut 时需要,切割轴(如果网格旋转方式异常)
SplitThreshold = 0 ; 仅在使用 MeshesToCut 时需要,轴上的点,用于围绕其切割网格
Offset = 0, 0, 0 ; 立方体贴图枢轴的偏移量(单位:米)(左侧立方体贴图的 X 将被反转)
HigherResolution = 0 ; 在极少数情况下设置为 1,如果您想使用更高分辨率
DynamicReflections = 0 ; 设置为 1 以启用动态更新,例如,如果反射中应显示前轮的运动和转向
DebugMode = 0 ; 设置为 1 以启用调试模式来检查更新区域
Reflectivity = 0.5 ; 材质的反射程度(0.5 是铬的好值)
ExcludeNodes = COCKPIT_HR, HUB_LR, HUB_RR ; 要从反射中排除的节点列表,以加快速度(通常
; 没有必要浪费时间渲染后部、后轮和内部)对于一些更一般的情况,使用更直接的语法(该模板会展开到它),每个部分只设置一个立方体贴图:
ini
[LOCAL_CUBEMAP_...]
MESHES = Spotlight_SUB0 ; 要更改材质并为其添加局部立方体贴图的网格列表
POSITION = 0, 0, 0 ; 可选,手动设置位置(否则将使用网格的中心)
OFFSET = 0.08, 0, 0.13 ; 立方体贴图枢轴的偏移量(单位:米)
HIGH_RESOLUTION = 1 ; 在极少数情况下设置为 1,如果您想使用更高分辨率
IS_DYNAMIC = 1 ; 设置为 1 以启用动态更新
DEBUG = 0 ; 设置为 1 以启用调试模式来检查更新区域
STATIC_FACES = TOP, BOTTOM, FRONT, LEFT ; 停止动态更新的面列表(对性能有很大帮助
; 因此启用调试模式并添加尽可能多的面)
EXCLUDE_NODES = COCKPIT_HR ; 要从反射中排除的节点列表,以加快速度如果您想更手动地将网格分成两部分,这里也有一些相关文档。
以后添加的功能
- 针对赛道的类似功能。
