Mesh Boolean?

Moderator: SecondMan

User avatar
bryanfordney
Fusioneer
Posts: 88
Joined: Tue Jan 29, 2019 1:10 pm
Location: Atlanta, GA
Been thanked: 5 times

Mesh Boolean?

#1

Post by bryanfordney » Thu Mar 07, 2019 8:18 am

Is there a way to do a boolean operation on a mesh? That is, cut a mesh with another mesh?

Thanks!

User avatar
Tory
Fusioneer
Posts: 68
Joined: Fri Apr 13, 2018 11:29 am
Real name: Tory Hooton
Been thanked: 6 times
Contact:

Re: Mesh Boolean?

#2

Post by Tory » Thu Mar 07, 2019 10:10 am

I have asked something similar before on discord. Here is the best solution I have so far... this is using an override 3d to set one mesh as a matte... you could do this in the shape settings too.
Code: [Select all] [Expand/Collapse] [Download] (WSLsnippet-2019-03-07--12.06.04.setting)
  1. {
  2.     Tools = ordered() {
  3.         Background1 = Background {
  4.             ViewInfo = OperatorInfo { Pos = { 342.666656494141, 6.15151214599609 } },
  5.             Inputs = {
  6.                 TopLeftRed = Input { Value = 0.843 },
  7.                 GlobalOut = Input { Value = 119 },
  8.                 Width = Input { Value = 1920 },
  9.                 ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" } },
  10.                 UseFrameFormatSettings = Input { Value = 1 },
  11.                 Height = Input { Value = 1080 }
  12.             }
  13.         },
  14.         Shape3D1 = Shape3D {
  15.             ViewInfo = OperatorInfo { Pos = { 346, 42.5151519775391 } },
  16.             Inputs = {
  17.                 ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1 },
  18.                 ["MtlStdInputs.MaterialID"] = Input { Value = 1 },
  19.                 Shape = Input { Value = FuID { "SurfaceCubeInputs" } },
  20.                 ["SurfaceCubeInputs.ObjectID.ObjectID"] = Input { Value = 2 },
  21.                 MaterialInput = Input {
  22.                     Source = "Output",
  23.                     SourceOp = "Background1"
  24.                 }
  25.             }
  26.         },
  27.         Background2 = Background {
  28.             ViewInfo = OperatorInfo { Pos = { 520.666564941406, -22.3333358764648 } },
  29.             Inputs = {
  30.                 TopLeftGreen = Input { Value = 0.370048 },
  31.                 GlobalOut = Input { Value = 119 },
  32.                 Width = Input { Value = 1920 },
  33.                 TopLeftBlue = Input { Value = 0.472 },
  34.                 ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" } },
  35.                 UseFrameFormatSettings = Input { Value = 1 },
  36.                 Height = Input { Value = 1080 }
  37.             }
  38.         },
  39.         Shape3D2 = Shape3D {
  40.             ViewInfo = OperatorInfo { Pos = { 520.000061035156, 21.9090843200684 } },
  41.             Inputs = {
  42.                 ["SurfaceSphereInputs.ObjectID.ObjectID"] = Input { Value = 4 },
  43.                 ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 3 },
  44.                 ["MtlStdInputs.MaterialID"] = Input { Value = 2 },
  45.                 Shape = Input { Value = FuID { "SurfaceSphereInputs" } },
  46.                 ["SurfaceSphereInputs.Matte.Nest"] = Input { Value = 1 },
  47.                 ["SurfaceSphereInputs.Radius"] = Input { Value = 0.63 },
  48.                 ["SurfaceSphereInputs.Visibility.Nest"] = Input { Value = 1 },
  49.                 MaterialInput = Input {
  50.                     Source = "Output",
  51.                     SourceOp = "Background2"
  52.                 }
  53.             }
  54.         },
  55.         Override3D1 = Override3D {
  56.             CtrlWZoom = false,
  57.             ViewInfo = OperatorInfo { Pos = { 520.666748046875, 63.7272720336914 } },
  58.             Inputs = {
  59.                 SceneInput = Input {
  60.                     Source = "Output",
  61.                     SourceOp = "Shape3D2"
  62.                 },
  63.                 ["Matte.DoMatte"] = Input { Value = 1 },
  64.                 ["Matte.IsMatte"] = Input { Value = 1 }
  65.             }
  66.         },
  67.         Merge3D1 = Merge3D {
  68.             ViewInfo = OperatorInfo { Pos = { 457.333343505859, 114.636352539063 } },
  69.             Inputs = {
  70.                 SceneInput1 = Input {
  71.                     Source = "Output",
  72.                     SourceOp = "Shape3D1"
  73.                 },
  74.                 SceneInput2 = Input {
  75.                     Source = "Output",
  76.                     SourceOp = "Override3D1"
  77.                 }
  78.             }
  79.         }
  80.     }
  81. }
NOTE: this is only cutting out the visibility it is not a true mesh bol operation. So in this case if you rotate correctly the sphere cuts out more of the cube than you would want. it is matting the shape not actually defining a new shape. For me I think a full 3d app would be the place to do that. I would use Blender to cut the mesh...

I would love to hear a better solution inside fusion :)

User avatar
bryanfordney
Fusioneer
Posts: 88
Joined: Tue Jan 29, 2019 1:10 pm
Location: Atlanta, GA
Been thanked: 5 times

Re: Mesh Boolean?

#3

Post by bryanfordney » Fri Mar 08, 2019 10:57 am

Yeah, better to just use a 3d app. In my case I would need a true boolean because I'm using the mesh for Replicate3D. Thank you!