Fu Regions on Particle Tools and Duplicate 3D

Moderator: Chad

User avatar
mindmedicine
Fusioneer
Posts: 60
Joined: Fri Aug 22, 2014 2:34 am
Location: Ghent/Belgium
Contact:

Regions on Particle Tools and Duplicate 3D

#1

Post by mindmedicine » Fri Dec 25, 2015 3:15 am

Fusion version:
8 build 23 (beta3) and before
OS and version:
Windows 7
Additional relevant system info:
/
Description of the bug:
Regions (region tab) of particle tools and (since Fu7) duplicate 3D don't all work properly:

Region set to bitmap:
almost unusable since it has no control over size, placement and rotation of the bitmap so nothing outside the area of -.5,-.5,-.5 and .5,.5,.5 is affected.

Region set to Mesh:
for particles: only works for the pEmitter and pBounce. Not on forces, pSpawn, pKill,...
for duplicate3D: doesn't work at all.

Region set to Line or Bezier: don't really work properly except in 2D-particles mode. Obsolete if Bitmap and mesh would work better?

Region set to Cube, Sphere and rectange: work as expected.

Region Mode on Particle Tools: The only ones that seem to work are "When inside Region" and "When not inside Region"

I prepared some simple examples demonstrating this with notes below:

Severity (Trivial, Minor, Major, Critical)
Major.
Steps to reproduce:
See example below.

Code: Select all

{
	Tools = ordered() {
		Shape3D1 = Shape3D {
			Inputs = {
				Shape = Input { Value = FuID { "SurfaceCubeInputs" }, },
				["MtlStdInputs.MaterialID"] = Input { Value = 1, },
				["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
				["SurfaceCubeInputs.ObjectID.ObjectID"] = Input { Value = 2, }
			},
			ViewInfo = OperatorInfo { Pos = { 0, -280.5 } },
		},
		Transform3D1 = Transform3D {
			Inputs = {
				SceneInput = Input {
					SourceOp = "Shape3D1",
					Source = "Output",
				},
				["Transform3DOp.Rotate.X"] = Input {
					Value = 140,
					Expression = "time*10",
				},
				["Transform3DOp.Rotate.Y"] = Input { Expression = "0", },
				["Transform3DOp.Rotate.Z"] = Input { Expression = "0", },
			},
			ViewInfo = OperatorInfo { Pos = { 110, -280.5 } },
		},
		Duplicate3D_Accumulated_1_1_2 = Duplicate3D {
			NameSet = true,
			Inputs = {
				["RectRgn.Width"] = Input {
					SourceOp = "Duplicate3D_Accumulated_1_1_2RectRgnWidth",
					Source = "Value",
				},
				["RectRgn.Height"] = Input { Value = 5, },
				LastCopy = Input { Value = 10, },
				TimeOffset = Input { Value = 1, },
				["Translate.X"] = Input { Value = 1.51396967109897, },
				RegionMode = Input { Value = FuID { "Inside" }, },
				Region = Input { Value = FuID { "CubeRgn" }, },
				SceneInput = Input {
					SourceOp = "Transform3D1",
					Source = "Output",
				},
				["SphereRgn.Size"] = Input {
					SourceOp = "Duplicate3D_Accumulated_1_1_2Size",
					Source = "Value",
				},
				["CubeRgn.Width"] = Input {
					SourceOp = "Duplicate3D_Accumulated_1_1_2Width",
					Source = "Value",
				},
				["CubeRgn.Height"] = Input { Value = 1, },
				["CubeRgn.Depth"] = Input { Value = 1, }
			},
			ViewInfo = OperatorInfo { Pos = { 385, -82.5 } },
		},
		Duplicate3D_Accumulated_1_1_2RectRgnWidth = BezierSpline {
			SplineColor = { Red = 225, Green = 255, Blue = 0 },
			NameSet = true,
			KeyFrames = {
				[0] = { 1, RH = { 16.6666666666667, 10.6666666666667 }, Flags = { Linear = true } },
				[50] = { 30, LH = { 33.3333333333333, 20.3333333333333 }, Flags = { Linear = true } }
			}
		},
		Duplicate3D_Accumulated_1_1_2Size = BezierSpline {
			SplineColor = { Red = 225, Green = 0, Blue = 225 },
			NameSet = true,
			KeyFrames = {
				[0] = { 50, RH = { 16.6666666666667, 34.9587301587302 }, Flags = { Linear = true } },
				[50] = { 4.87619047619048, LH = { 33.3333333333333, 19.9174603174603 }, Flags = { Linear = true } }
			}
		},
		Duplicate3D_Accumulated_1_1_2Width = BezierSpline {
			SplineColor = { Red = 148, Green = 255, Blue = 0 },
			NameSet = true,
			KeyFrames = {
				[0] = { 1, RH = { 33.3333333333333, 34 }, Flags = { Linear = true } },
				[100] = { 100, LH = { 66.6666666666667, 67 }, Flags = { Linear = true } }
			}
		},
		Shape3D5_1 = Shape3D {
			Inputs = {
				["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 11, },
				["Transform3DOp.Translate.Y"] = Input { Value = -3.59273198774054, },
				Shape = Input { Value = FuID { "SurfaceCubeInputs" }, },
				["MtlStdInputs.MaterialID"] = Input { Value = 6, },
				["SurfaceSphereInputs.ObjectID.ObjectID"] = Input { Value = 12, },
				["SurfaceCubeInputs.SizeLock"] = Input { Value = 0, },
				["SurfaceCubeInputs.Width"] = Input { Value = 10, },
				["SurfaceCubeInputs.Height"] = Input { Value = 0.2, },
				["SurfaceCubeInputs.Depth"] = Input { Value = 10, },
				["SurfaceCubeInputs.ObjectID.ObjectID"] = Input { Value = 13, }
			},
			ViewInfo = OperatorInfo { Pos = { 385, 115.5 } },
		},
		Merge3D2 = Merge3D {
			Inputs = {
				SceneInput1 = Input {
					SourceOp = "Shape3D5",
					Source = "Output",
				},
				SceneInput2 = Input {
					SourceOp = "Shape3D5_1",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 385, 181.5 } },
		},
		Shape3D5 = Shape3D {
			Inputs = {
				["Transform3DOp.Translate.Y"] = Input { Value = -2.60516900608889, },
				Shape = Input { Value = FuID { "SurfaceSphereInputs" }, },
				["MtlStdInputs.MaterialID"] = Input { Value = 6, },
				["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 11, },
				["SurfaceSphereInputs.ObjectID.ObjectID"] = Input { Value = 12, }
			},
			ViewInfo = OperatorInfo { Pos = { 275, 181.5 } },
		},
		pBounce1 = pBounce {
			ID = 94,
			Inputs = {
				Input = Input {
					SourceOp = "pDirectionalForce1_2",
					Source = "Output",
				},
				Elasticity = Input { Value = 0.25, },
				Variance = Input { Value = 0.2, },
				Roughness = Input { Value = 9.23809523809524, },
				SurfaceMotion = Input { Value = 0.0142857142857143, },
				Region = Input { Value = FuID { "MeshRegion" }, },
				["MeshRegion.MeshInput"] = Input {
					SourceOp = "Merge3D2",
					Source = "Output",
				}
			},
			ViewInfo = OperatorInfo { Pos = { 110, 247.5 } },
		},
		pDirectionalForce1_2 = pDirectionalForce {
			ID = 95,
			Inputs = {
				Strength = Input { Value = 0.5, },
				Input = Input {
					SourceOp = "pEmitter1_2",
					Source = "Output",
				},
				RegionMode = Input { Value = FuID { "Entering" }, },
			},
			ViewInfo = OperatorInfo { Pos = { 0, 247.5 } },
		},
		Duplicate3D_Accumulated_1_1 = Duplicate3D {
			CtrlWZoom = false,
			NameSet = true,
			Inputs = {
				LastCopy = Input { Value = 10, },
				TimeOffset = Input { Value = 1, },
				["Translate.X"] = Input { Value = 1.51396967109897, },
				RegionMode = Input { Value = FuID { "Inside" }, },
				Region = Input { Value = FuID { "SphereRgn" }, },
				SceneInput = Input {
					SourceOp = "Transform3D1",
					Source = "Output",
				},
				["RectRgn.Width"] = Input {
					SourceOp = "Duplicate3D_Accumulated_1_1Width",
					Source = "Value",
				},
				["RectRgn.Height"] = Input { Value = 5, },
				["SphereRgn.Size"] = Input {
					SourceOp = "Duplicate3D_Accumulated_1_1Size",
					Source = "Value",
				}
			},
			ViewInfo = OperatorInfo { Pos = { 495, -82.5 } },
		},
		Duplicate3D_Accumulated_1_1Width = BezierSpline {
			SplineColor = { Red = 225, Green = 255, Blue = 0 },
			NameSet = true,
			KeyFrames = {
				[0] = { 1, RH = { 16.6666666666667, 10.6666666666667 }, Flags = { Linear = true } },
				[50] = { 30, LH = { 33.3333333333333, 20.3333333333333 }, Flags = { Linear = true } }
			}
		},
		Duplicate3D_Accumulated_1_1Size = BezierSpline {
			SplineColor = { Red = 225, Green = 0, Blue = 225 },
			NameSet = true,
			KeyFrames = {
				[0] = { 50, RH = { 16.6666666666667, 34.9587301587302 }, Flags = { Linear = true } },
				[50] = { 4.87619047619048, LH = { 33.3333333333333, 19.9174603174603 }, Flags = { Linear = true } }
			}
		},
		pEmitter1_2 = pEmitter {
			ID = 96,
			Inputs = {
				Number = Input {
					SourceOp = "pEmitter1_2Number",
					Source = "Value",
				},
				Style = Input { Value = FuID { "ParticleStyleBlob" }, },
				Region = Input { Value = FuID { "MeshRegion" }, },
				["ParticleStyle.ColorOverLife"] = Input {
					Value = Gradient {
						Colors = {
							[0] = { 1, 1, 1, 1 }
						}
					},
				},
				["ParticleStyle.SizeControls"] = Input { Value = 1, },
				["ParticleStyle.Size"] = Input { Value = 0.2, },
				["ParticleStyle.SizeOverLife"] = Input {
					SourceOp = "pEmitter1SizeoverLife_2",
					Source = "Value",
				},
				["ParticleStyle.BlurOverLife"] = Input {
					SourceOp = "pEmitter1BluroverLife2D_2",
					Source = "Value",
				},
				["MeshRegion.MeshInput"] = Input {
					SourceOp = "Shape3D3",
					Source = "Output",
				}
			},
			ViewInfo = OperatorInfo { Pos = { -110, 247.5 } },
		},
		pEmitter1_2Number = BezierSpline {
			SplineColor = { Red = 233, Green = 206, Blue = 78 },
			NameSet = true,
			KeyFrames = {
				[0] = { 1000, RH = { 0.333333333333333, 666.666666666667 }, Flags = { Linear = true } },
				[1] = { 0, LH = { 0.666666666666667, 333.333333333333 }, Flags = { Linear = true } }
			}
		},
		pEmitter1SizeoverLife_2 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0.5, RH = { 0.333333333333333, 0.5 }, Flags = { Linear = true } },
					[1] = { 0.5, LH = { 0.666666666666667, 0.5 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 192, Green = 128, Blue = 64 },
		},
		pEmitter1BluroverLife2D_2 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0.5, RH = { 0.333333333333333, 0.5 }, Flags = { Linear = true } },
					[1] = { 0.5, LH = { 0.666666666666667, 0.5 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 192, Green = 128, Blue = 64 },
		},
		Merge3D1_1 = Merge3D {
			Inputs = {
				SceneInput1 = Input {
					SourceOp = "pRender1_2",
					Source = "Output",
				},
				SceneInput2 = Input {
					SourceOp = "Merge3D2",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 495, 247.5 } },
		},
		pRender1_2 = pRender {
			Inputs = {
				["_MotionBlurWarning"] = Input { Disabled = true, },
				GlobalOut = Input { Value = 100, },
				Width = Input { Value = 2048, },
				Height = Input { Value = 1556, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
				OutputMode = Input { Disabled = true, },
				IntegrationMethod = Input { Value = FuID { "RK4" }, },
				["MaterialID.MaterialID"] = Input { Value = 3, },
				["ObjectID.ObjectID"] = Input { Value = 5, },
				Input = Input {
					SourceOp = "pBounce1",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 385, 247.5 } },
		},
		Duplicate3D_Accumulated_1_1_1 = Duplicate3D {
			NameSet = true,
			Inputs = {
				["RectRgn.Width"] = Input {
					SourceOp = "Duplicate3D_Accumulated_1_1_1RectRgnWidth",
					Source = "Value",
				},
				["RectRgn.Height"] = Input { Value = 5, },
				LastCopy = Input { Value = 20, },
				TimeOffset = Input { Value = 1, },
				["Translate.X"] = Input { Value = 1.51396967109897, },
				RegionMode = Input { Value = FuID { "Inside" }, },
				Region = Input { Value = FuID { "BitmapRgn" }, },
				SceneInput = Input {
					SourceOp = "Transform3D1",
					Source = "Output",
				},
				["SphereRgn.Size"] = Input {
					SourceOp = "Duplicate3D_Accumulated_1_1_1Size",
					Source = "Value",
				},
				["BitmapRgn.Bitmap"] = Input {
					SourceOp = "Background1",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 495, -412.5 } },
		},
		Duplicate3D_Accumulated_1_1_1RectRgnWidth = BezierSpline {
			SplineColor = { Red = 225, Green = 255, Blue = 0 },
			NameSet = true,
			KeyFrames = {
				[0] = { 1, RH = { 16.6666666666667, 10.6666666666667 }, Flags = { Linear = true } },
				[50] = { 30, LH = { 33.3333333333333, 20.3333333333333 }, Flags = { Linear = true } }
			}
		},
		Duplicate3D_Accumulated_1_1_1Size = BezierSpline {
			SplineColor = { Red = 225, Green = 0, Blue = 225 },
			NameSet = true,
			KeyFrames = {
				[0] = { 50, RH = { 16.6666666666667, 34.9587301587302 }, Flags = { Linear = true } },
				[50] = { 4.87619047619048, LH = { 33.3333333333333, 19.9174603174603 }, Flags = { Linear = true } }
			}
		},
		Duplicate3D_Accumulated = Duplicate3D {
			NameSet = true,
			Inputs = {
				LastCopy = Input { Value = 10, },
				TimeOffset = Input { Value = 1, },
				["Translate.X"] = Input { Value = 1.51396967109897, },
				RegionMode = Input { Value = FuID { "Inside" }, },
				Region = Input { Value = FuID { "MeshRegion" }, },
				SceneInput = Input {
					SourceOp = "Transform3D1",
					Source = "Output",
				},
				["MeshRegion.MeshInput"] = Input {
					SourceOp = "Shape3D2",
					Source = "Output",
				},
				["RectRgn.Width"] = Input { Value = 1, },
				["RectRgn.Height"] = Input { Value = 5, }
			},
			ViewInfo = OperatorInfo { Pos = { 495, -544.5 } },
		},
		Shape3D2 = Shape3D {
			Inputs = {
				Shape = Input { Value = FuID { "SurfaceCubeInputs" }, },
				["MtlStdInputs.MaterialID"] = Input { Value = 2, },
				["SurfacePlaneInputs.Width"] = Input { Value = 8.66666666666667, },
				["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 3, },
				["SurfaceCubeInputs.Width"] = Input { Value = 3.28571428571429, },
				["SurfaceCubeInputs.SubdivisionWidth"] = Input { Value = 1, },
				["SurfaceCubeInputs.ObjectID.ObjectID"] = Input { Value = 4, },
				["SurfaceSphereInputs.Radius"] = Input { Value = 1.95238095238095, },
				["SurfaceSphereInputs.ObjectID.ObjectID"] = Input { Value = 10, }
			},
			ViewInfo = OperatorInfo { Pos = { 495, -610.5 } },
		},
		Rectangle1 = RectangleMask {
			Inputs = {
				MaskWidth = Input { Value = 2048, },
				MaskHeight = Input { Value = 1556, },
				PixelAspect = Input { Value = { 1, 1 }, },
				ClippingMode = Input { Value = FuID { "None" }, },
				Width = Input {
					SourceOp = "Rectangle1Width",
					Source = "Value",
				},
				Height = Input { Value = 1.72, },
			},
			ViewInfo = OperatorInfo { Pos = { 495, -478.5 } },
		},
		Rectangle1Width = BezierSpline {
			SplineColor = { Red = 225, Green = 255, Blue = 0 },
			NameSet = true,
			KeyFrames = {
				[0] = { 1.16, RH = { 33.3333333333333, 0.773333333333333 }, Flags = { Linear = true } },
				[100] = { 0, LH = { 66.6666666666667, 0.386666666666667 }, Flags = { Linear = true } }
			}
		},
		Background1 = Background {
			Inputs = {
				GlobalOut = Input { Value = 100, },
				Width = Input { Value = 100, },
				Height = Input { Value = 100, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
				TopLeftRed = Input { Value = 1, },
				TopLeftGreen = Input { Value = 1, },
				TopLeftBlue = Input { Value = 1, },
				Gradient = Input {
					Value = Gradient {
						Colors = {
							[0] = { 0, 0, 0, 1 },
							[1] = { 1, 1, 1, 1 }
						}
					},
				},
				EffectMask = Input {
					SourceOp = "Rectangle1",
					Source = "Mask",
				}
			},
			ViewInfo = OperatorInfo { Pos = { 495, -445.5 } },
		},
		Duplicate3D_Accumulated_1_2 = Duplicate3D {
			NameSet = true,
			Inputs = {
				LastCopy = Input { Value = 10, },
				TimeOffset = Input { Value = 1, },
				["Translate.X"] = Input { Value = 1.51396967109897, },
				RegionMode = Input { Value = FuID { "Inside" }, },
				Region = Input { Value = FuID { "LineRgn" }, },
				SceneInput = Input {
					SourceOp = "Transform3D1",
					Source = "Output",
				},
				["RectRgn.Width"] = Input {
					SourceOp = "Duplicate3D_Accumulated_1_2Width",
					Source = "Value",
				},
				["RectRgn.Height"] = Input { Value = 5, },
				["LineRgn.End.X"] = Input { Value = 5.943617, },
				["LineRgn.End.Y"] = Input { Value = 1.574468, },
			},
			ViewInfo = OperatorInfo { Pos = { 495, -280.5 } },
		},
		Duplicate3D_Accumulated_1_2Width = BezierSpline {
			SplineColor = { Red = 225, Green = 255, Blue = 0 },
			NameSet = true,
			KeyFrames = {
				[0] = { 1, RH = { 16.6666666666667, 10.6666666666667 }, Flags = { Linear = true } },
				[50] = { 30, LH = { 33.3333333333333, 20.3333333333333 }, Flags = { Linear = true } }
			}
		},
		Duplicate3D_Accumulated_1_1_1_1 = Duplicate3D {
			NameSet = true,
			Inputs = {
				["RectRgn.Width"] = Input {
					SourceOp = "Duplicate3D_Accumulated_1_1_1_1RectRgnWidth",
					Source = "Value",
				},
				["RectRgn.Height"] = Input { Value = 5, },
				["SphereRgn.Size"] = Input {
					SourceOp = "Duplicate3D_Accumulated_1_1_1_1SphereRgnSize",
					Source = "Value",
				},
				LastCopy = Input { Value = 20, },
				TimeOffset = Input { Value = 1, },
				["Translate.X"] = Input { Value = 1.51396967109897, },
				RegionMode = Input { Value = FuID { "Inside" }, },
				Region = Input { Value = FuID { "BezierRgn" }, },
				SceneInput = Input {
					SourceOp = "Transform3D1",
					Source = "Output",
				},
				["BezierRgn.Translate.X"] = Input { Value = -0.1702128, },
				["BezierRgn.Size"] = Input { Value = 4.76190476190476, },
				["BezierRgn.Angle"] = Input { Value = -20.7692308, },
				["BezierRgn.Polyline"] = Input {
					SourceOp = "Duplicate3D_Accumulated_1_1_1_1Polyline",
					Source = "Value",
				}
			},
			ViewInfo = OperatorInfo { Pos = { 495, 16.5 } },
		},
		Duplicate3D_Accumulated_1_1_1_1RectRgnWidth = BezierSpline {
			SplineColor = { Red = 225, Green = 255, Blue = 0 },
			NameSet = true,
			KeyFrames = {
				[0] = { 1, RH = { 16.6666666666667, 10.6666666666667 }, Flags = { Linear = true } },
				[50] = { 30, LH = { 33.3333333333333, 20.3333333333333 }, Flags = { Linear = true } }
			}
		},
		Duplicate3D_Accumulated_1_1_1_1SphereRgnSize = BezierSpline {
			SplineColor = { Red = 225, Green = 0, Blue = 225 },
			NameSet = true,
			KeyFrames = {
				[0] = { 50, RH = { 16.6666666666667, 34.9587301587302 }, Flags = { Linear = true } },
				[50] = { 4.87619047619048, LH = { 33.3333333333333, 19.9174603174603 }, Flags = { Linear = true } }
			}
		},
		Duplicate3D_Accumulated_1_1_1_1Polyline = BezierSpline {
			SplineColor = { Red = 96, Green = 255, Blue = 47 },
			NameSet = true,
			KeyFrames = {
				[0] = { 0, RH = { 33.3333333333333, 0.333333333333333 }, Flags = { Linear = true, LockedY = true }, Value = Polyline {
						Closed = true,
						Points = {
							{ Linear = true, X = -0.327986366206999, Y = 0.598393295792274, LX = 0.967659999333978, LY = 0.893759397228669, RX = 0, RY = -0.263660202423731 },
							{ Linear = true, X = -0.327986366206999, Y = -0.192587311478919, LX = 0, LY = 0.263660202423731, RX = 1.12576631459233, RY = 0.447176985183416 },
							{ Linear = true, X = 3.04931257756999, Y = 1.14894364407133, LX = -1.12576631459233, LY = -0.447176985183416, RX = -0.15810631525835, RY = 0.710242614468984 },
							{ Linear = true, X = 2.57499363179494, Y = 3.27967148747828, LX = 0.15810631525835, LY = -0.710242614468984, RX = -0.967659999333978, RY = -0.893759397228669 }
						}
					} },
				[100] = { 1, LH = { 66.6666666666667, 0.666666666666667 }, Flags = { Linear = true, LockedY = true }, Value = Polyline {
						Closed = true,
						Points = {
							{ Linear = true, X = -0.327986366206999, Y = 0.598393295792274, LX = 0.081277543712888, LY = 0.30960040629396, RX = 0, RY = -0.263660202423731 },
							{ Linear = true, X = -0.327986366206999, Y = -0.192587311478919, LX = 0, LY = 0.263660202423731, RX = 0.239383858971238, RY = -0.136982005751293 },
							{ Linear = true, X = 0.390165210706716, Y = -0.603533328732797, LX = -0.239383858971238, LY = 0.136982005751293, RX = -0.15810631525835, RY = 0.710242614468983 },
							{ Linear = true, X = -0.0841537350683347, Y = 1.52719451467415, LX = 0.15810631525835, LY = -0.710242614468983, RX = -0.081277543712888, RY = -0.30960040629396 }
						}
					} }
			}
		},
		Duplicate3D_Accumulated_1 = Duplicate3D {
			NameSet = true,
			Inputs = {
				LastCopy = Input { Value = 10, },
				TimeOffset = Input { Value = 1, },
				["Translate.X"] = Input { Value = 1.51396967109897, },
				RegionMode = Input { Value = FuID { "Inside" }, },
				Region = Input { Value = FuID { "RectRgn" }, },
				SceneInput = Input {
					SourceOp = "Transform3D1",
					Source = "Output",
				},
				["RectRgn.Width"] = Input {
					SourceOp = "Duplicate3D_Accumulated_1Width",
					Source = "Value",
				},
				["RectRgn.Height"] = Input { Value = 5, }
			},
			ViewInfo = OperatorInfo { Pos = { 495, -181.5 } },
		},
		Duplicate3D_Accumulated_1Width = BezierSpline {
			SplineColor = { Red = 225, Green = 255, Blue = 0 },
			NameSet = true,
			KeyFrames = {
				[0] = { 1, RH = { 16.6666666666667, 10.6666666666667 }, Flags = { Linear = true } },
				[50] = { 30, LH = { 33.3333333333333, 20.3333333333333 }, Flags = { Linear = true } }
			}
		},
		Shape3D4 = Shape3D {
			Inputs = {
				Shape = Input { Value = FuID { "SurfaceCubeInputs" }, },
				["MtlStdInputs.MaterialID"] = Input { Value = 5, },
				["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 8, },
				["SurfaceCubeInputs.Width"] = Input { Value = 2, },
				["SurfaceCubeInputs.SubdivisionWidth"] = Input { Value = 1, },
				["SurfaceCubeInputs.Wireframe"] = Input { Value = 1, },
				["SurfaceCubeInputs.Controls.Nest"] = Input { Value = 1, },
				["SurfaceCubeInputs.ObjectID.ObjectID"] = Input { Value = 9, }
			},
			ViewInfo = OperatorInfo { Pos = { -55, 313.5 } },
		},
		Transform3D2 = Transform3D {
			Inputs = {
				SceneInput = Input {
					SourceOp = "Shape3D4",
					Source = "Output",
				},
				["Transform3DOp.Translate.X"] = Input {
					SourceOp = "Transform3D2XOffset",
					Source = "Value",
				},
			},
			ViewInfo = OperatorInfo { Pos = { -55, 346.5 } },
		},
		Transform3D2XOffset = BezierSpline {
			SplineColor = { Red = 250, Green = 59, Blue = 49 },
			NameSet = true,
			KeyFrames = {
				[0] = { -6, RH = { 33.3333333333333, -2 }, Flags = { Linear = true } },
				[100] = { 6, LH = { 66.6666666666667, 2 }, Flags = { Linear = true } }
			}
		},
		Note1_1_1 = Note {
			Inputs = {
				Comments = Input { Value = "region set to cube or sphere: works as expected", }
			},
			ViewInfo = StickyNoteInfo {
				Pos = { 605, -82.5 },
				Flags = {
					Expanded = true
				},
				Size = { 196, 43.9157 }
			},
			Colors = { TileColor = { R = 0, G = 0.333333333333333, B = 0 }, }
		},
		Note1_1_1_2_1 = Note {
			Inputs = {
				Comments = Input { Value = "region set to mesh as emitter or bounce: works as expected", }
			},
			ViewInfo = StickyNoteInfo {
				Pos = { 605, 247.5 },
				Flags = {
					Expanded = true
				},
				Size = { 196, 71.87 }
			},
			Colors = { TileColor = { R = 0, G = 0.333333333333333, B = 0 }, }
		},
		Note1_1_1_1_1 = Note {
			Inputs = {
				Comments = Input { Value = "region set to bezier: some control over the placement/size/rotation of the bezier. Makes more sense when in Particle 2D mode. \nWhen bitmap region would get proper control, this mode would become obsolete for most uses.", }
			},
			ViewInfo = StickyNoteInfo {
				Pos = { 605, 16.5 },
				Flags = {
					Expanded = true
				},
				Size = { 196, 88.281 }
			},
			Colors = { TileColor = { R = 0.666666666666667, G = 0.333333333333333, B = 0 }, }
		},
		Note1_1_1_1 = Note {
			Inputs = {
				Comments = Input { Value = "region set to bitmap: no control over the placement/size/rotation of the bitmap. Now it only applies to the first duplicate.", }
			},
			ViewInfo = StickyNoteInfo {
				Pos = { 605, -412.5 },
				Flags = {
					Expanded = true
				},
				Size = { 196, 88.281 }
			},
			Colors = { TileColor = { R = 0.666666666666667, G = 0, B = 0 }, }
		},
		Note1_1 = Note {
			Inputs = {
				Comments = Input { Value = "region set to rectangle: works as expected", }
			},
			ViewInfo = StickyNoteInfo {
				Pos = { 605, -181.5 },
				Flags = {
					Expanded = true
				},
				Size = { 196, 43.9157 }
			},
			Colors = { TileColor = { R = 0, G = 0.333333333333333, B = 0 }, }
		},
		Note1_1_2 = Note {
			Inputs = {
				Comments = Input { Value = "region set to line: does not work", }
			},
			ViewInfo = StickyNoteInfo {
				Pos = { 605, -280.5 },
				Flags = {
					Expanded = true
				},
				Size = { 196, 43.9157 }
			},
			Colors = { TileColor = { R = 0.666666666666667, G = 0, B = 0 }, }
		},
		Note1 = Note {
			Inputs = {
				Comments = Input { Value = "region set to mesh: does not work at all", }
			},
			ViewInfo = StickyNoteInfo {
				Pos = { 605, -544.5 },
				Flags = {
					Expanded = true
				},
				Size = { 196, 43.9157 }
			},
			Colors = { TileColor = { R = 0.666666666666667, G = 0, B = 0 }, }
		},
		pTurbulence1 = pTurbulence {
			ID = 106,
			Inputs = {
				XStrength = Input { Value = 5, },
				YStrength = Input { Value = 5, },
				ZStrength = Input { Value = 5, },
				StrengthOverLifeLUT = Input {
					SourceOp = "pTurbulence1StrengthoverLifeLUT",
					Source = "Value",
				},
				Input = Input {
					SourceOp = "pDirectionalForce1",
					Source = "Output",
				},
				RegionMode = Input { Value = FuID { "NotInside" }, },
				Region = Input { Value = FuID { "MeshRegion" }, },
				["MeshRegion.MeshInput"] = Input {
					SourceOp = "Transform3D2",
					Source = "Output",
				}
			},
			ViewInfo = OperatorInfo { Pos = { -165, 412.5 } },
		},
		pTurbulence1StrengthoverLifeLUT = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0.5, RH = { 0.3, 0.5 }, Flags = { Linear = true } },
					[1] = { 0.5, LH = { 0.7, 0.5 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 192, Green = 128, Blue = 64 },
			NameSet = true,
		},
		pKill1 = pKill {
			ID = 108,
			PassThrough = true,
			Inputs = {
				Input = Input {
					SourceOp = "pTurbulence1",
					Source = "Output",
				},
				RegionMode = Input { Value = FuID { "Inside" }, },
				Region = Input { Value = FuID { "MeshRegion" }, },
				["MeshRegion.MeshInput"] = Input {
					SourceOp = "Transform3D2",
					Source = "Output",
				}
			},
			ViewInfo = OperatorInfo { Pos = { -55, 412.5 } },
		},
		pVortex1 = pVortex {
			ID = 110,
			Inputs = {
				Input = Input {
					SourceOp = "pKill1",
					Source = "Output",
				},
				RegionMode = Input { Value = FuID { "Inside" }, },
				Region = Input { Value = FuID { "MeshRegion" }, },
				["MeshRegion.MeshInput"] = Input {
					SourceOp = "Transform3D2",
					Source = "Output",
				}
			},
			ViewInfo = OperatorInfo { Pos = { 55, 412.5 } },
		},
		pRender1 = pRender {
			Inputs = {
				["_MotionBlurWarning"] = Input { Disabled = true, },
				GlobalOut = Input { Value = 100, },
				Width = Input { Value = 2048, },
				Height = Input { Value = 1556, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
				OutputMode = Input { Disabled = true, },
				IntegrationMethod = Input { Value = FuID { "RK4" }, },
				["MaterialID.MaterialID"] = Input { Value = 3, },
				["ObjectID.ObjectID"] = Input { Value = 5, },
				Input = Input {
					SourceOp = "pFriction1_2",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 385, 412.5 } },
		},
		pSpawn1 = pSpawn {
			ID = 111,
			Inputs = {
				Input = Input {
					SourceOp = "pVortex1",
					Source = "Output",
				},
				RegionMode = Input { Value = FuID { "Inside" }, },
				Region = Input { Value = FuID { "MeshRegion" }, },
				["ParticleStyle.ColorOverLife"] = Input {
					Value = Gradient {
						Colors = {
							[0] = { 1, 1, 1, 1 }
						}
					},
				},
				["ParticleStyle.SizeOverLife"] = Input {
					SourceOp = "pSpawn1SizeoverLife",
					Source = "Value",
				},
				["ParticleStyle.BlurOverLife"] = Input {
					SourceOp = "pSpawn1BluroverLife2D",
					Source = "Value",
				},
				["MeshRegion.MeshInput"] = Input {
					SourceOp = "Transform3D2",
					Source = "Output",
				}
			},
			ViewInfo = OperatorInfo { Pos = { 165, 412.5 } },
		},
		pSpawn1SizeoverLife = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0.5, RH = { 0.3, 0.5 }, Flags = { Linear = true } },
					[1] = { 0.5, LH = { 0.7, 0.5 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 0, Green = 0, Blue = 0 },
			NameSet = true,
		},
		pSpawn1BluroverLife2D = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0.5, RH = { 0.3, 0.5 }, Flags = { Linear = true } },
					[1] = { 0.5, LH = { 0.7, 0.5 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 0, Green = 0, Blue = 0 },
			NameSet = true,
		},
		pDirectionalForce1 = pDirectionalForce {
			ID = 30,
			Inputs = {
				Input = Input {
					SourceOp = "pEmitter1",
					Source = "Output",
				},
				RegionMode = Input { Value = FuID { "Entering" }, },
				Region = Input { Value = FuID { "MeshRegion" }, },
				["MeshRegion.MeshInput"] = Input {
					SourceOp = "Transform3D2",
					Source = "Output",
				}
			},
			ViewInfo = OperatorInfo { Pos = { -275, 412.5 } },
		},
		Merge3D1 = Merge3D {
			Inputs = {
				SceneInput1 = Input {
					SourceOp = "pRender1",
					Source = "Output",
				},
				SceneInput2 = Input {
					SourceOp = "Transform3D2",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 495, 412.5 } },
		},
		pFriction1_2 = pFriction {
			ID = 103,
			Inputs = {
				VelocityFriction = Input { Value = 0.2, },
				Input = Input {
					SourceOp = "pSpawn1",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 275, 412.5 } },
		},
		pEmitter1 = pEmitter {
			ID = 26,
			Inputs = {
				Number = Input {
					SourceOp = "pEmitter1Number",
					Source = "Value",
				},
				Style = Input { Value = FuID { "ParticleStyleBlob" }, },
				Region = Input { Value = FuID { "MeshRegion" }, },
				["ParticleStyle.ColorOverLife"] = Input {
					Value = Gradient {
						Colors = {
							[0] = { 1, 1, 1, 1 }
						}
					},
				},
				["ParticleStyle.SizeControls"] = Input { Value = 1, },
				["ParticleStyle.Size"] = Input { Value = 0.2, },
				["ParticleStyle.SizeOverLife"] = Input {
					SourceOp = "pEmitter1SizeoverLife",
					Source = "Value",
				},
				["ParticleStyle.BlurOverLife"] = Input {
					SourceOp = "pEmitter1BluroverLife2D",
					Source = "Value",
				},
				["MeshRegion.MeshInput"] = Input {
					SourceOp = "Shape3D3",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { -385, 412.5 } },
		},
		pEmitter1Number = BezierSpline {
			SplineColor = { Red = 233, Green = 206, Blue = 78 },
			NameSet = true,
			KeyFrames = {
				[0] = { 1000, RH = { 0.333333333333333, 666.666666666667 }, Flags = { Linear = true } },
				[1] = { 0, LH = { 0.666666666666667, 333.333333333333 }, Flags = { Linear = true } }
			}
		},
		pEmitter1SizeoverLife = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0.5, RH = { 0.3, 0.5 }, Flags = { Linear = true } },
					[1] = { 0.5, LH = { 0.7, 0.5 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 192, Green = 128, Blue = 64 },
			NameSet = true,
		},
		pEmitter1BluroverLife2D = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0.5, RH = { 0.3, 0.5 }, Flags = { Linear = true } },
					[1] = { 0.5, LH = { 0.7, 0.5 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 192, Green = 128, Blue = 64 },
			NameSet = true,
		},
		Shape3D3 = Shape3D {
			Inputs = {
				Shape = Input { Value = FuID { "SurfaceCubeInputs" }, },
				["MtlStdInputs.MaterialID"] = Input { Value = 4, },
				["SurfacePlaneInputs.SizeLock"] = Input { Value = 0, },
				["SurfacePlaneInputs.Width"] = Input { Value = 10, },
				["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 6, },
				["SurfaceCubeInputs.SizeLock"] = Input { Value = 0, },
				["SurfaceCubeInputs.Width"] = Input { Value = 10, },
				["SurfaceCubeInputs.Depth"] = Input { Value = 2, },
				["SurfaceCubeInputs.ObjectID.ObjectID"] = Input { Value = 7, }
			},
			ViewInfo = OperatorInfo { Pos = { -495, 412.5 } },
		},
		Note1_2 = Note {
			Inputs = {
				Comments = Input { Value = "region set to mesh: does not work at all", }
			},
			ViewInfo = StickyNoteInfo {
				Pos = { 605, 412.5 },
				Flags = {
					Expanded = true
				},
				Size = { 196, 43.9157 }
			},
			Colors = { TileColor = { R = 0.666666666666667, G = 0, B = 0 }, }
		},
		pFriction1 = pFriction {
			ID = 77,
			Inputs = {
				VelocityFriction = Input { Value = 0.2, },
				Input = Input {
					SourceOp = "pDirectionalForce1_1",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 110, 511.5 } },
		},
		pDirectionalForce1_1 = pDirectionalForce {
			ID = 66,
			Inputs = {
				Strength = Input { Value = 1, },
				Input = Input {
					SourceOp = "pEmitter1_1",
					Source = "Output",
				},
				RegionMode = Input { Value = FuID { "Inside" }, },
				Region = Input { Value = FuID { "CubeRgn" }, },
				["CubeRgn.Translate.X"] = Input {
					SourceOp = "pDirectionalForce1_1XOffset",
					Source = "Value",
				},
				["CubeRgn.Width"] = Input { Value = 3, },
				["CubeRgn.Height"] = Input { Value = 3, },
				["CubeRgn.Depth"] = Input { Value = 3, }
			},
			ViewInfo = OperatorInfo { Pos = { 0, 511.5 } },
		},
		pDirectionalForce1_1XOffset = BezierSpline {
			SplineColor = { Red = 250, Green = 59, Blue = 49 },
			NameSet = true,
			KeyFrames = {
				[0] = { -7.371567729103, RH = { 33.3333333333333, -2.5601300811284 }, Flags = { Linear = true } },
				[100] = { 7.06274521482079, LH = { 66.6666666666667, 2.25130756684619 }, Flags = { Linear = true } }
			}
		},
		pRender1_1 = pRender {
			Inputs = {
				["_MotionBlurWarning"] = Input { Disabled = true, },
				GlobalOut = Input { Value = 100, },
				Width = Input { Value = 2048, },
				Height = Input { Value = 1556, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
				IntegrationMethod = Input { Value = FuID { "RK4" }, },
				["MaterialID.MaterialID"] = Input { Value = 3, },
				["ObjectID.ObjectID"] = Input { Value = 5, },
				Input = Input {
					SourceOp = "pFriction1",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 385, 511.5 } },
		},
		pEmitter1_1 = pEmitter {
			ID = 68,
			Inputs = {
				Number = Input {
					SourceOp = "pEmitter1_1Number",
					Source = "Value",
				},
				Style = Input { Value = FuID { "ParticleStyleBlob" }, },
				Region = Input { Value = FuID { "MeshRegion" }, },
				["ParticleStyle.ColorOverLife"] = Input {
					Value = Gradient {
						Colors = {
							[0] = { 1, 1, 1, 1 }
						}
					},
				},
				["ParticleStyle.SizeControls"] = Input { Value = 1, },
				["ParticleStyle.Size"] = Input { Value = 0.2, },
				["ParticleStyle.SizeOverLife"] = Input {
					SourceOp = "pEmitter1SizeoverLife_1",
					Source = "Value",
				},
				["ParticleStyle.BlurOverLife"] = Input {
					SourceOp = "pEmitter1BluroverLife2D_1",
					Source = "Value",
				},
				["MeshRegion.MeshInput"] = Input {
					SourceOp = "Shape3D3",
					Source = "Output",
				}
			},
			ViewInfo = OperatorInfo { Pos = { -110, 511.5 } },
		},
		pEmitter1_1Number = BezierSpline {
			SplineColor = { Red = 233, Green = 206, Blue = 78 },
			NameSet = true,
			KeyFrames = {
				[0] = { 1000, RH = { 0.333333333333333, 666.666666666667 }, Flags = { Linear = true } },
				[1] = { 0, LH = { 0.666666666666667, 333.333333333333 }, Flags = { Linear = true } }
			}
		},
		pEmitter1SizeoverLife_1 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0.5, RH = { 0.333333333333333, 0.5 }, Flags = { Linear = true } },
					[1] = { 0.5, LH = { 0.666666666666667, 0.5 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 192, Green = 128, Blue = 64 },
		},
		pEmitter1BluroverLife2D_1 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0.5, RH = { 0.333333333333333, 0.5 }, Flags = { Linear = true } },
					[1] = { 0.5, LH = { 0.666666666666667, 0.5 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 192, Green = 128, Blue = 64 },
		},
		Note1_1_1_2_2 = Note {
			Inputs = {
				Comments = Input { Value = "regionmodes other than  \"When inside Region\" and \"When not inside Region\"\ndon't seem to work", }
			},
			ViewInfo = StickyNoteInfo {
				Pos = { 825, 511.5 },
				Flags = {
					Expanded = true
				},
				Size = { 196, 84.7738 }
			},
			Colors = { TileColor = { R = 0.666666666666667, G = 0, B = 0 }, }
		},
		Note1_1_1_2 = Note {
			Inputs = {
				Comments = Input { Value = "region set to cube or sphere: works as expected", }
			},
			ViewInfo = StickyNoteInfo {
				Pos = { 605, 511.5 },
				Flags = {
					Expanded = true
				},
				Size = { 196, 43.9157 }
			},
			Colors = { TileColor = { R = 0, G = 0.333333333333333, B = 0 }, }
		},
		pDirectionalForce1_1_1 = pDirectionalForce {
			ID = 78,
			Inputs = {
				Strength = Input { Value = 1, },
				Input = Input {
					SourceOp = "pEmitter1_1_1",
					Source = "Output",
				},
				RegionMode = Input { Value = FuID { "Inside" }, },
				Region = Input { Value = FuID { "BitmapRgn" }, },
				["CubeRgn.Translate.X"] = Input {
					SourceOp = "pDirectionalForce1_1_1XOffset",
					Source = "Value",
				},
				["CubeRgn.Width"] = Input { Value = 3, },
				["CubeRgn.Height"] = Input { Value = 3, },
				["CubeRgn.Depth"] = Input { Value = 3, },
				["RectRgn.Width"] = Input { Value = 5, },
				["RectRgn.Height"] = Input { Value = 5, },
				["BitmapRgn.Bitmap"] = Input {
					SourceOp = "Background2",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 0, 610.5 } },
		},
		pDirectionalForce1_1_1XOffset = BezierSpline {
			SplineColor = { Red = 250, Green = 59, Blue = 49 },
			NameSet = true,
			KeyFrames = {
				[0] = { -7.371567729103, RH = { 33.3333333333333, -2.5601300811284 }, Flags = { Linear = true } },
				[100] = { 7.06274521482079, LH = { 66.6666666666667, 2.25130756684619 }, Flags = { Linear = true } }
			}
		},
		pRender1_1_1 = pRender {
			Inputs = {
				["_MotionBlurWarning"] = Input { Disabled = true, },
				GlobalOut = Input { Value = 100, },
				Width = Input { Value = 2048, },
				Height = Input { Value = 1556, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
				IntegrationMethod = Input { Value = FuID { "RK4" }, },
				["MaterialID.MaterialID"] = Input { Value = 3, },
				["ObjectID.ObjectID"] = Input { Value = 5, },
				Input = Input {
					SourceOp = "pFriction1_1",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 385, 610.5 } },
		},
		pFriction1_1 = pFriction {
			ID = 84,
			Inputs = {
				VelocityFriction = Input { Value = 0.2, },
				Input = Input {
					SourceOp = "pDirectionalForce1_1_1",
					Source = "Output",
				},
			},
			ViewInfo = OperatorInfo { Pos = { 110, 610.5 } },
		},
		pEmitter1_1_1 = pEmitter {
			ID = 80,
			Inputs = {
				Number = Input {
					SourceOp = "pEmitter1_1_1Number",
					Source = "Value",
				},
				Style = Input { Value = FuID { "ParticleStyleBlob" }, },
				Region = Input { Value = FuID { "MeshRegion" }, },
				["ParticleStyle.ColorOverLife"] = Input {
					Value = Gradient {
						Colors = {
							[0] = { 1, 1, 1, 1 }
						}
					},
				},
				["ParticleStyle.SizeControls"] = Input { Value = 1, },
				["ParticleStyle.Size"] = Input { Value = 0.2, },
				["ParticleStyle.SizeOverLife"] = Input {
					SourceOp = "pEmitter1SizeoverLife_1_1",
					Source = "Value",
				},
				["ParticleStyle.BlurOverLife"] = Input {
					SourceOp = "pEmitter1BluroverLife2D_1_1",
					Source = "Value",
				},
				["MeshRegion.MeshInput"] = Input {
					SourceOp = "Shape3D3",
					Source = "Output",
				}
			},
			ViewInfo = OperatorInfo { Pos = { -110, 610.5 } },
		},
		pEmitter1_1_1Number = BezierSpline {
			SplineColor = { Red = 233, Green = 206, Blue = 78 },
			NameSet = true,
			KeyFrames = {
				[0] = { 1000, RH = { 0.333333333333333, 666.666666666667 }, Flags = { Linear = true } },
				[1] = { 0, LH = { 0.666666666666667, 333.333333333333 }, Flags = { Linear = true } }
			}
		},
		pEmitter1SizeoverLife_1_1 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0.5, RH = { 0.333333333333333, 0.5 }, Flags = { Linear = true } },
					[1] = { 0.5, LH = { 0.666666666666667, 0.5 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 192, Green = 128, Blue = 64 },
		},
		pEmitter1BluroverLife2D_1_1 = LUTBezier {
			KeyColorSplines = {
				[0] = {
					[0] = { 0.5, RH = { 0.333333333333333, 0.5 }, Flags = { Linear = true } },
					[1] = { 0.5, LH = { 0.666666666666667, 0.5 }, Flags = { Linear = true } }
				}
			},
			SplineColor = { Red = 192, Green = 128, Blue = 64 },
		},
		Note1_1_1_1_2 = Note {
			Inputs = {
				Comments = Input { Value = "region set to bitmap: no control over the placement/size/rotation of the bitmap. Now it only applies to particles in the space x,y <1", }
			},
			ViewInfo = StickyNoteInfo {
				Pos = { 605, 610.5 },
				Flags = {
					Expanded = true
				},
				Size = { 196, 132.714 }
			},
			Colors = { TileColor = { R = 0.666666666666667, G = 0, B = 0 }, }
		},
		Background2 = Background {
			Inputs = {
				GlobalOut = Input { Value = 100, },
				Width = Input { Value = 100, },
				Height = Input { Value = 100, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
				TopLeftRed = Input { Value = 1, },
				TopLeftGreen = Input { Value = 1, },
				TopLeftBlue = Input { Value = 1, },
				Gradient = Input {
					Value = Gradient {
						Colors = {
							[0] = { 0, 0, 0, 1 },
							[1] = { 1, 1, 1, 1 }
						}
					},
				},
			},
			ViewInfo = OperatorInfo { Pos = { -110, 676.5 } },
		},
		FastNoise1 = FastNoise {
			Inputs = {
				GlobalOut = Input { Value = 100, },
				Width = Input { Value = 500, },
				Height = Input { Value = 500, },
				["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
				Contrast = Input { Value = 2.86666666666667, },
				Gradient = Input {
					Value = Gradient {
						Colors = {
							[0] = { 0, 0, 0, 1 },
							[1] = { 1, 1, 1, 1 }
						}
					},
				},
			},
			ViewInfo = OperatorInfo { Pos = { 0, 676.5 } },
		}
	}
}

User avatar
SecondMan
Site Admin
Posts: 3478
Joined: Thu Jul 31, 2014 5:31 pm
Answers: 5
Location: Vancouver, Canada
Been thanked: 92 times
Contact:

Re: Regions on Particle Tools and Duplicate 3D

#2

Post by SecondMan » Tue Aug 23, 2016 10:07 pm

This one merits a followup I think.


Description of the bug:
Regions (region tab) of particle tools and (since Fu7) duplicate 3D don't all work properly:

Region set to bitmap:
almost unusable since it has no control over size, placement and rotation of the bitmap so nothing outside the area of -.5,-.5,-.5 and .5,.5,.5 is affected.

Bitmap region doesn't exist anymore in 3D. Neither does Line, or Bezier. On purpose, I presume, as this would only make sense in 2D anyway.

Region set to Mesh:
for particles: only works for the pEmitter and pBounce. Not on forces, pSpawn, pKill,...
for duplicate3D: doesn't work at all.

All fixed! :)

Region set to Line or Bezier: don't really work properly except in 2D-particles mode. Obsolete if Bitmap and mesh would work better?

Considered fixed, options no longer exist for 3D particles.

Region Mode on Particle Tools: The only ones that seem to work are "When inside Region" and "When not inside Region"

This is still the case in the above example. Would be nice to see a setup where they do work? I'd love to mark this one as fixed... :)

User avatar
mindmedicine
Fusioneer
Posts: 60
Joined: Fri Aug 22, 2014 2:34 am
Location: Ghent/Belgium
Contact:

Re: Regions on Particle Tools and Duplicate 3D

#3

Post by mindmedicine » Sat Aug 05, 2017 1:48 am

Most of these are indeed fixed or removed. But all region modes except "When inside Region" and "When not inside Region" still don't work in Fu9.0 build 13.

User avatar
mindmedicine
Fusioneer
Posts: 60
Joined: Fri Aug 22, 2014 2:34 am
Location: Ghent/Belgium
Contact:

Re: Regions on Particle Tools and Duplicate 3D

#4

Post by mindmedicine » Mon Sep 18, 2017 2:14 am

The issue with the region modes on particle tools is still there in Fu 9.0.1 build 3.
Maybe not all of the modes are needed, but "when entering/leaving region" would be pretty useful.