【问题标题】:Unity WebcamTexture advanced settings (exposure, focus, zoom)Unity WebcamTexture 高级设置(曝光、对焦、缩放)
【发布时间】:2018-10-30 17:20:02
【问题描述】:

我的相机源在使用 WebcamTexture 的 Unity 中工作。根据https://docs.unity3d.com/ScriptReference/WebCamTexture.html,没有更改曝光或对焦设置的功能。

要明确一点:

  1. 有什么办法可以改变 WebcamTexture 的曝光?
  2. 如果没有,有没有其他方法可以不使用使用 WebcamTexture 来调整曝光?
  3. 如果不是,我可以在 Unity 中使用哪些广泛使用的 API/工具来获取具有这些可调整设置的摄像头供稿?

【问题讨论】:

    标签: c# unity3d camera


    【解决方案1】:

    有什么办法可以改变WebcamTexture的曝光吗?

    没有。您可以在 AndroidAndroidJavaObject 上使用,但这是一个 hack,每次有 Unity 更新时都会停止工作。此外,它仅适用于 Android,不适用于 iOS、Windows、Mac 和其他平台。

    如果没有,有没有其他方法可以在不使用的情况下调整曝光 网络摄像头纹理?

    再次,不。使用WebcamTexture时不能修改相机设置。

    如果没有,我可以在 Unity 中使用哪些广泛使用的 API/工具 使用这些可调整的设置获取相机信息?

    能够修改您提到的相机设置的唯一方法是为每个平台创建一个相机 API 插件。这并不容易,因为您必须了解许多编程语言才能使其正常工作,例如 Android 的 Java、iOS 和 Mac 的 Objective-C、Windows 和 Linux 的 C++ 以及 WebGL 的 Javascript,然后使用 C# 将它们组合在一起。制作这个非常耗时,因此最好使用现有插件。

    最好的插件是NatCam 插件。这个插件可以控制相机的曝光、对焦和变焦但它不是免费的。值得。

    您可以将曝光和曝光偏差设置为:

    DeviceCamera.RearCamera.ExposureMode = ExposureMode.Locked;
    NatCam.Camera.ExposureBias = NatCam.Camera.MinExposureBias;
    

    设置对焦模式:

    NatCam.Camera.FocusMode = FocusMode.TapToFocus | FocusMode.AutoFocus;
    

    缩放相机:

    NatCam.Camera.ZoomRatio = 2.0f;
    

    您可以找到 NatCam here 的完整教程。

    【讨论】:

    • 谢谢!我决定使用 UWP 的 MediaFrameReader 编写一个插件,并使用它在 Unity 中进行渲染!我会把你作为答案。
    • UWP 的 MediaFrameReader 东西只能在 Windows 上运行,但这是一个好的开始。您可以随时添加对其他平台的支持。
    • 请注意,Natcam 插件仅允许您在“本机设备”上控制这些设置,即手机或平板电脑上的内置摄像头。例如,对于 Windows 平台上的 USB 网络摄像头,您无法通过此插件控制网络摄像头的曝光。我与开发人员讨论过这个问题并证实你不能:(
    猜你喜欢
    • 2018-09-07
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    • 2020-08-29
    • 1970-01-01
    • 1970-01-01
    • 2020-08-18
    • 1970-01-01
    相关资源
    最近更新 更多