Unity WebCamTexture задерживает видео в условиях низкой освещенности
Я создал простое приложение для потокового видео в Unity. Я использую веб-камеру устройства через класс Unite WebCamTexture. У меня на холсте есть RawImage, на котором я отображаю прямую трансляцию веб-камеры следующим образом:
public RawImage image;
private WebCamTexture liveRec;
void Start () {
WebCamDevice[] camDevices = WebCamTexture.devices;
liveRec = new WebCamTexture(camDevices[camDevices.Length - 1].name);
liveRec.requestedHeight = 1;
liveRec.requestedWidth = 1; // lowest quality
liveRec.filterMode = FilterMode.Trilinear;
liveRec.Play();
image.texture = liveRec;
}
Все работает отлично, видео работает гладко, но только при хороших условиях освещения. Когда моя комната становится темной (при слабом освещении), видео становится очень медленным (кажется, около 25 кадров в секунду). Я думал, что это проблема в моем приложении, но когда я получил доступ к веб-камере через панель управления Windows, там она также отстала, но потом я увидел там вариант "ExposureCompensation", я не знаю, что это такое, но когда я опустил его, видео стало темнее, но снова гладким (см. изображение) Теперь, что я могу сделать с этим в моем приложении, как получить доступ и опустить этот параметр (C#).
Вещи, которые я испытал:
Я использовал каждый шейдер на моем изображении, хотя некоторые, кажется, затемняют текстуру, но лаги сохраняются
Я использовал NatCam, но он не обеспечивает полную функциональность в Windows(возвращается к реализации единства "Webcamtexture")
Прочитал другие вопросы, которые используют DirectShow API, который мне кажется невероятно сложным, и не знаю, будет ли он работать с единством или нет
Пожалуйста, помогите мне, я буду очень благодарен! (и относитесь ко мне как к студенту, а не как к профессионалу)
РЕДАКТИРОВАТЬ: Это не проблема веб-камеры, я тестировал одно и то же приложение на 2 ноутбуках с их собственными встроенными камерами, отставание сохраняется в условиях низкой освещенности.