VR Rendering Settings: Sample Scene [Teach me Senpai]
Added 2021-05-03 06:51:07 +0000 UTC
Hey Gearheads!
I got a question about rendering a VR scene and thought we were overdue for a "Teach me Senpai" release. I'll try to keep these coming at least once a month going forward.
Attached is a sample Blender scene ready to render. All you need to do is import/append your characters and animation or copy the settings to your scene.
Notes on the Scene:
- Layout: Scale matters for VR; so there is a 5' 9" reference character for human scale that'll look correct in VR; scale your characters based on his size.
- Camera Preview: the default setting of perspective 50mm will stay as the preview size even when the camera is changed to Panoramic and helps with visualizing the camera view distance
- Camera Coverage: VR renders take a while, so I render 180 degrees instead of 360; the main action will be within that area and you'll get better quality or half the render time than a 360 render; I also find that side-by-side looks the best when compared to options like top-bottom (usually used in VR JAV); Anaglyph requires 3D glasses and could be a decent cheaper substitute for a VR headset, but would require changing the camera back to perspective
- Camera Cutoff: The camera has a plane attached with a transformation copy constraint to help with camera placement. This is especially useful for full-body POV shots. For those, you want to place the camera so the plan cuts right through the upper chest of the POV character. Look down at your own chest, the highest up you can see should be roughly the same on your character.
- Camera Movement: don't do it; a short slow movement into position is fine; fast or sustained movements will make people motion sick. If your POV animation has the character's head rocking back and forth at all, consider removing that chest and/or head movement from the animation.
- Misc Camera Settings: Clip Start at 0.01 is close enough to not see through the POV character, but not so close it could cause errors. Convergence Plane can be set to the focal point of the scene, i.e. bouncing breast, penetration, face, etc. It's supposed to make that point pop out more, but I don't notice a significant difference. Leave Spherical Stereo off, it can cause "cross eyed" issues. Interocular Distance is supposed to help you "re-scale" the whole scene in case your scaling is off, but it hasn't worked well for me, so I just make sure the characters are the right size. Pivot center makes it a tiny bit easier to preview shots. Depth of field can come in handy if you play with the settings, it's just not as useful as a desktop-based render.
- Denoising: Of all the denoising options, I've had the most consistent success with using the denoising node in the compositor. So I use that now over the scene optiX render option and just make sure the cycles Render option in preferences has OptiX selected. If you don't have a card that can run Optix, your in for a super long render, at least until Blender 3.0 comes out with Cycles X
Render Settings
- Cycles: You can render in Eevee with the free eeVR addon, but that requires some tweaks so we'll cover that separately later, suffice to say it doesn't save on render time and should only be used when the scene/shaders are dependent on an eevee setup. Device to GPU is important as well as this is a graphics-heavy render.
- Misc: I've found that 128 samples give good results on resolution. Sometimes you can get away with 64 if you need to though. Adaptive sampling is helpful for static backgrounds. Viewport Optix denoising is great for previewing the scene with accurate lighting and Simplify helps keep the preview manageable somewhat. Default Light path settings work fine for me. You can go higher at the cost of render time, but I wouldn't recommend going lower. It helps for desktop scenes, but for VR a lot more light bounce is needed. Caustics help with more realistic eyes, so it's important for eye contact scenes especially. Auto Tile Size addon is helpful for tile settings. 256/512 generally work well depending on the graphics card. If you're having failed/stalled renders go lower. Persistent images helps frames load faster for faster render times, it'll really kick into gear in 2.93 from what I hear. For Color Management, Filmic and Medium high contrast results in a nice final image and not much post-processing color correcting is needed after that, but always good to add some with something like Davinci Resolve or Adobe Premiere Pro.
- Size: The Resolution is set to 4k, which is a decent render time compared to the other sizes. You can go to 2k (1920 x 1920), but no lower and you can go up to 6k or 8k, but you'll double and triple your already substantial render time. Better to increase the fps.
- FPS: Most animation is done at 24fps. To convert your scene just scale all the animations up by 2.5 to get to 60fps. If you can push it, 90fps is the VR sweet spot, but you better be rockin' 2 of the latest graphics cards for that.
- Stereoscopy: This is what changes the render from VR to 3D VR, i.e. from 1 image to two. It also makes the view format available to choose side-by-side, top-bottom, etc.
- Output: set to "//" which means the same folder as the current file. If you have a faster OS drive than storage drive, save your blender file to the OS drive and set your output to the OS drive as well. This makes a huge difference for performance and should be done whenever you start to work on a blender scene. Then the file can be added back to storage to archive it when you're done. If you don't have room for your blend files, Mega has 50GB free storage and so do lots of other cloud storage services.
- File Format: RGB is fine, since there won't be transparent parts of the final scene you don't need the alpha channel. Color Depth 16 since everything in the scene will look bigger. I don't use compression, but if you want to feel free. If you have multiple devices you can render on, you can open the same scene on them and use the Placeholders checkbox to render to the same "network-accessible" folder. This can take a 1 week render down to a couple of days.
*Final Note*
- Preview: Always, always, always preview your render. Preview the scale, preview a single frame and preview the animation (at realtime speed) from the VR camera angle. The last thing you want is to get 2 days, 3 days or a week into a render only to find the problem then and have to start all over. Blender now has built-in VR addon that lets you preview the scene inside your connected headset. I wouldn't try it for animation, but it's great for quick checking scale and angle. When rendering a quick preview you can drop the resolution % down to like 25% and the sample count to 16 for a faster render. If you have the time, render a max res and sample count image though.
- Video Render: I also set up and saved a blend file with my ideal video render settings to convert the image sequence to a video. I've noticed an issue with resolution settings for video renders in 2.92, so if your having a similar issue, render the video with 2.91. Some video players have trouble with the video though, so if you're not planning on adding sound and/or post-processing it'd be better to render in a different app.
I hope a lot of you guys found this helpful as we can always use more great VR content out there. I struggled with a lot of this along the way and finally have a decent groove going. I'll run a poll later and if enough of you guys like this I may turn it into a proper graphical guide with images and everything.
You can also comment, dm me or post on discord with any questions or suggestions for what to discuss next. eeVR? Multi-Device Rendering? Upscaling 24fps to 60fps? Positioning the VR camera for full-body POV? Optimizing for faster renders?