- 联系我们
- 技术支持: vrsupport@qiyi.com
- 商务合作: business@iqiyismart.com
- 人才招聘: 查看职位 >
- 公司地址:北京市朝阳区宏泰东街绿地中心B座11层
设置RenderTexture缩放系数,默认为 1(推荐)。系数越小,画面清晰度越低,但帧率会提升,功耗降低;系数越大,画面清晰度提升,但是帧率会降低,功耗和内存会增加。建议最大值不要超过1。开发者可根据场景需要调整,通过UE引擎功能vr.pixelDensity调整画面像素密度。支持以下两种方式调节:
使用“Execute Console Command”节点,调用“vr.pixeldensity 1”命令(注意空格)。需要保证该命令的执行时机足够早,建议放在关卡蓝图的EventBeginPlay后。
打开文件 Project/Config/DefaultEngine.ini,然后在“[/Script/Engine.RendererSettings]”标签下添加字符串“vr.pixeldensity=1”
注:已取消SDK低版本提供的“Plugins-QIYU-SDK-Eye Resolution Scale”功能。
注视点渲染(Foveation Rendering)可以优化VR场景的渲染,该技术通过为视野中心提供全分辨率(无损),降低周边视野(人眼焦点区域之外)分辨率的方式来达到优化渲染的目的。固定注视渲染(FFR)是指将视野焦点固定在视口中心位置,实现从中心向周围逐渐降低清晰度的效果。
可以在此处选择Low,Med,High三种模式。Foveation Level等级越高帧率越高,但是像素损失越多,会影响边缘区域清晰度,请根据渲染需要选择合适的等级。开发者也可以通过配置面板设置自定义注视点渲染参数。
SDK支持引擎提供的Mobile MultiView功能,通过一个Camera实现立体渲染,可降低10~50%的DrawCall,对于CPU占用高的场景帧率提升明显。可以通过勾选Project Setting > Rendering > VR > Mobile Multi-View,来开启MultiView功能。
需要注意的是,开关该选项,务必重启引擎,来使引擎适配此设置。同时,开启Multi View前,务必关闭Mobile HDR功能。
Vulkan可以提供高性能和低CPU负担的图形绘制接口,许多方面继承于OpenGL ES,可以带来更好的CPU计算性能,但无法提高GPU性能。
由于Unreal引擎不同版本的限制,启用Vulkan渲染模式的方式不同。推荐开发者使用4.27版本进行Vulkan开发。
将EngineSourcePath\Engine\Source\Runtime\Core\Private\Android\AndroidPlatformMisc.cpp文件中的函数IsStandaloneStereoOnlyDevice修改成如下所示:
bool FAndroidMisc::IsStandaloneStereoOnlyDevice()
{
// Oculus HMDs are always in stereo mode
if (FAndroidMisc::GetDeviceMake() == FString("Oculus"))
{
return true;
}
#if USE_ANDROID_JNI
extern bool AndroidThunkCpp_HasMetaDataKey(const FString& Key);
if (AndroidThunkCpp_HasMetaDataKey(FString("android.device.bQiyuPlatform")))
{
return true;
}
#endif
return false;
}
Unreal 4.26的下载和编译请参考如下链接:
在项目设置 -> Android -> Build模块下勾选 Support Vulkan,取消勾选SupportOpenGL ES3.1.
注:建议使用C++类型的工程.
直接使用标准版引擎即可。设置内容如下:
在项目设置 -> Android -> Build模块下勾选 Support Vulkan,取消勾选SupportOpenGL ES3.1。参见上图3.4
关闭除QIYU 之外的其他所有VR插件(包含OpenXR)
Vulkan已知问题:
用于设置追踪原地的模式。
Eye:以头显位置和方向作为参考进行追踪,Recenter会复原虚拟相机的位置
Floor:以头显检测到的地面为参考面进行追踪,Recenter不会改变虚拟相机的高度
此方法可以直接蓝图中调用:
Unreal Engine启动画面并非VR模式,为了提升视觉体验,奇遇SDK提供了自定义VR启动画面的功能。使用步骤:
Function | Blueprint | Introduction |
---|---|---|
GetBoundaryGeometry | 获取安全围栏点的集(X,Y,Z) | |
GetBoundaryDimensions | 获取安全围栏的尺寸 | |
SetBoundaryChangeDelegate | 设置安全围栏状态变化的委托(写入用于获取变化状态的指针) |
设备 | 奇遇3 | 奇遇 Dream | 奇遇 Dream Pro | 奇遇 MIX | 未来其他奇遇设备 |
---|---|---|---|---|---|
厂商 | iQIYI Smart | iQIYI Smart | Dreamagic | Dreamagic | Dreamagic |
头显 | QiyuHMD-3 | QiyuHMD-Dream | QiyuHMD-Dream Pro | QiyuHMD-MIX | QiyuHMD |
左手柄 | Qiyu Controller-Left-3 | Qiyu Controller-Left-Dream | Qiyu Controller-Left-Dream | Qiyu Controller-Left-MIX | Qiyu Controller-Left |
右手柄 | Qiyu Controller-Right-3 | Qiyu Controller-Right-Dream | Qiyu Controller-Right-Dream | Qiyu Controller-Right-MIX | Qiyu Controller-Right |
SDK中分别提供了奇遇三、奇遇Dream、奇遇MIX的手柄模型(Dream 和Dream Pro为同款),开发者可根据实际需求,选择手柄模型,路径如下图所示。
为了提升文字、图片、视频等资源的渲染清晰度,可以将需要高清显示的图形图像区域通过立体图层 (StereoLayer)进行渲染。
StereoLayer允许您向VR头戴式显示器(HMD)发送单独的纹理,并使其在与项目其余部分不同的单独渲染通道中重新投影。这对于您想要附加到HMD但不受后期处理或抗锯齿影响的用户界面(UI)元素非常有用。由于合成层渲染会使系统负载增加,在使用过程中不建议统一场景使用过多的Overlay或Underlay,建议小于5个。在以下文档中,我们将介绍如何设置和使用立体图层。
要将立体图层与您的VR Pawn一起使用,你需要执行以下操作。
完成以上步骤,即可在一体机中正常查看到StereoLayer组件,该组件在PC平台上不显示。
目前SDK支持的属性如下:
设置名称 | 描述 |
---|---|
Support Depth | 如果立体图层需要支持与场景几何体的深度相交,则为真。 |
Texture | 立体图层上显示的纹理(SDK不支持左右眼显示不同纹理,即双目均显示该纹理)。 |
Stereo Layer Type | 指定将四边形渲染到屏幕的方式和位置。 |
StereoLayerShape | 指定它是哪种类型的图层。 |
Priority | 在所有立体图层中渲染优先级,较高优先级在较低优先级之上渲染。 |
上表中部分属性说明:
Stereo Layer Type: 目前SDK仅支持FaceLock和WorldLock,TrackerLock的效果同FaceLock。
FaceLock :立体图层会和Camera的相对位置保持不变,效果是立体图层在屏幕的固定位置进行渲染。
WorldLock:立体图层在游戏世界内的位置不变。
StereoLayerShape:目前SDK仅支持Cylinder Layer 和 Quad Layer。
Cylinder Layer:该类型为圆柱面,开发者可以通过Radius属性调节圆柱面的半径,通过Overlay Arc属性调节圆柱面的弧长,通过Height属性调节圆柱面的高度。
Quad Layer:该类型为四边形开发者可以通过Quad Size属性调节四边形的长宽。
注:表未列出的属性,SDK暂不支持。
奇遇SDK提供了3Dof选项和蓝图接口,加入了“脖子模型”和“手臂模型”,可以比较自然的模拟头部和手部的运动。
开发者可以在打包前在项目设置->Plugins->QIYU中勾选“TrackingRotationOnly”,来开启3Dof功能。
如果需要在运行过程中动态切换3/6Dof模式,可以通过下面两个接口,分别获取当前追踪模式和设置追踪模 式。
屏幕刷新率代表VR设备屏幕每秒刷新次数。刷新率越高,可以支持应用实现更高的帧率、更稳定的追踪和更高的 清晰度。奇遇设备上应用默认刷新率为72,即开发者在不设置或者修改刷新率时,应用以72HZ刷新屏幕。如果 您想以更高刷新率运行应用,可通过下面的接口设置刷新率。
需要注意的是,高刷新率要求应用每帧所消耗的时间更低,应用需确保运行期间的性能,稳定的维持高刷新率,否则可能无法通过奇遇商店的上线审核。奇遇各型号设备支持的刷新率情况如下:
设备型号 | 支持的刷新率 |
---|---|
奇遇 3 | 72HZ |
奇遇 Dream | 72HZ |
奇遇 Dream Pro | 72HZ、90HZ |
奇遇 MIX | 72HZ、90HZ |
Refresh Rates:当前设备支持的刷新率列表。
Return Value:是否获取成功,True:获取成功,False:获取失败
Display Refresh Rate:获取设备当前设备刷新率
Return Value:是否获取成功,True:获取成功,False:获取失败
Display Refresh Rate:设置设备刷新率
Return Value:是否获取成功,True:获取成功,False:获取失败
用于设置场景以及所有Layer的色彩偏色,在蓝图或者C++中调用如下接口即可。
蓝图接口:
C++接口:
staticvoidUQIYUVRHMDFunctionLibrary::SetColorScaleAndOffset(FLinearColorColorScale,FLinearColor ColorOffset,boolbApplyToAllLayers);
参数说明:
Color Scale:色彩梯度。
Color Offset:色彩偏移。
bApplyToAllLayers:是否应用到所有的layer。(如果为ture时,将会把效果应用到所有的underlay和 overlay中,如果为false时,仅会将效果应用到场景画面中,underlayer和overlayer不受影响)。
注意:
调节Alpha值,可能会影响Underlay的显示,建议使用Underlay时不要对Alpha值进行修改。
调节Alpha值,会引起渲染功耗增加,建议根据需要修改。
为了提升开发效率,避免开发过程中频繁打包耗时,PCDirectPreview功能可以帮助开发者在Unreal Editor中 运行场景,同时在头显中可看到实时的画面。
此功能支持的电脑配置:
操作系統:Windows10及以上
显卡:NVIDIAGeForceGTX1060/AMD5700
CPU:IntelCorei7-6700/AMDFX8320及以上
内存:8G及以上
使用方法:
通过USB方式连接电脑和头显。
安装QiyuPreviewAgent.apk到头显,安装包下载 (opens new window)链接。
点击编辑器菜单栏 Qiyu Tool - Open Preview Tool按钮,打开配置面板,可根据需要调节各设置项,参考下面的说明。
点击connect preview app,写入配置文件,并启动PreviewAgent应用。
Unreal Editor中点击VR Preview运行游戏。
在头显中看到当前场景效果,电脑中同步显示。
注:每次编辑器VR Preview运行场景前,请先点击“Connect preview app”按钮,以确保配置正常生效且一体机端Preview Agent应用正常启动。