Si todo va bien en poco días tendré la nueva versión, lista para vuestros DK2
La comunidad de realidad virtual y aumentada desde 2013
Mensajes
Si todo va bien en poco días tendré la nueva versión, lista para vuestros DK2
Muy buenas noticias, seguro que este emulador gana muchos enteros en el DK2, además de la mejora de resolución, creo que el posicionamiento absoluto en este tipo de programas, donde miras una TV virtual delante de ti, se va a notar una barbaridad de cara a los pequeños movimientos de la cabeza.
Gracias fugazi
Ya está casi terminada la "primera fase" digamos, funciona todo correctamente y debería funcionar incluso el posicionamiento absoluto, cuando lo habiliten.
Lo único que queda hacer realmente es compilar la librería de Oculus en Windows y ya podría sacar la versión, pero estoy teniendo problemas para ejecutar el programa aislado incluso en Linux (me falla la librería de física JBullet), aunque dentro del entorno de desarrollo (Eclipse IDE) se me ejecuta bien. A ver si resuelvo este tema que me tiene bloqueado y puedo seguir con el dll de Windows.
Y una vez sacada la primera versión con este SDK, que será la 0.74b, probaré de hacer otra integrando lo necesario para activar el time warp (esa técnica de Carmack), para lo cual hay que obtener la pose en el último momento justo antes de renderizar y usar esa pose (posición + orientación) para la transformación de la cámara, en lugar de la obtenida más al principio del frame. Con esta técnica se supone que se predice más exactamente la pose en el momento de presentación de la imagen y se reduce el motion-to-photon time ese (y además reproyectan la imagen no sé cómo para que se ajuste más todavía)
Edit: Bah, lo del fallo de JBullet era un error en el script ejecutable. Sigo con el dll...
Ya he publicado la nueva versión, 0.74b
https://sourceforge.net/projects/zxvr/
Mejoras:
- Distorsión por el SDK, con aberración cromática y TimeWarp. Hay dos opciones nuevas en el menú para poder desactivarlas, por si fuera mal el tracking.
- Ahora al encender y apagar la lámpara se oye un 'click' en 3D que proviene de la lámpara.
- He agrandado los pósters
No sé qué tal irá el tracking, espero que bien. Sobretodo por lo del TimeWarp. Si veis que va mal probad a desactivarlo a ver.
Ah y ya está implementado el posicionamiento absoluto, aunque como aún no está soportado tendré que sacar una versión nueva con el SDK cuando lo soporte. O sea el SDK ya provee una posición, pero aún no se rellenan esos valores digamos.
"yombo"Ah y ya está implementado el posicionamiento absoluto, aunque como aún no está soportado tendré que sacar una versión nueva con el SDK cuando lo soporte. O sea el SDK ya provee una posición, pero aún no se rellenan esos valores digamos.
Tenía curiosidad por eso, y veo que es tal y como me imaginaba.
Otra cosa que se me olvidaba: por esto de la posición he quitado las distancias cuello-ojos, y ahora la cabeza rota sobre el centro de los ojos. Debería haber puesto que si no hay posición (que es lo que ocurre ahora) aplique la traslación cuello-ojos, para que se siga viendo "bien" en el DK1... miraré de cambiarlo.
Se supone que, cuando esté implementado el posicionamiento en el SDK, eso debería ser automático. En su momento dijeron que las demos para compiladas con el nuevo SDK utilizarían un modelo cabeza-cuello al no detectar la cámara, o si nos salimos del rango de detección de la misma.
"Juanlo"Se supone que, cuando esté implementado el posicionamiento en el SDK, eso debería ser automático. En su momento dijeron que las demos para compiladas con el nuevo SDK utilizarían un modelo cabeza-cuello al no detectar la cámara, o si nos salimos del rango de detección de la misma.
Otra cosa que se me olvidó decir es que con el renderizado nuevo del SDK puede que haya un problema. Se necesita que el Rift sea el monitor por defecto o principal (no estoy seguro de cómo se define), y que esté a la resolución nativa del HMD. No se puede configurar a más resolución (por ejemplo a 1080p) porque entonces se vería la vista del Oculus a 1280x800 abajo a la izquierda y el resto de la pantalla en negro. Esto es así porque lo hace el SDK, no hay otra...
¿No sé si antes jugábais al ZXVR a 1080p?
Colaborador
18 Ago 2013 16:58
Mensajes: 8753
Ubicación: En mi mundo virtual
Visores
"yombo""Juanlo"Se supone que, cuando esté implementado el posicionamiento en el SDK, eso debería ser automático. En su momento dijeron que las demos para compiladas con el nuevo SDK utilizarían un modelo cabeza-cuello al no detectar la cámara, o si nos salimos del rango de detección de la misma.
Ah, qué bien Por cierto, al no detectarme el Oculus se crea un objeto HMD de debug, para permitir desarrollar sin un Rift como hago yo. Pues bien, le digo que el HMD de debug sea un DK2 pero aún así me lo crea DK1, con 1280x800 de resolución. Es sólo una curiosidad; seguramente eso cambiará cuando salga el DK2 o poco antes.
Otra cosa que se me olvidó decir es que con el renderizado nuevo del SDK puede que haya un problema. Se necesita que el Rift sea el monitor por defecto o principal (no estoy seguro de cómo se define), y que esté a la resolución nativa del HMD. No se puede configurar a más resolución (por ejemplo a 1080p) porque entonces se vería la vista del Oculus a 1280x800 abajo a la izquierda y el resto de la pantalla en negro. Esto es así porque lo hace el SDK, no hay otra...
¿No sé si antes jugábais al ZXVR a 1080p?
Pues eso último es una putada porque yo al menos siempre lo ponia a 1080p que se ve bastante mejor gracias al "antialiasing" que hace la pantalla del DK1 al reescalar.
Mi PC: AMD Ryzen 7 7700x, Nvidia RTX 4070 Ti, 32 Gb RAM DDR5 6000Mhz
"altair28"
Pues eso último es una putada porque yo al menos siempre lo ponia a 1080p que se ve bastante mejor gracias al "antialiasing" que hace la pantalla del DK1 al reescalar.
"yombo"Otra cosa que se me olvidó decir es que con el renderizado nuevo del SDK puede que haya un problema. Se necesita que el Rift sea el monitor por defecto o principal (no estoy seguro de cómo se define), y que esté a la resolución nativa del HMD. No se puede configurar a más resolución (por ejemplo a 1080p) porque entonces se vería la vista del Oculus a 1280x800 abajo a la izquierda y el resto de la pantalla en negro. Esto es así porque lo hace el SDK, no hay otra...
Me extraña un montón que sea así, entiendo que lo normal es que las aplicaciones para DK2 y posteriores funcione como escritorio extendido. Lo de duplicar escritorio se va a terminar, ya que el DK2 funciona a 75 Hz y la inmensa mayoría de los monitores se quedan en 60. Las demos de Unreal Engine 4 funcionan todas con el Rift en el escritorio extendido, Half-Life 2 también funciona con el Rift como escritorio extendido, y estoy seguro de que esa va a ser la tendencia.
"Juanlo""yombo"Otra cosa que se me olvidó decir es que con el renderizado nuevo del SDK puede que haya un problema. Se necesita que el Rift sea el monitor por defecto o principal (no estoy seguro de cómo se define), y que esté a la resolución nativa del HMD. No se puede configurar a más resolución (por ejemplo a 1080p) porque entonces se vería la vista del Oculus a 1280x800 abajo a la izquierda y el resto de la pantalla en negro. Esto es así porque lo hace el SDK, no hay otra...
Me extraña un montón que sea así, entiendo que lo normal es que las aplicaciones para DK2 y posteriores funcione como escritorio extendido. Lo de duplicar escritorio se va a terminar, ya que el DK2 funciona a 75 Hz y la inmensa mayoría de los monitores se quedan en 60. Las demos de Unreal Engine 4 funcionan todas con el Rift en el escritorio extendido, Half-Life 2 también funciona con el Rift como escritorio extendido, y estoy seguro de que esa va a ser la tendencia.
Vale, me he expresado mal. Quería decir que a lo que obliga el SDK es lo de la resolución. Pero en esto también me he equivocado.
Lo que quería decir respecto al monitor principal es que no tengo forma de momento de elegir en qué pantalla quiero que salga la ventana de la aplicación. Con lo que no sé qué tal irá la versión 0.74b, si se podrá poner en modo extendido. Seguramente la ventana de ZXVR aparecerá en el monitor principal. En Windows creo que se puede seleccionar en qué pantalla aparecerá la ventana de un programa, ¿verdad? Estoy seguro de que sí, en Linux se puede.
La solución ideal es seleccionar una pantalla automáticamente o por el usuario desde el programa, y tengo que buscar una forma de hacerlo en Windows y en Linux. Me puede llevar tiempo, preferiría que se usase la opción del sistema operativo por simplicidad, aunque puede parecer cutre.
Y respecto a lo otro, lo de la resolución, también me había equivocado. Resulta que era yo quien le estaba diciendo al SDK que las dimensiones del viewport final fuesen las nativas del HMD. En realidad puedo pasarle yo las dimensiones que en realidad tiene la ventana, que puede ser a 1080p si el usuario lo ha configurado así. Ya he hecho el cambio, queda para la 0.75b.
Aunque ahora se puede poner a 1080p, queda con aliasing debido a que las texturas de cada ojo (donde se renderiza la escena y que después las usa el SDK para mostrar la vista con distorsión) tienen un tamaño adecuado para que tras la distorsión se vean bien a la resolución nativa del HMD. Pondré una opción (densidad de píxeles en el centro de la imagen) que se puede aumentar para así aumentar el tamaño de las texturas intermedias de cada ojo, y que así desaparezca el aliasing a 1080p. El valor por defecto es 1.0, he hecho una prueba poniéndolo a 2.0 y ya se ve bien a 1080p. Aunque el tamaño de la textura de cada ojo asciende a 2243 x 3107!!! Habrá que encontrar el factor adecuado.
He subido la 0.75b, debería verse bien a 1080p
sourceforge.net/projects/zxvr
He subido la 0.76b https://sourceforge.net/projects/zxvr
He añadido una opción para seleccionar el display, ahora no tendría que haber problemas si al arrancar la primera vez aparece la ventana en el monitor que no es, cambiáis esta opción y reiniciar.
Lo de la resolución, si configuráis el DK1 a 1080p se tendría que ver bien, como antes.
Con lo cual se han arreglado los dos problemas
Habeis podido probar la ultima versión? Aún no sé si funciona el tracking con el nuevo SDK...
El tracking funciona perfectamente. Es curioso pero me da la sensación de que tironea algo más que en las versiones anteriores. Lo que no funciona es el modelo cabeza/cuello, no sé si es por los cambios del SDK, igual al no estar implementado el posicionamiento absoluto tampoco funciona el modelo cabeza/cuello al detectar el DK1. Lo que sí funciona bien es el cambio al monitor extendido.
"Juanlo"El tracking funciona perfectamente. Es curioso pero me da la sensación de que tironea algo más que en las versiones anteriores. Lo que no funciona es el modelo cabeza/cuello, no sé si es por los cambios del SDK, igual al no estar implementado el posicionamiento absoluto tampoco funciona el modelo cabeza/cuello al detectar el DK1. Lo que sí funciona bien es el cambio al monitor extendido.
Es posible que los tirones sean por el TimeWarp. Puedes desactivarlo a ver si sigue pasando? (está en opciones gráficas y hay que reiniciar el juego) Si no se resuelve con eso haré unos cambios y volveré a subir otra versión.
Si no es eso tampoco, quizá va peor porque he añadido el sistema de sonido y por eso hay algún hilo más ejecutándose. En mi máquina me va a 52 FPS pero en la tuya no creo que eso pudiera afectar. (No sé si has probado a apagar/encender la luz, se oye un click en 3d) Me parece que para optimizar quitaré las físicas del todo. Y el sonido... estoy por volverlo a quitar.
Lo del modelo cabeza-cuello sí, quité el mío debido al posicionamiento absoluto. Claro, el SDK podría devolverme una posición basada en el modelo, pero se ve que aún no hace nada al respecto, como bien dices. También podría seguir haciendo yo el modelado si hay un DK1 conectado.
Me alegro que funcione la opción de cambio de monitor, al tener yo sólo uno no podía probarlo, me salía sólo uno en la lista de monitores
Buenas! He hecho una optimización en las sombras y he conseguido subir 20 a 25 FPS (cuando está sin sincronización vertical)