Week 43/2013: Patch, Oculus Rift, Mavericks builder
1.12.1 was released yesterday. This was a rather small patch with a couple of UI tweaks and fixes to some issues I noticed during my recent Hexen playthrough.
Oculus Rift
cmbruns recently approached us with the offer to try to integrate support for Oculus Rift into Doomsday. This work has now been ongoing for a couple of days.
We have a number of issues to solve here. Firstly, there is the work related to applying Oculus Rift's optical distortion effect. This involves rendering everything through a warping shader. While support for shaders is being introduced via the new GL2 and UI code, the old renderer does not support them. Thus we're now building a scaffold of sorts around the old rendering code, allowing a shader to be used for this purpose.
A similar use of shaders is already employed by the UI background blur effect that can be seen in Ring Zero. Thus far, this has been disabled when playing games because the old renderer did not tolerate the requirement of drawing things into a small background buffer. However, while putting together a solution for rendering the game view in a parallel left/right eye mode, I had to go through a number of direct OpenGL calls in the old renderer and update them to use GL2. These only affect the GL viewport and scissor, i.e., the portion of the window where drawing is happening / confined into. (Further GL2 upgrades will be taking place later.) The good news is that thanks to these changes it should soon be possible to enable the blur effect also when playing games (unless it turns out to be too slow).
A second issue with Oculus Rift is that it's also an input device, so we'll have to incorporate the head tracking data as a new type of controller. Furthermore, this is in conflict with vanilla Doom's 35 Hz input processing rate because head tracking should optimally have as low latency as possible. We'll have to see how well this integration can be done before we implement the planned "zero-latency" control mode.
Builder troubles
I recently upgraded the OS X 10.8 autobuilder machine to Mavericks (10.9) and, as is to be expected, a number of things broke down. The more trivial thing to fix was to make our build scripts aware of the version of the OS (10.9 instead of 10.8), but there was also a new code signing requirement that says all nested bundles within an application bundle have to be signed. Doomsday comes with quite a large number of stuff inside the bundle (Qt, plugins, FMOD, etc.), so the builder had to be modified to individually sign every contained component. Hopefully we'll soon now see a successful build from the upgraded machine.
My plan is to start work on 1.13 in earnest and assist cmbruns with the Oculus Rift integration.
Oculus Rift
cmbruns recently approached us with the offer to try to integrate support for Oculus Rift into Doomsday. This work has now been ongoing for a couple of days.
We have a number of issues to solve here. Firstly, there is the work related to applying Oculus Rift's optical distortion effect. This involves rendering everything through a warping shader. While support for shaders is being introduced via the new GL2 and UI code, the old renderer does not support them. Thus we're now building a scaffold of sorts around the old rendering code, allowing a shader to be used for this purpose.
A similar use of shaders is already employed by the UI background blur effect that can be seen in Ring Zero. Thus far, this has been disabled when playing games because the old renderer did not tolerate the requirement of drawing things into a small background buffer. However, while putting together a solution for rendering the game view in a parallel left/right eye mode, I had to go through a number of direct OpenGL calls in the old renderer and update them to use GL2. These only affect the GL viewport and scissor, i.e., the portion of the window where drawing is happening / confined into. (Further GL2 upgrades will be taking place later.) The good news is that thanks to these changes it should soon be possible to enable the blur effect also when playing games (unless it turns out to be too slow).
A second issue with Oculus Rift is that it's also an input device, so we'll have to incorporate the head tracking data as a new type of controller. Furthermore, this is in conflict with vanilla Doom's 35 Hz input processing rate because head tracking should optimally have as low latency as possible. We'll have to see how well this integration can be done before we implement the planned "zero-latency" control mode.
Builder troubles
I recently upgraded the OS X 10.8 autobuilder machine to Mavericks (10.9) and, as is to be expected, a number of things broke down. The more trivial thing to fix was to make our build scripts aware of the version of the OS (10.9 instead of 10.8), but there was also a new code signing requirement that says all nested bundles within an application bundle have to be signed. Doomsday comes with quite a large number of stuff inside the bundle (Qt, plugins, FMOD, etc.), so the builder had to be modified to individually sign every contained component. Hopefully we'll soon now see a successful build from the upgraded machine.
My plan is to start work on 1.13 in earnest and assist cmbruns with the Oculus Rift integration.
Comments
Maybe oculus Rift is bigger deal than I thought.