zoukankan      html  css  js  c++  java
  • ue4 加载一个用于渲染3D角色到UI的独立关卡的相关问题

    你好,是移动平台对吗?

    无论是都放在一个地图里,还是通过子关卡(Streaming level)都需要屏蔽掉一切关卡的灯光和后期对其的影响。为了管理制作方便作为子关卡更好。

    在具体实现上除了动态光用Channel屏蔽较为简单直接,主要注意的是需要屏蔽掉主地图的天光;主地图的light cache;以及主地图的Reflection capture对Streaming level的影响。以下是创建一个独立3DUI对象捕捉地图环境设置参考

    • 用ILC,不使用VLM;以便加载控制和管理。首先需要使用ILC而非VLM,这个在World Settings里改。原因是ILC方便加载,VLM支持Streaming,但有局限,主次关卡灯光分离不彻底​。
    • 给stream地图加个reflection capture 使用specific cubemap;这样可以屏蔽掉主地图的reflection capture;移动上的reflection capture不存在影响范围,物体采样最近的那个,所以必须要放置一个reflection capture来屏蔽其他更远的的影响
    • Streaming到主地图的放置的位置也需要没有light cache的地方,否则主地图的light cache会影响Stream level
    • 另外在Scene capture里也可以把sky light标记去掉,避免收到主地图Skylight影响。这个flap是针对Movable或者Stationary天光的,如果静态天光被build到ILC中无法使用这个取消影响​
    • 灯光可以打开Cast Cinematic Shadows,避免影响其他非Cinematic物体;需要捕捉的物体需要打开相应的Cast Cinematic Shadow
    • 因为屏蔽掉了天光,Steaming level里需要build一些light cache出来作为Ambient diffuse照明,同时reflection 的亮度也受到light cache影响。这些light cache的来源可以是静态天光,静态的其他光源,以及其反弹光。build lighting的时候单独build此关卡。

      这个ILC一般可以用静态的灯烘培而来,比如子关卡的静态天光,静态点光,及他们的反弹(GI),都会被Build入子关卡的ILC

      子关卡放偏僻些的地方,避免和主关卡的ILC有交集。目前ILC不支持移动(World Origin Shift可以),利用加载方法去改位置无法移动ILC,因此制作的时候就在远一些的地方,比如高空,地下等​

    • 所有的物件需要是动态,light channel 2;
    • 所有动态灯光也为light channel 2;
    • Project settings 里确保mobile 上的Max movable point lights大于需要的数量
    • 放置给与单独Postprocess Volume​

    上次的单独加载SteamLevel光照不正常查了下大概是通过ULevelStreamingDynamic::LoadLevelInstanceBySoftObjectPtr加载时传入的Location却没有机会PrecomputedLightVolume->ApplyWorldOffset,于是在加载后再偏移就好了

    1. LoadedLevel->ApplyWorldOffset(InWorldOffset, false);

    UDN查到的解决方法是在 FLevelUtils::ApplyLevelTransform末尾执行PrecomputedLightVolume->ApplyWorldOffset,改引擎确实也能解决问题,但该提交是4.18的版本,已经有一段时间了, 不清楚官方没有改是出于什么顾虑,于是只在客户端加载后ApplyWorldOffset,降低影响范围。

  • 相关阅读:
    zabbix 设备(自己的实践)
    10.24的注意事项——解决linux_jni编译错误的问题
    [Angular] Adding keyboard events to our control value accessor component
    [tmux] Copy and paste text from a tmux session
    [tmux] Customize tmux with tmux.conf
    [tmux] Zoom and resize to view a particular pane within tmux
    [tmux] Manage terminal workspaces using session naming
    [tmux] Reuse terminal workspaces using tmux sessions
    [tmux] Create collections of panes using tmux windows
    [tmux] Organize your terminal using tmux panes
  • 原文地址:https://www.cnblogs.com/Shaojunping/p/14462613.html
Copyright © 2011-2022 走看看