Я использую Three.js в сочетании с технологией затвора Nvidia 3D Vision. Я делаю рендеринг следующим образом:
// Init 3D Vision Camera (Shutter Glasses)
var eye_separation = 0.03; // adjust to the distance of your eyes
var cam_toggle = true;
function animate() {
// Enable 3D Vision
if (cam_toggle) {
camera.position.x += eye_separation;
cam_toggle ^= 1;
} else {
camera.position.x -= eye_separation;
cam_toggle ^= 1;
}
renderer.render(scene, camera);
requestAnimationFrame(animate);
}
По сути, я обнаружил, что частота обновления кадров графических процессоров одинакова и синхронизирована, как очки с затвором. Чтобы создать стереоскопический эффект, я просто переключаю камеру между определенным видом, который меняется по оси x в этом примере. Это работает очень хорошо! Nvidia описывает в своей документации использование буфера кадров для переключения двух разных представлений, чего я не делаю. Проблема в том, что я получил только 60 кадров в секунду на максимуме. Но я использую проектор на 120 герц. Итак, как мне ускорить рендеринг для каждого вида до 60 кадров в секунду, чтобы получить 120 в сочетании?