Creating Equirectangular Textures with Blender
July 25, 2017
If you're reading this, you might be looking to create a custom sky for a game or VR experience. This guide will give you what you need to create equirectangular images for that purpose.
While these principles are the same for any 3D program, I am using Blender because it is free. Note for this tutorial I am using version 2.78.
You can either download the source file or follow the steps below. The main thing we need to accomplish is setting up a panoramic camera. Here's the step-by-step process:
- Create a new document.
- Change the active renderer to the Cycles renderer.
- Add a camera to the scene if you don't have one already.
- Position the camera at the origin (0, 0, 0) in the transform panel. If you're unsure where to set this, press N on the keyboard while hovering over the 3D view.
- Rotate the camera 90 degrees on the X axis in the transform panel.
- On the right side toolbar, select the camera settings tab.
- Set the lens type to panoramic, then in the dropdown select equirectangular.
- In the render settings, change the resolution to 4096 by 2048 pixels. You can adjust this to your needs, but make sure the width is twice the height. The larger the image, the longer it'll take to render.
You should now be able to render out your first equirectangular image using the hotkey F12. Once you have finished a render (it will probably take a while depending on your sampling settings), you can hit F3 to save the image.
Here's the final result in action using A-Frame. Click and drag to look around.
It's difficult to create a convincing 3D environment for room scale VR experiences with this template. I'd only recommend using this to create skies or elements in the distance. While I am not covering how to do that in this tutorial, the general strategy is to surround the camera in a sphere and texture the inside of it. There are tons of tutorials on YouTube like this one that you could apply to this scene.
Have a question or suggestion?
Hit me up on Twitter.