Jump to: Board index » General » Fusion

Wrapping bitmap around sphere completely?

Learn about 3D compositing, animation, broadcast design and VFX workflows.
  • Author
  • Message
Offline

cyberfyber

  • Posts: 34
  • Joined: Wed Mar 03, 2021 4:56 am
  • Real Name: Luis Diaz

Wrapping bitmap around sphere completely?

PostThu Apr 15, 2021 9:14 pm

Hi, I see this question's been asked some time ago yet with no response.

I imagine the solution must be a very simple one...a step or some-such which I'm missing.

I've an image with 2-1 dimensions (as in 2000 by 1000) which I've applied to a sphere in fusion and it refuses to wrap completely around.

Adjusting the latitude on the sphere only helps stretch the image at one end (south pole, so to speak). But I'm still left with the others: (North Pole and the image extending lengthwise.

Was following a Youtube tute, mind you, on the subject. Fella there appeared to do it sans a hitch.

Thanks.
DR 17 Studio
Win 10 / Ryzen 5 3600 / B550 Tomahawk / 64 GB Ram / 2 x m.2 nvme drives / 1 x HDD / EVGA 650w / RTX 2060
Offline
User avatar

Bryan Ray

  • Posts: 1887
  • Joined: Mon Nov 28, 2016 5:32 am
  • Location: Los Angeles, CA, USA

Re: Wrapping bitmap around sphere completely?

PostThu Apr 15, 2021 9:24 pm

More information is needed, I think. Is your Sphere simply the Shape3D node in Sphere mode? It should work flawlessly, like so:

Code: Select all
{
   Tools = ordered() {
      Checkerboard = MacroOperator {
         CtrlWZoom = false,
         Inputs = ordered() {
            Center = InstanceInput {
               SourceOp = "CustomTool1_2",
               Source = "PointIn1",
            },
            CheckerSize = InstanceInput {
               SourceOp = "CustomTool1_2",
               Source = "CheckerSize",
               Default = 64,
            },
            Width = InstanceInput {
               SourceOp = "Background1_2",
               Source = "Width",
               Default = 1920,
            },
            Height = InstanceInput {
               SourceOp = "Background1_2",
               Source = "Height",
               Default = 1080,
            }
         },
         Outputs = {
            Output = InstanceOutput {
               SourceOp = "CustomTool1_2",
               Source = "Output",
            }
         },
         ViewInfo = GroupInfo { Pos = { 2090, 346.5 } },
         Tools = ordered() {
            Background1_2 = Background {
               CtrlWZoom = false,
               CtrlWShown = false,
               Inputs = {
                  GlobalIn = Input { Value = 1001, },
                  GlobalOut = Input { Value = 1150, },
                  Width = Input { Value = 2000, },
                  Height = Input { Value = 1000, },
                  ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
               },
               ViewInfo = OperatorInfo { Pos = { 0, 10.1499 } },
            },
            CustomTool1_2 = Custom {
               CtrlWZoom = false,
               CtrlWShown = false,
               Inputs = {
                  NumberIn1 = Input {
                     Value = 25,
                     Expression = "CheckerSize",
                  },
                  LUTIn1 = Input {
                     SourceOp = "CustomTool1LUTIn1_1",
                     Source = "Value",
                  },
                  LUTIn2 = Input {
                     SourceOp = "CustomTool1LUTIn2_1",
                     Source = "Value",
                  },
                  LUTIn3 = Input {
                     SourceOp = "CustomTool1LUTIn3_1",
                     Source = "Value",
                  },
                  LUTIn4 = Input {
                     SourceOp = "CustomTool1LUTIn4_1",
                     Source = "Value",
                  },
                  Intermediate1 = Input { Value = "(abs(floor((x-p1x)*(w/n1)))%2)", },
                  Intermediate2 = Input { Value = "(abs(floor((y-p1y)*(h/n1)))%2)", },
                  RedExpression = Input { Value = "abs(i1-i2)", },
                  GreenExpression = Input { Value = "abs(i1-i2)", },
                  BlueExpression = Input { Value = "abs(i1-i2)", },
                  NumberControls = Input { Value = 1, },
                  NameforNumber1 = Input { Value = "SquareSize", },
                  ShowNumber2 = Input { Value = 0, },
                  ShowNumber3 = Input { Value = 0, },
                  ShowNumber4 = Input { Value = 0, },
                  ShowNumber5 = Input { Value = 0, },
                  ShowNumber6 = Input { Value = 0, },
                  ShowNumber7 = Input { Value = 0, },
                  ShowNumber8 = Input { Value = 0, },
                  PointControls = Input { Value = 1, },
                  NameforPoint1 = Input { Value = "Center", },
                  ShowPoint2 = Input { Value = 0, },
                  ShowPoint3 = Input { Value = 0, },
                  ShowPoint4 = Input { Value = 0, },
                  ShowLUT1 = Input { Value = 0, },
                  ShowLUT2 = Input { Value = 0, },
                  ShowLUT3 = Input { Value = 0, },
                  ShowLUT4 = Input { Value = 0, },
                  Image1 = Input {
                     SourceOp = "Background1_2",
                     Source = "Output",
                  },
                  CheckerSize = Input { Value = 25, },
               },
               ViewInfo = OperatorInfo { Pos = { 0, 43.1499 } },
               UserControls = ordered() {
                  CheckerSize = {
                     INP_MinScale = 0,
                     INP_Integer = true,
                     INP_MinAllowed = 0,
                     LINKID_DataType = "Number",
                     INPID_InputControl = "SliderControl",
                     IC_ControlPage = 0,
                     INP_MaxScale = 100,
                     INP_Default = 64,
                  }
               }
            },
            CustomTool1LUTIn1_1 = LUTBezier {
               KeyColorSplines = {
                  [0] = {
                     [0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
                     [1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
                  }
               },
               SplineColor = { Red = 204, Green = 0, Blue = 0 },
               CtrlWShown = false,
            },
            CustomTool1LUTIn2_1 = LUTBezier {
               KeyColorSplines = {
                  [0] = {
                     [0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
                     [1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
                  }
               },
               SplineColor = { Red = 0, Green = 204, Blue = 0 },
               CtrlWShown = false,
            },
            CustomTool1LUTIn3_1 = LUTBezier {
               KeyColorSplines = {
                  [0] = {
                     [0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
                     [1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
                  }
               },
               SplineColor = { Red = 0, Green = 0, Blue = 204 },
               CtrlWShown = false,
            },
            CustomTool1LUTIn4_1 = LUTBezier {
               KeyColorSplines = {
                  [0] = {
                     [0] = { 0, RH = { 0.333333333333333, 0.333333333333333 }, Flags = { Linear = true } },
                     [1] = { 1, LH = { 0.666666666666667, 0.666666666666667 }, Flags = { Linear = true } }
                  }
               },
               SplineColor = { Red = 204, Green = 204, Blue = 204 },
               CtrlWShown = false,
            }
         },
      },
      Shape3D1 = Shape3D {
         Inputs = {
            Shape = Input { Value = FuID { "SurfaceSphereInputs" }, },
            MaterialInput = Input {
               SourceOp = "CustomTool1_2",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            ["SurfaceSphereInputs.SubdivisionLevelBase"] = Input { Value = 73, },
            ["SurfaceSphereInputs.SubdivisionLevelHeight"] = Input { Value = 75, },
            ["SurfaceSphereInputs.ObjectID.ObjectID"] = Input { Value = 2, }
         },
         ViewInfo = OperatorInfo { Pos = { 2200, 346.5 } },
      }
   }
}


Obviously, if you don't want pinching at the poles you'd need a proper equirectangular texture, but the UVs on the sphere are already set so that should work without the need to do anything except plug the texture into the Material slot.

Capture.JPG
Capture.JPG (336 KiB) Viewed 458 times
Bryan Ray
http://www.bryanray.name
http://www.musevfx.com
Offline

cyberfyber

  • Posts: 34
  • Joined: Wed Mar 03, 2021 4:56 am
  • Real Name: Luis Diaz

Re: Wrapping bitmap around sphere completely?

PostThu Apr 15, 2021 9:42 pm

Yes, it's the Shape3D Sphere node.

Going mildly insane with this.

Have tried resizing repeatedly on photoshop based upon one which appeared to work with dimensions of 294 x 196. So I figured, contrary to the 2x1 ratio, a ratio of 1.84 to 1.

Still nothing. I keep ending up with the same result.

Thinking there's some quirky thing in my setup, but no matter what size I go with I end up with the same result. Even an image resized to 200 by 2700 yielded the same thing. Note: Screenshot is NOT of that crazy dimension I just described. (lol)

Screenshot below.
Attachments
Screenshot - Globes - Spheres problem.png
Screenshot - Globes - Spheres problem.png (314.11 KiB) Viewed 453 times
DR 17 Studio
Win 10 / Ryzen 5 3600 / B550 Tomahawk / 64 GB Ram / 2 x m.2 nvme drives / 1 x HDD / EVGA 650w / RTX 2060
Offline

cyberfyber

  • Posts: 34
  • Joined: Wed Mar 03, 2021 4:56 am
  • Real Name: Luis Diaz

Re: Wrapping bitmap around sphere completely?

PostThu Apr 15, 2021 10:15 pm

Bryan Ray wrote:More information is needed, I think. Is your Sphere simply the Shape3D node in Sphere mode? It should work flawlessly, like so:



Well, I solved it by simply copying the image within photoshop onto a new file and renaming to something completely different. Whether the naming helped, no clue yet.

But there was something going on with those files I downloaded from NASA which even after editing and resaving as different files brought the same problems.

Thanks for the input. :-)
DR 17 Studio
Win 10 / Ryzen 5 3600 / B550 Tomahawk / 64 GB Ram / 2 x m.2 nvme drives / 1 x HDD / EVGA 650w / RTX 2060
Offline
User avatar

Bryan Ray

  • Posts: 1887
  • Joined: Mon Nov 28, 2016 5:32 am
  • Location: Los Angeles, CA, USA

Re: Wrapping bitmap around sphere completely?

PostFri Apr 16, 2021 4:02 am

Weird. Only thing I can think is that maybe the raster was larger than the available pixels.

Regarding the Angle and Latitude controls, they do modify the UVs, such that the end values will "stick" to the edges. So if you wanted to wrap your Blue Marble texture around a hemisphere, it wouldn't work immediately. If you use a UVMap3D node to reset the UVs back to a full sphere, though, then it could work, like so:

Code: Select all
{
   Tools = ordered() {
      Loader1 = Loader {
         Clips = {
            Clip {
               ID = "Clip1",
               Filename = "C:\\Users\\Bryan\\Desktop\\390px-Blue_Marble_2002.png",
               FormatID = "PNGFormat",
               StartFrame = 2002,
               LengthSetManually = true,
               TrimIn = 0,
               TrimOut = 0,
               ExtendFirst = 0,
               ExtendLast = 0,
               Loop = 0,
               AspectMode = 0,
               Depth = 0,
               TimeCode = 0,
               GlobalStart = 0,
               GlobalEnd = 0
            }
         },
         CtrlWZoom = false,
         Inputs = {
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
            ["Clip1.PNGFormat.PostMultiply"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 1005.33, 66.7576 } },
      },
      Shape3D1 = Shape3D {
         Inputs = {
            Shape = Input { Value = FuID { "SurfaceSphereInputs" }, },
            MaterialInput = Input {
               SourceOp = "Loader1",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            ["SurfaceSphereInputs.SubdivisionLevelBase"] = Input { Value = 76, },
            ["SurfaceSphereInputs.SubdivisionLevelHeight"] = Input { Value = 100, },
            ["SurfaceSphereInputs.StartSweep"] = Input { Value = 126, },
            ["SurfaceSphereInputs.EndSweep"] = Input { Value = 292, },
            ["SurfaceSphereInputs.StartLat"] = Input { Value = 51, },
            ["SurfaceSphereInputs.EndLat"] = Input { Value = -32, },
            ["SurfaceSphereInputs.ObjectID.ObjectID"] = Input { Value = 2, }
         },
         ViewInfo = OperatorInfo { Pos = { 1120, 71.606 } },
      },
      UVMap3D1 = UVMap {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Shape3D1",
               Source = "Output",
            },
            MapMode = Input { Value = FuID { "Spherical" }, },
         },
         ViewInfo = OperatorInfo { Pos = { 1230, 71.606 } },
      }
   }
}


Capture.JPG
Capture.JPG (173.28 KiB) Viewed 375 times
Bryan Ray
http://www.bryanray.name
http://www.musevfx.com
Offline

cyberfyber

  • Posts: 34
  • Joined: Wed Mar 03, 2021 4:56 am
  • Real Name: Luis Diaz

Re: Wrapping bitmap around sphere completely?

PostFri Apr 16, 2021 5:22 pm

Yeah, it happened to me again after I had to resave the project and get back in.

Needed to once again save a copy of the mesh/texture/image and bring that in anew. Seemed to work better with bmp files. No idea why. Could just be a happenstance thing.

In case you're curious about trying yourself:
https://visibleearth.nasa.gov/images/74 ... generation

Would be interesting to see someone else's experience.
DR 17 Studio
Win 10 / Ryzen 5 3600 / B550 Tomahawk / 64 GB Ram / 2 x m.2 nvme drives / 1 x HDD / EVGA 650w / RTX 2060
Offline
User avatar

Bryan Ray

  • Posts: 1887
  • Joined: Mon Nov 28, 2016 5:32 am
  • Location: Los Angeles, CA, USA

Re: Wrapping bitmap around sphere completely?

PostFri Apr 16, 2021 6:08 pm

I think there must be something corrupt in your install. It works perfectly and immediately for me in Fusion Studio 17.1.1., and also in 9.02.

I downloaded the 5400x2700 jpeg.
Bryan Ray
http://www.bryanray.name
http://www.musevfx.com
Offline

cyberfyber

  • Posts: 34
  • Joined: Wed Mar 03, 2021 4:56 am
  • Real Name: Luis Diaz

Re: Wrapping bitmap around sphere completely?

PostSat Apr 17, 2021 12:18 am

Bryan Ray wrote:I think there must be something corrupt in your install. It works perfectly and immediately for me in Fusion Studio 17.1.1., and also in 9.02.

I downloaded the 5400x2700 jpeg.


Wellll, just uninstalled, rebooted and reinstalled.

Same thing.

This time, instead of copying the image onto a new file (in Photoshop), I simply saved as a bitmap (bmp) and it worked fine.

Crazy.
DR 17 Studio
Win 10 / Ryzen 5 3600 / B550 Tomahawk / 64 GB Ram / 2 x m.2 nvme drives / 1 x HDD / EVGA 650w / RTX 2060
Offline
User avatar

Bryan Ray

  • Posts: 1887
  • Joined: Mon Nov 28, 2016 5:32 am
  • Location: Los Angeles, CA, USA

Re: Wrapping bitmap around sphere completely?

PostSat Apr 17, 2021 2:57 am

That makes no sense to me whatsoever. I'm completely at a loss for what could cause it.
Bryan Ray
http://www.bryanray.name
http://www.musevfx.com
Offline

cyberfyber

  • Posts: 34
  • Joined: Wed Mar 03, 2021 4:56 am
  • Real Name: Luis Diaz

Re: Wrapping bitmap around sphere completely?

PostMon Apr 26, 2021 9:03 pm

Bryan Ray wrote:That makes no sense to me whatsoever. I'm completely at a loss for what could cause it.


Bryan, got Studio today and I tried this all out.

No problem with the image wrapping around the sphere now. Yay!
DR 17 Studio
Win 10 / Ryzen 5 3600 / B550 Tomahawk / 64 GB Ram / 2 x m.2 nvme drives / 1 x HDD / EVGA 650w / RTX 2060

Return to Fusion

Who is online

Users browsing this forum: No registered users and 7 guests