I'm making 30 VR projects in 30 days to learn
risonsimon.com
risonsimon.com
" The ceramics teacher announced on opening day that he was dividing the class into two groups. All those on the left side of the studio, he said, would be graded solely on the quantity of work they produced, all those on the right solely on its quality. His procedure was simple: on the final day of class he would bring in his bathroom scales and weigh the work of the "quantity" group: fifty pound of pots rated an "A", forty pounds a "B", and so on. Those being graded on "quality", however, needed to produce only one pot -- albeit a perfect one -- to get an "A". Well, came grading time and a curious fact emerged: the works of highest quality were all produced by the group being graded for quantity. It seems that while the "quantity" group was busily churning out piles of work - and learning from their mistakes -- the "quality" group had sat theorizing about perfection, and in the end had little more to show for their efforts than grandiose theories and a pile of dead clay. "
You also need to keep an untraditionally high frame rate without dropping frames (90 FPS on the desktop headsets), which also has significant performance/app architecture implications.
It's actually not that radically different in terms of graphics; a game programmer should feel right at home.
The harder part is the UX implications when you realize "controlling the camera" is no longer in your hands. That might require fundamentally rethinking how your game and/or app functions.
For this reason there's been a trend back towards forward rendering, with some modern twists to efficiently handle many dynamic lights like deferred does. UE4 for example:
https://docs.unrealengine.com/latest/INT/Engine/Performance/... | https://youtu.be/6kfMVxNSowM?t=3046
That's a significant limitation for a modern technique.
Here's the full algorithm for anyone curious:
> The Forward Renderer works by culling lights and Reflection Captures to a frustum-space grid. Each pixel in the forward pass then iterates over the lights and Reflection Captures affecting it, sharing the material with them. Dynamic Shadows for Stationary Lights are computed beforehand and packed into channels of a screen-space shadow mask, leveraging the existing limit of 4 overlapping Stationary Lights.
> Forward renderer now supports shadowing from movable lights and light functions.
> Only 4 shadow casting movable or stationary lights can overlap at any point in space, otherwise the movable lights will lose their shadows and an on-screen message will be displayed.
The cynic in me thinks that perhaps "VR tutorial" gets more clicks these days ;)
Google Trends on VR search queries: https://trends.google.com/trends/explore?q=vr,psvr,%2Fm%2F0k...
(interesting here is the decline after the peak)
Same query again but with 'iphone' this time (to represent the mobile space and its size compared to VR): https://trends.google.com/trends/explore?q=vr,psvr,%2Fm%2F0k...
You can also ask me any questions, if you have any.
I'm also building a product to make VR dev easier at https://viewportvr.co