Oculus lanza y retira la versión 0.6 beta del SDK Enviado por la comunidad

15 MAY 2015  8:14

altair28

26

Oculus publicó y retiró ayer la versión 0.6 beta de su SDK para Windows, que supone un importante cambio respecto a las anteriores, siendo el más llamativo la inclusión del Compositor, que permite renderizar distintas capas y superponerlas en nuestra aplicación.

Suponemos que detectaron algún problema importante y prefirieron arreglarlo antes de que la gente llegase a descargar la versión, pero algunos usuarios fueron muy rápidos y se hicieron con ella, publicando el listado completo de cambios. Las características más destacadas son:

  • Inclusión del servicio y los sets de texturas del Compositor
  • Inclusión del soporte de capas
  • Eliminación del renderizado basado en el cliente
  • Simplificación de la API

El servicio Compositor traslada el renderizado de la distorsión desde el proceso de la aplicación al proceso OVRServer usando sets de texturas que son compartidos entre ambos procesos. Un set de texturas es básicamente una cadena de intercambio, con buffers rotados para permitir al renderizado del juego seguir adelante mientras el fotograma actual es distorsionado y mostrado. El soporte de capas permite que múltiples objetivos de renderizado de la aplicación sean enviados independientemente al HMD. Por ejemplo, se podría renderizar un frontal, un fondo y un espacio de juego cada uno en su propio objetivo de renderizado separado. Cada objetivo de renderizado es una capa y las capas son combinadas por el compositor (en lugar de por la aplicación) antes de ser distorsionadas y mostradas. Cada capa puede tener diferente tamaño, resolución y tasa de actualización. Por último, la simplificación de la API principalmente elimina el soporte para el renderizado basado en la aplicación.

 

Nuevas características

 

• Añadido el servicio Compositor, que mejora la compatibilidad y el soporte para aplicaciones simultáneas.

• Añadido el soporte de capas, que incrementa la flexibilidad y permite a los desarrolladores afinar las configuraciones basadas en las características y requerimientos de cada capa.

• Sistema de manejo y reporte de errores mejorado significativamente

• Añadido un conjunto de nuevos proyectos de ejemplo que muestran técnicas y las nuevas características del SDK

• Eliminados los suplementos del lado de la aplicación de las APIs de DirectX y OpenGL, lo que conlleva una mejor compatibilidad y fiabilidad del runtime.

• Se ha simplificado la API, como se ha explicado arriba.

• Cambiado el modo Extendido para usar el proceso compositor. La configuración de renderizado es ahora idéntica en los modos extendido y directo. La aplicación ya no necesita saber que modo está siendo usado.

• El modo extendido ahora puede soportar mirroring (imagen en espejo), que antes solo era soportado por el modo Directo.

• Interfaz de temporización simplificada y fortalecida moviéndolo a una función sencilla: ovrHmd_GetFrameTiming

• Arreglados unos cuantos fallos y problemas de fiabilidad.

 

Nuevas características importantes para Unity:

 

• Deshabilitado el antialiasing de textura de ojo cuando se usa renderizado diferido. Esto soluciona el problema de pantallas negras.

• Eliminada la necesidad del DirecttoRift.exe en Unity 4.6.3p2 y posteriores.

• Eliminada la dependencia de hardware del runtime de Oculus. Las aplicaciones ahora renderizarán en mono sin tracking cuando no haya un visor de VR presente.

 

Los cambios en la API en esta versión representan una importante revisión de la API. Estos cambios simplifican significativamente la API mientras mantienen la funcionalidad esencial. Los cambios en la API incluyen:

 

• Eliminado el soporte para el renderizado de la distorsión basado en la aplicación. Las funciones eliminadas incluyen ovrHmd_CreateDistortionMesh, ovrHmd_GetRenderScaleAndOffset, etc. Si crees que necesitas renderizado de la distorsión basado en la aplicación, por favor contacta con Oculus Developer Relations.

• Añadido ovrSwapTextureSets, que son texturas compartidas entre el proceso OVRServer y el proceso de la aplicación. En lugar de usar tus propios buffers de respaldo, las aplicaciones deben renderizar escenas en VR y capas a texturas ovrSwapTextureSets. Los sets de texturas son creados con ovrHmd_CreateSwapTextureSetD3D11/ OpenGL y destruidos con ovrHmd_DestroySwapTextureSet.

• ovrHmd_BeginFrame se ha eliminado y ovrHmd_EndFrame ha sido sustituido por ovrHmd_SubmitFrame.

• Se ha añadido una nueva capa de API. Una lista de punteros de capas se pasa a ovrHmd_SubmitFrame.

• Mejorados los informes de errores, incluyendo añadir el tipo ovrResult. Algunas funciones de la API se han cambiado para devolver ovrResult. ovrHmd_GetLastError se ha cambiado por ovr_GetLastErrorInfo.

• Eliminado ovr_InitializeRenderingShim ya que no es necesario con el compositor basado en servicio.

• Eliminadas algunas banderas de ovrHmdCaps, incluyendo ovrHmdCap_Present, ovrHmdCap_Available, ovrHmdCap_Captured, ovrHmdCap_ExtendDesktop, ovrHmdCap_NoMirrorToWindow, y ovrHmdCap_DisplayOff.

• Eliminado  ovrDistortionCaps. Parte de su funcionalidad está presente en ovrLayerFlags.

• ovrHmdDesc ya no contiene información del dispositivo de visualización, ya que el servicio compositor ahora maneja el dispositivo de visualización.

• Simplificado ovrFrameTiming para únicamente devolver el valor de predicción de temporización de DisplayMidpointSeconds. El resto de información de temporización está ahora disponible a través del hilo seguro de ovrHmd_GetFrameTiming. Las funciones ovrHmd_BeginFrameTiming y EndFrameTiming functions se han eliminado.

• Eliminadas las funciones de LatencyTest (ej. ovrHmd_GetLatencyTestResult).

• Eliminadas las funciones de PerfLog  (ej. ovrHmd_StartPerfLog), ya que fueron reemplazadas por ovrLogCallback (introducida en el SDK 0.5).

• Eliminadas las funciones relacionadas con el aviso de Salud y Seguridad  (ej. ovrHmd_GetHSWDisplayState). La funcionalidad del aviso es ahora manejada automáticamente.

• Eliminado soporte para el mirroring automático del HMD. En su lugar, la aplicación ahora puede crear una textura de espejo (ej. with ovrHmd_CreateMirrorTextureD3D11 / ovrHmd_DestroyMirrorTexture) y manualmente mostrarla en una ventana del escritorio. Esto da a los desarrolladores flexibilidad para usar la ventana de la aplicación de la forma que mejor vaya con sus necesidades, y elimina el problema con OpenGL de los SDKs anteriores, en los que el back-buffer de la aplicación limitaba el tamaño del render del HMD

• Añadido ovrInitParams::ConnectionTimeoutMS, que permite especificar un tiempo límite para que ovr_Initialize se complete con éxito.

• Eliminadas ovrHmd_GetHmdPosePerEye y added ovr_CalcEyePoses.

• Corrección de diversos errores, incluyendo algunos problemas de rendimiento y judder.