Xbox游戏流式处理中的自定义分辨率功能详解
Xbox游戏流式处理中的自定义分辨率功能详解
自定义分辨率概述
Xbox游戏流式处理使你能够根据除电视以外的设备(如手机、平板电脑和其他设备)的输出分辨率来自定义游戏的分辨率。这有助于跨设备提供更丰富的体验。引入了XGameStreamingGetDisplayDetails和XGameStreamingSetResolution,使你可以将流从Xbox的16:9纵横比切换到与许多不同设备(如手机、平板电脑等)匹配的纵横比。
例如,下图演示了Xbox游戏在常规16:9电视屏幕上与在流式处理环境中处于纵向模式下的平板电脑或手机的呈现方式,而不作任何更改。
图 1. 在没有XGameStreamingGetDisplayDetails和XGameStreamingSetResolution的不同设备上呈现的游戏
另一方面,下图演示了同一游戏如何使用上述API在不同设备上呈现,以将纵横比设置为4:3。请注意在平板电脑上呈现时空格是如何消失的。
图 2. 在具有XGameStreamingGetDisplayDetails和XGameStreamingSetResolution的不同设备上呈现的游戏
XGameStreamingGetDisplayDetails返回指定客户端的显示详细信息。这可用于做出明智的决策,例如要呈现的自定义纵横比或用于启用DirectCapture的分辨率。构建DirectCapture是为了在游戏呈现兼容帧时最大程度地减少服务器延迟,消除了大约16到72毫秒的延迟。这种延迟降低对于每个游戏是不同的,因为它取决于游戏的呈现输出。
XGameStreamingSetResolution应在游戏确定分辨率后使用。此API将设置流的分辨率。API公开DirectCapture的要求和客户端的首选解决方案,以便不同的游戏可以采用它们。
注意:需要遵循最小/最大要求以及其他DirectCapture规则。请注意,虽然这些API将存在于家庭主机上,但它们只允许使用标准分辨率来维护电视兼容性(有效地使它们不正常运行)。
如何正确使用API
连接流
如果之前尚未流式传输游戏,请按照此处的说明操作:游戏流测试先决条件获取显示器的详细信息
若要获取显示器的详细信息,游戏可以调用XGameStreamingGetDisplayDetails。这将返回指定客户端的显示详细信息。选择分辨率
这取决于游戏。有多个选项,例如:
a. 将preferredWidth/preferredHeight用作最佳匹配项。
b. 使用XGameStreamingDisplayDetails在预配置的一组测试分辨率中查找与分辨率最接近的匹配项。
c. 打开电脑版游戏的分辨率选取器,以允许玩家选择分辨率。请考虑将分辨率限制在maxWidth、maxHeight和maxPixels范围内。设置流解析
调用XGameStreamingSetResolution将流式处理分辨率更改为新的呈现分辨率。最好调用以响应用户操作,例如启动流、调整大小、轮换设备操作等。请注意,此分辨率不需要匹配preferredWidth/preferredHeight。如果它不匹配,则可以缩放流以适应屏幕上添加的字母或柱形框以填充任何剩余空间。
注意:请务必注意,设置流解析需要一些时间,使用有限的资源,并且具有玩家可见效果,因此此API只应很少调用;例如,当新客户端连接或更改其首选分辨率时。每200分钟多次调用XGameStreamingSetResolution将导致短暂拉伸。此API不是实时安全的。
- 开始呈现
呈现自定义分辨率应与呈现其他分辨率相同 - 设置窗口大小并使用新分辨率配置回缓冲区。如果想要试一试,请按照我们的示例进行操作。
另请参阅
- 自定义解决最佳做法
- 使用自定义分辨率进行测试(NDA主题)要求授权