Currently I can render 6 cube face images and composite them into a cube map or equirectangular panorama, but maybe Vuo could add built-in support (which could maybe also do it more efficiently)?

Component: 

Notes from Team Vuo

Vuo Pro: 

Yes — requires a Vuo Pro license

Complexity: 

●●○○ — A few weeks of work

Potential: 

●○○ — Appeals to current community

We propose creating these nodes:

  • Make Spherical Cameravuo.scene.make.camera.sphere
    • Input ports:
      • Name
      • Position
      • Rotation
      • Distance Min
      • Distance Max
    • Output ports:
      • Camera
  • Render Scene to Cube Imagesvuo.scene.render.cube
    • If a spherical camera is selected, it uses it. If a non-spherical camera is selected, it uses the camera's position and rotation and ignores its other attributes (field of view, etc).
    • Input ports:
      • Objects
      • Width (Height is the same — cube images are always square)
      • Color Depth
      • Multisampling
      • Camera Name
    • Output ports:
      • Top Image, Bottom Image, Left Image, Right Image, Front Image, Back Image

When a Spherical Camera is added to a scene, Render Scene to Image/Window behave differently:

  • Instead of rendering directly to the output context (image/window), VuoSceneRenderer creates six textures (cube faces), and renders each object separately to each texture, using a transformed perspective projection.
  • The six cube face images are then composited into a single 2:1 (equirectangular panorama) image.
  • Render Scene to Image uses its width; height is ignored (it's always width/2)
  • Render Scene to Window scales the 2:1 image to fit (or fill?) the window

Comments

We also need an easy way to

alexmitchellmus's picture
Submitted by

We also need an easy way to apply effects to the lat-long image without distorting the effect- and hopefully without having to adjust the effect function. This article discusses the issues in processing lat-long images as normal images- specifically the example of blur is given: standard blurring will cause the blur to be greater at the poles and less at the equator.

Article: http://www.cgchannel.com/2015/04/the-foundry-reveals-the-five-key-proble...

One easy solution is to render the effects with the cube map images (6) then map that into a lat-long.

Hey, I have been working on

alexmitchellmus's picture
Submitted by

Hey, I have been working on this node for converting 6 cube-map images to lat-long. I have been able to iron out the issues I found.

This currently fills in a need for working with Cube-Map images, which isn't outlined above. I envision 3 image nodes (additional to the nodes outlined above by @Steve:

  • image.latlong.cubemap converts 6 cubemap images -> latlong *
  • image.latlong.rotate allows rotating pre-rendered latlong
  • image.latlong.fisheye converts fisheye (or arbitrary FOV) -> latlong.
  • image.latlong.2d converts 2d images to latlong with ability to orientate and zoom

I have attached the node- source & example comp. The cave is a cave I photographed. I would like to know feedback from other Vuo users, as this area is really exciting and special to me.

I haven't named it vuo.image.latlong.cubemap as I didn't want to confuse anyone. If Team Vuo wants to use it I give them complete license to do so (MIT style). If there are any name changers that would need to occur please do so. I notice that we are using interchangeably Equirectangular, Cube-Map & Sphere for the same thing.

Just a reply to @Steve from above:

  • The six cube face images are then composited into a single 2:1 (equirectangular panorama) image.
  • Render Scene to Image uses its width; height is ignored (it's always width/2)
  • Render Scene to Window scales the 2:1 image to fit (or fill?) the window

I thought that to, however when using YouTube for distribution they use a 16:9 ratio: 3840x2160. This is why I have placed a width & height size. Just makes it easier to output to whatever a user needs. If they want 2:1 then either use a maths node or enter resolution. Facebook uses 2:1 currently I think, but they are in the process if redesigning their 360 VR service.

Its also extremely important to get this part of the output correct, as incorrect resolutions (non-matching) may cause issues down the track with missing pixels.

360VR Format YouTube

*for dealing with different forms of cube map such as Cross where all images are within one image, then using crop within Vuo could easily solve that situation, however if that is something that people want please comment here.

NOTE: At this point the node does not engage in any form of antialiasing. I am in the process of testing the need for antialiasing from within the node, or if simply using external antialiasing is enough. (such as by rendering out larger and placing an antialiasing filter in front).

NOTE2: I/We really need to

alexmitchellmus's picture
Submitted by

NOTE2: I/We really need to finish off the supersampling of this plugin and provide a unified menu to allow it to be switched on / off. This needs to be done in Spherical Co-ordinate space, and not as a post process, (but a post process AA filter for spherical would also be useful).

So, if one was going to use

George_Toledo's picture
Submitted by

So, if one was going to use this with VUO scene geometry, they would setup 6 different cameras and output each view to the latlong shader to create a equirectangular output texture?

Has anyone experimented with creating two 180 degree fisheye views of VUO scene geometry in order to get the whole 360, and then converting that to equirectangular? I would be particularly interested in that sort of functionality.

Great so see interest in this

alexmitchellmus's picture
Submitted by

Great so see interest in this node! 360 Vuo is so cool.

Has anyone experimented with creating two 180 degree fisheye views

Yes, I did that to start, however the maths breaks down on the edges of the circle, so you end up with 2 square boxes on both hemispheres, (when viewed lat-long). So each hemisphere shows stitching lines. We could add another view and get rid of many lines. However there would always be a pole issue.

Here is an example, the 360 isn't my own image, and I made this test about a year ago. Just for educational purposes only. Using 6 cameras looks like the best way to go.

Feature status

When we (Team Vuo) plan each release, we try to implement as many of the community's top-voted feature requests as we have time for. Vote your favorite features to the top! (How do Vuo feature requests work?)

  • Submitted to vuo.org
  • Reviewed by Team Vuo
  • Open for community voting
  • Chosen to be implemented
  • Released

Votes

1 vote so far!

Who voted?

Kewl's picture