Kartaverse kvrPlane Node

83 views
Skip to first unread message

Andrew Hazelden

unread,
Jun 16, 2024, 3:17:13 AM6/16/24
to Kartaverse
Hi. Today I added new DCTL fuse to Kartaverse that provides a "plane to sphere" style of conversion. The Kartaverse "kvrPlane" node allows you to place a flat image into a 180VR, or 360VR image projection. It supports monoscopic and stereo 3D output.

There is an example comp located at the PathMap location of:
Reactor:/Deploy/Comps/Kartaverse/KartaVP/kvrPlane/Demo kvrPlane v001.comp

The node based layout is typically:
Text+/Loader/MediaIn -> kvrPlane -> AutoDomain -> kvrViewer

There are onscreen control handles in the viewer window which make it quick to position content visually using a "Center" X/Y point control to apply yaw/pitch rotation to the imagery when it is projected into the spherical image projection.

If you are working with non 1:1 aspect ratio source imagery, the "Resolution Gate Fit" control allows you to fit the imagery using either a "Stretch", "Width", or "Height" option. This is great if you want to place a small logo or other custom graphic element and not have to worry about the source image's dimensions and aspect ratio.

Note: At the moment, the 180VR and 360VR options only work on macOS systems with a Metal based GPU. Support for CUDA and OpenCL GPUs on Windows and Linux is under development now.

Regards,
Andrew Hazelden
Kartaverse Developer

fuse-kvrPlane.png

Leon

unread,
Dec 30, 2024, 1:39:09 PM12/30/24
to Kartaverse
Hi, does this work on Windows yet? I get a transparant / empty output from kvrPlane1, and the following error in the Console:

RT kernel KPLANEKernel failed to build:
"KPLANEKernel(3228): error: no suitable constructor exists to convert from "int" to "DVIP::mat3"
  mat3 m = mat3(1, 0, 0, 0, c, -s, 0, s, c);
                ^

KPLANEKernel(3228): error: expected a ")"
  mat3 m = mat3(1, 0, 0, 0, c, -s, 0, s, c);
                 ^

KPLANEKernel(3236): error: no suitable constructor exists to convert from "float" to "DVIP::mat3"
  mat3 m = mat3(c, 0, -s, 0, 1, 0, s, 0, c);
                ^

KPLANEKernel(3236): error: expected a ")"
  mat3 m = mat3(c, 0, -s, 0, 1, 0, s, 0, c);
                 ^

KPLANEKernel(3279): error: no operator "*" matches these operands
            operand types are: DVIP::mat3 * DVIP::mat3
  n = rotY(posU * 2.0f * PI) * rotX(posV * 2.0f * PI) * n;
                             ^

5 errors detected in the compilation of "KPLANEKernel".
"

Thanks

Andrew Hazelden

unread,
Dec 30, 2024, 1:44:01 PM12/30/24
to Kartaverse
Hi Leon.

The kvrPlane node still works on macOS only. The fuse has not been updated to support other platforms yet.

In the mean time you could look at using the built-in "LatLong Patcher" node to work with a 90° FOV "front" cubic view.

Regards,
Andrew Hazelden
Reply all
Reply to author
Forward
0 new messages