ndisplay两块屏幕偏色和自定义投影策略打包后无法正常显示

有两个关于ndisplay问题,一是当把例如NDC_DualMonitor这样的放进其他场景,就会出现两块屏幕偏色得问题,一块偏亮,一块偏暗。(注意,这里两块屏,指的是,ndisplay分出来的两块屏内容我给全部显示在同一块屏幕上,所以不存在硬件色差)第二个问题是自定义投影策略,比如自定义模型,引擎运行一切正常,但是打包后,画面为黑,请问有灭遇到过这样情况,望解疑

引用 皆我百晓生 小程序回复内容作答:
对于第一个问题,当您将例如NDC_DualMonitor这样的设置应用到其他场景中时,出现两块屏幕偏色的问题,一块偏亮,一块偏暗。这可能是由于屏幕校准不正确或者色彩配置不匹配所导致的。您可以尝试进行以下操作来解决这个问题:

  1. 检查并调整屏幕的亮度、对比度和色彩设置,确保它们与您的首选设置一致。
  2. 在图形驱动程序设置中,尝试调整gamma校准或颜色校正选项,以优化显示效果。
  3. 确保您的显示器驱动程序和操作系统都是最新版本,以获得最佳的兼容性和稳定性。

对于第二个问题,当您自定义了投影策略,比如自定义模型,并且在引擎中正常运行,但是打包后看到的画面是黑屏的情况。这可能是由于打包过程中缺少了某些文件或配置的原因导致的。您可以尝试以下解决方法:

  1. 确保在打包时包含了所有必要的文件和资源,例如自定义模型的材质、纹理、着色器等。
  2. 检查打包过程中的日志或错误信息,看是否有任何与渲染或资源加载相关的问题。
  3. 确保您的自定义模型及其相关资源的文件路径是正确的,包括文件名、文件夹结构等。
  4. 尝试重新打包并测试,确保在打包过程中没有发生任何错误或警告。

如果以上解决方法仍然不能解决您的问题,建议您向虚幻引擎的官方支持渠道寻求帮助,他们可能能够提供更专业的技术支持来解决您的问题。

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
您好,您的问题可能是由于自定义投影策略中的某些设置不正确导致的。您可以尝试检查自定义投影策略中的设置是否正确,例如是否正确设置了摄像机视锥体、屏幕等。此外,您还可以尝试使用默认的投影策略进行测试,以确定问题是否与自定义投影策略有关。

关于两块屏幕偏色的问题,这可能是由于显卡驱动程序不正确或显卡硬件故障引起的。您可以尝试更新显卡驱动程序或更换显卡以解决此问题。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

屏幕偏色
检查您的显卡驱动程序是否是最新版本。有时,更新驱动程序可以解决图形问题。
确保操作系统的显示设置正确配置。可能需要调整屏幕分辨率、色彩深度或其他显示设置。
如果您的应用程序是全屏显示,确保您的代码正确处理多监视器设置。有时,应用程序可能没有正确处理多个显示器,导致颜色问题。
自定义投影策略导致画面黑屏问题:
检查您的自定义投影策略代码,确保投影矩阵、视图矩阵等设置正确。确保在自定义投影策略中没有错误。
检查着色器程序和渲染状态是否正确配置。确保着色器程序编译和链接没有错误,并且渲染状态(混合、深度测试等)正确设置。
使用调试工具和日志来排除问题。在代码中添加日志输出,以便查看哪个部分出现问题。
确保在打包应用程序时,包括所有必要的着色器文件和资源文件。有时,在打包应用程序时可能会遗漏某些文件。

结合GPT给出回答如下请题主参考
关于第一个问题,可能是因为两块屏幕的硬件显示器不同,或者显示器的色彩校准不同导致的。可以尝试进行色彩校准或者调整显示器的设置来解决这个问题。

关于第二个问题,可能是因为自定义投影策略的代码实现有误,或者需要对场景进行更加详细的配置。下面是一个使用自定义投影策略的代码案例,供参考:

import unreal

# 创建一个自定义投影策略
class CustomProjection(unreal.Reprojection):
    def __init__(self):
        super().__init__()
        
    # 重写投影方法
    def project(self, location, rotation, aspect_ratio, fov):
        # 进行自定义投影逻辑
        # ...
        
        # 返回投影结果
        return unreal.ProjectionResult(...)
    
# 创建一个场景对象
level = unreal.EditorLevelUtils().create_new_level_with_actors("MyLevel", unreal.LevelStreamingKismet, '/Game/Maps/MyLevel')

# 获取场景的ndisplay配置
ndisplay_config = level.get_world().get_active_ndisplay_config()

# 配置自定义投影策略
projection_policy = ndisplay_config.get_projection_policy()
projection_policy.set_reprojection_policy(CustomProjection())

# 应用ndisplay配置
ndisplay_config.apply_changes()

请注意,这只是一个简单的样例代码,实际应用中可能需要更加详细的配置和复杂的投影逻辑。