UltraScatterPro Experiments and Experiences

barbultbarbult Posts: 24,240
edited February 2019 in Art Studio

I decided to create a thread to house my UltraScatterPro experiments. I'll try to document what I did and what I learned along the way.

Lessons Learned/Tips:

  1. Before I ever use instances in an Iray scene, the FIRST thing I do is change Render Settings Instancing Optimization from Speed to Memory. You find this setting on the Editor tab in the Render Settings pane. This is documented in the UltraScatterPro manual and is very important. If you leave it on Speed and create a lot of instances, Daz Studio will either become unresponsive or crash. 
  2. When scattered instances will be constrained to small areas of the target surface (by distribution image maps, for example) set the number of instances/iterations much larger than the number that you expect to need, because UltraScatterPro will have to try a lot of positions to find ones in the constrained scatter area.
  3. Settle on the final morph and pose of the target object before scattering the instances. If the target object is reposed or the shape is changed later, the instances will have to be rescattered. 
  4. If you have the Geometry Editor Tool or the Weight Mapping Tool selected, UltraScatterPro will not generate instances on polylines and polylines will not render.
  5. The Spacing parameter in the UltraScatterPro Distribution tab will prevent UltraScatterPro from placing instances any closer than this (origin to origin, not edge to edge). It will NOT make UltraScatterPro place them exactly that distance apart. As far as I know, it is not possible to specify and exact distance between instances with a Surface Scatter unless you use a distribution map to control the exact placement of each instance.
  6. Ground Position Auto in Iray Render Settings ignores instances in computing the "ground" level. This is true for regular Daz Studio instances as well as UltraScatterPro instances.
  7. UltraScatterPro alignment option "Point At" uses the built-in Daz Studio Point At behavior and it has some unexpected rotation of the XZ plane in some cases. UltraScatterPro has a custom implementation of "Point At with Clamp Y Axis", which behaves consistently without the wonky rotation of the Daz implementation. 
  8. Scattering a group of items creates more variety than scattering just one item, because UltraScatterPro randomly selects one of the items in the group for each instance, instead of using the same one item for every instance.  Use the "Create>New Group,,," menu item and then parent your items you want to scatter to the Group. Try this the next time you want to scatter some landscape items. Create a group with a mix of grass, flowers, weeds, etc. and get a more interesting lawn.
  9. UltraScatterPro lets you import all the settings from a previous scatter into a new scatter. This wasn't possible in the original UltraScatter product and is a huge feature of UltraScatterPro. I used this feature in the Topiary experiement to copy the bottom topiary leaf ball scatter settings to the middle and top leaf balls without having to remember and reenter all the settings.
  10. A bunch of objects and UltraScatterPro instance groups can be combined into a Daz Studio Group and duplicated. The UltrsScatterPro instance groups in the duplicate remain functional and can still be modified and rescattered! I used the technique to duplicate a topiary tree I created from 4 primitives and 4 UltraScatterPro instance groups.
  11. If you run UltraScatterPro on an existing scatter group and you change only the Preview instances type (None, Full, Bounding box, Lores tree), you can click on the Cancel button and exit UltraScatterPro. It will keep your new choice of Preview instances without having to rescatter all the instances. This is a huge time saver if you just want to turn off a lot of instance previews in a cluttered viewport, or want to change between Full and Bounding Box, etc. 
  12. You can't scatter instances of instances. If the props you are scattering (like Urban Sprawl 3) contain instances, those instances will not show up in the UltraScatterPro instance groups. They won't cause an error, they just won't be processed.
  13.  All three UltraScatterPro scatter types (Surface, Volume, and Matrix) have an Affinity option for Density Control. Affinity has both Attract and Repel settings. These settings allow you to control how close to and how far from another object's origin your scattered instances will be placed.  I think of Attract and Repel kind of like magnetic poles. Attract pulls instances toward the other object and Repel pushes them away from the other object. The Attract settings specify the distance over which instances will be placed, and Repel settings specify a keep-away distance. The Falloff is an ease in/ease out type of control for the boundary of the Attract and Repel range. 
  14. UltraScatterPro version 1.0 "forgets" the target of the Rotation "Point at..." after a scene is closed and reopened. I'm hoping for a future update to fix it.
  15. Elevation (on the Distribution tab) is measured in Meters. I think everything else in UltraScatterPro is measured in Centimeters. The titles of the numerical entry fields are labeled with the units they use (m or cm), but if you are not observant, and wonder why your elevation values aren't working, it may be that you are thinking in centimeters and not meters. 
Post edited by barbult on
«1345

Comments

  • barbultbarbult Posts: 24,240

    Reserved for future use

  • barbultbarbult Posts: 24,240
    edited January 2019

    I am using Daz Studio 4.11.0.236 Public Beta.

    Today I decided to play with some of the new freebies. I got Gia 6 Starter Bundle and Teen Josie 6 Starter Bundle. I used Aspen for Gia from the Gia bundle and Scarf Braid Hair from the Josie bundle. I applied Iray shaders to everything that wasn't Iray.

    Experiment: Scatter "pearls" in a pattern on a hair band

    I only want to scatter pearls on the hair band, not on the hair itself or the cloth in the braid. In fact, I decided I don't even want to show the cloth in the braid, so I turned opacity to 0 on those surfaces. The hair band has some polygons that curl under to give an appearance of thickness. I don't want pearls on the folded under area, so I need to exclude those polygons from the surface to be scattered on. UltraScatterPro can do that by selecting a surface or selection set in the "Limit scatter to" area of the Settings tab and/or with an Image Map in the Density Control section of the Distribution tab. I am going to use both. I will create a selection set to control what polygons will be available to scatter on, and I will use an Image Map to specify a subset of that area to create a zig zag pattern for the scatter.

    1) Use the Geometry Editor Tool to create a selection set containing all polygons of the hair band except the ones along the folded edge:

    • You can skip this whole step if you don't mind scattering on the entire band surface.
    • (Optional) Set the Viewport Draw Style to Wire Shaded to see the polygons
    • Hide all objects in the scene other than Scarf Braid Hair, to make it easier to see what polygons belong to the Scarf Braid Hair.
    • Select Scarf Braid Hair in the Scene pane.
    • Select the Geometry Editor Tool
    • Right click in the Viewport and select Selection Type>Polygon Selection
    • Right click in the Viewport and select Selection Mode>Drag Selection
    • Right click in the Viewport and select Geometry Selection>Clear Selection
    • Right click in the Viewport and select Geometry Selection>Select By>Surfaces>Band. Now all (and only) the polygons in the hair band will be selected as indicated by the yellow highlighting.
    • Right click in the Viewport and select Geometry Visibility>Hide Un-Selected Polygon(s). This will make it easier to work with the band polygons, because they are now the only thing displayed.
    • Zoom and scroll around the viewport to get a close look. Hold down the Alt key (on PC) and click the cursor on polygons that you don't want any instances scattered on. You are removing them from the selected polygons. If you remove some by mistake, hold the Ctrl key instead of Alt and click them to reselect them. Don't click without holding Alt or Ctrl, or you will lose your selection. If you do that, UNDO right away.
    • When you have unselected all polygons that shouldn't be scattered on, right click in the Viewport and select Geometry Assignment>Create Selection Set from Selected... Give it a name and click Accept.
    • Right click in the Viewport and select Geometry Visibility>Show All Polygons
    • In the Scene pane, make the other objects in your scene visible again.
    • Set the Viewport back to Texture Shaded or the view of your choice.

    2) Create an  image to define a pattern that you want the pearls scattered in

    • You can skip this whole step and just use the pattern image I attached.
    • I wanted a zig zag pattern of large pearls with small pearls filling in the rest of the area.
    • Daz did not provide UV templates for Scarf Braid Hair, so I had to make my own. I chose to make a quick and dirty template with Daz Studio, rather than switching to a UV mapping software.
      • Select Scarf Braid Hair in the Scene pane.
      • Select the Band surface in the Surfaces pane.
      • Select UV View camera
      • Select View by Material in the UV View controls in the Viewport
      • Screenshot the window
      • Switch the camera back to Perspective or the camera you were using before
    • Open the screenshot in an image editor (I used Photoshop CS6) 
    • Crop the screenshot to only the outlined template area
    • Draw your desired pattern in white on a new layer over the template
    • Hide the template layer
    • Create a solid black background layer
    • Save a flattened image with your white design on a black background

    3) Create the "pearl" to be scattered

    • Back in Daz Studio, create a primitive sphere with origin at World Center in the size you want your large pearl to be. I used 0.5 cm. If you guess the size wrong, you can always scale it later in the Parameters pane.
    • Apply a nice Iray pearl shader. I used a beautiful free one from Allen Art Jewelry Shaders on ShareCG.

    4) Now you are finally ready to use UltraScatterPro to scatter pearls on your pattern

    • Before I ever use instances in an Iray scene, the FIRST thing I do is change Render Settings Instancing Optimization from Speed to Memory. You find this setting on the Editor tab in the Render Settings pane. This is documented in the UltraScatterPro manual and is very important. If you leave it on Speed and create a lot of instances, Daz Studio will either become unresponsive or crash. 
    • Select the pearl sphere in the Scene pane.
    • Run UltraScatterPro
    • In the Settings tab, choose a Surface scatter (not Volume or Matrix)
    • Set the "Target object" to Scarf Braid Hair
    • Set "Limit scatter to" the selection set you created in step 1 (or just select the Band surface, if you skipped step 1)
    • Set the "Number of Instances/Iterations to a much larger number than the number of pearls you expect to need. This is a lesson learned: because the design I drew on the template covered only a very small area, UltraScatterPro will have to try a lot of iterations to find some that land on the pattern I created.
    • Select the Distribution tab
    • To prevent pearls from overlapping, specify a value in Spacing(cm). (This is in the second column of the Distribution tab in the Density Control section.)  This value should be approximately the diameter of your pearl sphere. I used 0.45 for a 0.5 cm sphere.
    • Select the  Image Map tab in Density Control.
    • Click the down arrow in Choose Map area and select the pattern image you created in step 2.(or use the pattern image I attached, if you skipped step 2)
    • For Projection, click the down arrow and choose Object UV, because the pattern was drawn to fit on the hair band UV map template.
    • Select the Scaling tab
    • I unchecked the "Random Scaling" box and set Variance to 15%, to give the pearls a little size variation to look more realistic.
    • Check the boxes for "Inherit object scale" and "Scale affects spacing"
    • Select the Rotation tab
    • Click the down arrow for Alignment and select Surface Normal
    • Click the Surface Scatter button and wait for it to finish.
    • If you are not happy with the results (pearl scaling is wrong, not enough pearl instances, etc.), select the UltraScatterPro [S] Sphere item in the Scene pane and run UltraScatterPro again to change any settings that you want to be different. Click Surface Scatter again to rescatter.

    5) Use UltraScatterPro to scatter smaller pearls in the non-pattern area

    • Select the pearl sphere in the Scene pane
    • Run UltraScatterPro
    • Now we are going to use one of the new powerful features of UltraScatterPro that makes it much better than the original product. In the Settings tab, at the bottom, where it says Import:, click the down arrow and select the UltraScatterPro [S] Sphere  scatter just completed in step 4. This will copy all the settings so you don't have to remember them and set them up again for a similar scatter.
    • Select the Distribution tab
    • Select the  Image Map tab in Density Control.
    • Click the Invert checkbox to scatter pearls on the hair band area that is outside the drawn pattern
    • Select the Scaling tab and change "Scale to" Scale to a smaller value. I used 40% instead of the 100% I used for the first scatter.
    • Click the Surface Scatter button and wait for it to finish.

    Voila!

    • I have attached the Image Map pattern I created with the zig zag pattern. The thumbnail looks solid black, but the image has a thin white zig zag. You may use it, if you wish - no restrictions. Remember it uses the Band surface UV of the Scarf Braid Hair, so it is probably useful only for that.

    Scarf Braid Hair Band Zig Zag Thin.png
    1716 x 1716 - 30K
    UltraScatterPro Selection Set Scatter Scarf Braid Hair_003.jpg
    1600 x 2000 - 1M
    Post edited by barbult on
  • barbultbarbult Posts: 24,240
    edited January 2019

    Lesson Learned: Settle on the final morph and pose of the target object before scattering the instances. If the target object is reposed or the shape is changed later, the instances will have to be rescattered. Rescattering is easy but can take some time for large complex scatters. To rescatter, just select the UltraScatterPro group in the Scene pane and run UltraScatterPro. Then just click the button to perform the scatter. 

    Original Scatter:

    Reposed character head:

    Previous scatter groups rescattered:

    Fits.JPG
    1552 x 1937 - 276K
    Doesn't Fit.JPG
    1552 x 1938 - 287K
    Fits Again after Rescatter.JPG
    1553 x 1938 - 279K
    Post edited by barbult on
  • RGcincyRGcincy Posts: 2,834

    Excellent idea barbult! looking forward to see what you share

  • barbultbarbult Posts: 24,240
    RGcincy said:

    Excellent idea barbult! looking forward to see what you share

    Thanks, Rich. I was inspired by your dForce thread. I wanted a place to document my UltraScatterPro experiments. I thought it would help me remember, give me a place to look back on when I get forgetful (blush) and maybe help others.

  • barbultbarbult Posts: 24,240
    edited January 2019

    I am using Daz Studio 4.11.0.236 Public Beta.

    I first posted an overview of this experiment in the UltraScatterPro sneak peek thread.

    Experiment: Scatter instances along a polyline framework

    I created a low resolution large sphere and converted it to polylines with a Daz sample script. Then I scattered a group of three small colored spheres on the polylines. My scene file is attached, so you may examine it or use it as a starting point for experimentation, instead of starting from scratch.

    1) Create the Polylines. You need DS 4.11 or above for this technique. As of today, 4.11 is still Beta software. 

    • Create a large primitive sphere (or shape of your choice). I created a 10 meter sphere with 8 segments and 16 sides with the origin at World Center.
    • Select the sphere in the Scene pane. (Optional) Apply a shader to color the sphere. I used gray Base Color in Iray Uber shader.
    • With the sphere still selected in the Scene pane, run Generate Polyline Wireframe script provided by Daz 3D in the online sample scripts.
    • The script will create a Sphere Polylines object. It will show up in the Scene pane.

    2) Create some objects to be scattered along the polylines.

    • I created three small spheres, each 10 cm with the origin at World Center.
    • Apply different colored shaders to each sphere to add visual variety. You can just change the diffuse color (Base Color for Iray Uber shader) in the Surfaces pane for simplicity, if you wish.
    • Select the three small spheres in the Scene pane and put them in a new group with Create>New Group. In the dialog box, give the group a name and select Parent Selected Item(s) to New Group. If you don't see those options in the dialog, click the Show Options button. Click Accept button. Now the Scene pane should show a new group with your three small spheres parented to it.

    3) Now you are ready to use UltraScatterPro to scatter the small spheres on the polylines

    • Change Render Settings Instancing Optimization from Speed to Memory. You find this setting on the Editor tab in the Render Settings pane. This is documented in the UltraScatterPro manual and is very important. If you leave it on Speed and create a lot of instances, Daz Studio will either become unresponsive or crash.  This can't be repeated often enough! Make it a habit. I still sometimes forget.
    • In the Scene pane, select the group that you created in step 2. Just select the group, not the group's child spheres.
    • Run UltraScatterPro
    • In the Settings tab, choose a Surface scatter (not Volume or Matrix)
    • (Optional) Change Preview Instances from "Full" to "Bounding box", to reduce the resource load on the viewport navigation. "Full" makes it easier to judge the results by looking at the viewport before render, but "Bounding box" gives you a sense of the size and position of the instance with less overhead. If you are creating 100,000 instances of a complex object, you'd be advised to consider "None"! "Lowres tree" is useful when scattering trees on a landscape to visualize the instance as a tree shaped item, even though it doesn't look like the specific tree you are scattering.
    • Set the "Target object" to the Sphere Polylines object you created in step 1.
    • ​Make a guess at the number of instances you want to create and enter that in the Number of Instances/Iterations. I chose 15,000.
    • Click the Surface Scatter button and wait for it to finish.

    4) Evaluate your results and adjust:

    • Some, but not enough or too many scattered instances?
      • Select the UltraScatterPro [S] group object in the Scene pane and run UltraScatterPro again. Change the Number of Instances/Iterations and scatter again with the Surface Scatter button.
    • UltraScatterPro runs in a flash but generates 0 instances, no matter how many you chose to create?
      • If you have the Geometry Editor Tool or the Weight Mapping Tool selected, UltraScatterPro will not generate instances on polylines. This had me stumped for a long time. Just select a different tool and scatter again.
    • Instances overlapping?
      • Select the UltraScatterPro [S] group object in the Scene pane and run UltraScatterPro again. In the Distribution tab, enter a value in Spacing (cm) in the Density Control, section in the second column. This will prevent UltraScatterPro from placing instances any closer than this (origin to origin, not edge to edge). It will NOT make UltraScatterPro place them exactly that distance apart. As far as I know, it is not possible to specify an exact distance between instances with a Surface Scatter, unless you use a distribution map to control the exact placement of each instance. Scatter again with the Surface Scatter button.
    • Some instances inside, some outside, and some partially embedded in the big sphere?
      • Polylines are by default 3D objects with 3 sides (like a Toblerone candy bar). I think some instances are being scattered on one side and others on a different side. [You can change the number of sides of a polyline in the Line Tessellation parameter in the Parameters pane.] You can change the width of those polylines. Select the Sphere Polylines object in the Parameters pane. In the Surfaces pane, select the Default surface and change Line Start Width (mm) and Line End Width (mm) to a small number. This number will affect the rendered width, too. Of course, after scattering, you can change this value again for the final render.
      • ​​Select the UltraScatterPro [S] group object in the Scene pane and run UltraScatterPro again. In the Rotation tab, change the Rotation Point from Origin to Center. Scatter again with the Surface Scatter button. 
    • ​Polylines don't show up in your render?
      • If you have the Geometry Editor Tool or the Weight Mapping Tool selected, polylines will not render. I know it sounds bizarre, but it has been declared to be "for a reason" and not a bug. Just select a different tool when rendering.

    Small spheres scattered on polylines of large sphere:

    Small spheres scattered on polylines of large sphere (large sphere hidden to show all instances):

    UltraScatterPro Scatter on Polylines Final.jpg
    2000 x 1500 - 1M
    UltraScatterPro Scatter on Polylines Final Sphere Hidden.jpg
    2000 x 1500 - 1M
    duf
    duf
    UltraScatterPro Scatter on Polylines Final.duf
    247K
    Post edited by barbult on
  • LinwellyLinwelly Posts: 5,944

    this will be nice to watch!

  • barbultbarbult Posts: 24,240
    Linwelly said:

    this will be nice to watch!

    It is fun to do. I hope you enjoy the adventure.

  • SzarkSzark Posts: 10,634

    pulls up chair and gets comfy

  • barbultbarbult Posts: 24,240
    edited January 2019

    I am using Daz Studio 4.11.0.236 Public Beta.

    I decided to extend my polylines experiment by modifying some of the polylines parameters and surfaces before scattering instances. I created a cube and generated poly lines with the script. In the Parameters pane, I changed viewport and render line tessellation from 3 to 8. I added subdivision and left view and render subdivision at 1. In the Surfaces pane, I set the Line Start Width (mm) to 250 and the Line End Width (mm) to 5. This made some smooth cone shaped polylines connected at the ends to form a cube.

    I scattered a group of 3 gray spheres. I chose 50000 instances and did not set a limit on spacing; I let them overlap. For the rotation I selected Rotation Point = Origin and Alignment = Surface normal. This put all instances around the outside of the polylines.

    After rendering, I saw that the Auto ground level of the Render Settings put some of the instances below "ground". Evidently Auto ground doesn't take instances into account???? (This calls for a more detailed experiment to investigate this further.) So, I parented the Cube Polylines oibject to the Cube object and moved the cube up on the Y axis by a value of 20. That brought everything above ground when I rendered again.

    Some observations:

    1. Polylines are hollow.
    2. Polylines are evidently not UV mapped.
    3. Iray render settings Auto ground doesn't seem to adjust for instances; some instances rendered underground on my first try.

    The scene file is attached.

    Polylines before UltraScatterPro:

    Polylines with scattered spheres:

    Cube Polylines subD Before Scattering.jpg
    2000 x 2000 - 960K
    UltraScatterPro Scatter on Cube Polylines subD.jpg
    2000 x 2000 - 2M
    duf
    duf
    UltraScatterPro Scatter on Cube Polylines subD.duf
    5M
    Post edited by barbult on
  • barbultbarbult Posts: 24,240
    Szark said:

    pulls up chair and gets comfy

    Welcome!

  • barbultbarbult Posts: 24,240
    edited January 2019

    Well, sure enough, further experimentation shows that Ground Position Auto in Iray Render Settings ignores instances in computing the "ground" level.  I submitted help request #290270 Iray Ground Position Mode = Auto does not take instances into account.

    I created a plane at 0,0,0. then I created a cone and moved it so it was partly below the plane. I created a Daz Studio Node Instance (not even an UltraScatterPro Instance) and moved it even further below the plane. I rendered with Ground Position Auto and Draw Ground On. Auto ground moved the ground level to the bottom of the "real" cone (the lowest "real" object) and ignored the cone instance, which was lower.

    This is the viewport view of the scene:

    This is what rendered. You can't see the bottom of the cone instance on the right. It is below "ground":

     

    Iray Groud Position Mode Auto.jpg
    2000 x 2000 - 615K
    Iray Groud Position Mode Auto Ignores Instances - viewport.JPG
    1938 x 1937 - 141K
    Post edited by barbult on
  • These are great and give wonderful examples of what you can do with UltraScatterPro.  Will you be posting the Butterfly House and Mossy Hollow Botanica terrain examples you showed in the UltraScatterPro - sneak peek thread please?

  • barbultbarbult Posts: 24,240
    edited January 2019
    somefunok said:

    These are great and give wonderful examples of what you can do with UltraScatterPro.  Will you be posting the Butterfly House and Mossy Hollow Botanica terrain examples you showed in the UltraScatterPro - sneak peek thread please?

    It would probably be hard to recreate my thought process on building those specific scenes. I'll try to do something new with similar techniques, so I can document it as I go along. Thanks for taking an interest!

    Post edited by barbult on
  • barbultbarbult Posts: 24,240
    edited January 2019

    Experiment: Explore "Default" and "Pont At" Alignment for Surface Scatters

    UltraScatterPro has several instance alignment options on the Rotation tab. The default alignment is called "Default". One of the other alignment options is "Point At...". Let's explore Point At alignment and figure out what it is good for. But first we need an idea of what Default alignment does so we can see how Point At differs.

    I started with simple primitives to get a feel for what was happening. I created a 4 sided cone and textured it so that each side was a different color. (Texture file is attached if you want to try it.) That way I could tell whether the cone instances were rotated or not. I scattered the cones on a plane. I created a sphere primitive to "point at" later.

    This is what I see with Default alignment:

    • All instances are facing forward and straight up, just like the untranslated and notated original object. It doesn't matter whether you rotate or translate the original object; that translation and rotation is not used in the instances. This means you can safely move your original object out of the camera view if you don't want it in the scene (you only want the instances).

    This is what my Default alignment instances look like:

    Looking down from the top with an orthographic view, we can see that all instances face the same way on all 3 axes. The point where the Yellow and Turquoise faces meet is the front of the cone. They all face the front of the scene (bottom of the render). (The sphere has no purpose in these renders. It is in the scene for later use with Point At.)

    Looking from the front with an orthographic view, we see the same thing; all instances are facing the same way on all 3 axes. 

    I selected the UltraScatterPro [S] Cone instances group object in the Scene pane and ran UltraScatter again. In the Rotation tab I changed the Alignment from Default to Point At. In the drop down box below Point At, I selected the Sphere as the object for my cone instances to point at. I checked the box for Clamp Y Axis.

    This is what I see with Point At and Clamp Y Axis:

    • The Y axis of all instances remains vertical (clamped) just like the Y axis of the Default alignment. The XZ plane of each instance is rotated around the Y axis so that the front of the cone instance is pointed at the sphere. Again, it doesn't matter how the original cone object had been translated or rotated in the scene.

    This is what my Point At with Clamp Y Axis instances look like:

    Looking down from the top with an orthographic view, we can see that all instances are rotated so that their front (point where yellow and turquoise faces meet) now point at the sphere. The instances are still vertical (clamped Y axis).

    Looking from the front with an orthographic view, we can see that each instance is rotated in the XZ plane, but they are all still vertical (clamped Y axis).

    OK, so what happens if we DON'T check the box for Clamp Y Axis? Well, as you might guess, the instances no longer stay vertical. The instances rotate so that the Y axis points at the Sphere, too. But the rotation in the XZ pane has changed on some of the instances. Is this a bug, or do I not understand how it all works yet? I will try to get an answer. Edit: HowieFarkes as explained what is happening. UltraScatterPro uses the built-in Daz Point At feature, which has the wonky rotation. He wrote his own implementation for the Point At with Clamp Y Axis, which seems to me to work much better.

    This is what my Point At without Clamp Y Axis instances look like:

    Looking down from the top with an orthographic view, it is pretty hard to visualize what has happened. It is easiest to compare it to the view WITH Clamp Y Axis. Why is the XZ plane rotation different from the version WITH Clamp Y Axis on the instances on the bottom half of the top orthographic view? Edit:See explanation.

     

    Looking from the front with an orthographis view, I see all fronts of cone instances (yellow and turquoise corner). I didn't expect that. I thought it should look like the view with Clamp Y Axis, but with cones tilted toward the sphere. Edit:See explanation.

     

     

    UltraScatterPro Default Alignment Top Ortho View.jpg
    1000 x 1000 - 390K
    UltraScatterPro Default Alignment Front Ortho View.jpg
    1000 x 1000 - 76K
    UltraScatterPro Point At Clamp Y Axis Top Ortho View.jpg
    1000 x 1000 - 392K
    UltraScatterPro Point At Clamp Y Axis Front Ortho View.jpg
    1000 x 1000 - 76K
    UltraScatterPro Point At Top Ortho View.jpg
    1000 x 1000 - 396K
    UltraScatterPro Point At Front Ortho View.jpg
    1000 x 1000 - 87K
    Cone 4 Sided Colors.png
    1716 x 1715 - 28K
    Post edited by barbult on
  • barbultbarbult Posts: 24,240
    edited January 2019

    Experiment Continuation: So what is "Pont At" Alignment good for?

    1) Well, let's say you have a character holding a spear and you want a whole bunch of instances of that character pointing at another poor guy. Use a surface scatter with Point At alignment and Clamp Y Axis. Select the poor victim as the object to point at and generate instances of the spear holding character. Here is a simple G3M render of that idea. For simplicity I used assets from Genesis 3 Starter Essentials and my "spear" is just a column primitive. I'm sure you can do much better!

    2) Suppose you use some billboard tree instances to populate the background of your scene. But your camera angle is not from the front, or you keep changing your camera angle. Use Point At alignment and Clamp Y Axis with your render camera as the object that Point At points at. Every time you change your camera angle, just rescatter, and all the billboard instances will rotate to face your camera. Here I used tree billboards from Ecomantics - Efficient Ecosystems.

    This is what the billboard tree instances looked like from my render camera when scattered with the Default alignment. This won't look good in a scene, because the billboards are viewed from a side angle.

    This is what the billboard tree instances look like when scattering with Point At alignment, pointing at my render camera, and Clamp Y Axis. This will look good in a scene.

     

    UltraScatterPro Point At G3M Clamp Y Axis Top View.jpg
    2000 x 1125 - 699K
    UltraScatterPro Point At G3M Clamp Y Axis Front View.jpg
    2000 x 1125 - 676K
    UltraScatterPro Default Alignment Billboard Trees.jpg
    1000 x 1000 - 269K
    UltraScatterPro Point At Clamp Y Axis Billboard Trees.jpg
    1000 x 1000 - 304K
    Post edited by barbult on
  • NovicaNovica Posts: 23,887

    Such a nice thing you are doing, sharing what you're learning with this. Thanks for your efforts, I know from personal experiences how long it takes to document every detail while you're doing it and then write it up. You do an excellent job of covering the steps. KUDOS!

  • The point at functionality uses Studio's built in "Point At" behaviour. So if you select an object and go to Parameters->General->Point At and select an object to point at - then the same behaviour (complete with weird rotations) is happening with UltraScatterPro too. When you use "Clamp Y" the script actually doesn't use the default behaviour and just determines an angle on the y axis that it can use to rotate the instances.

  • Also thanks Barbult for creating this thread - you find out things about the script even I don't know or haven't tried.

  • ArtiniArtini Posts: 9,455

    Great thread - thanks for all of the tips.

     

  • barbultbarbult Posts: 24,240

    @Novica thanks for noticing my thread and your kind words. You certainly know how much effort is involved in a thread like this! 

    @HowieFarkes thanks for the explanation about Point At. I didn't realize it used a built in Daz feature. Your own implementation with Clamp Y Axis works much more intuitively, I think. Ever consider writing your own Point At and trashing the screwy Daz version? When I get time, I will update my post to include your explanation of the unexpected Point At rotations.

    @Artini glad to have you join the thread. I hope to keep adding tips and lessons learned at the top of the thread. 

  • barbultbarbult Posts: 24,240
    edited January 2019

    Experiment: Create a Topiary Tree

    I want to create fancy topiary trees. I thought I'd start out with a simple one made of a cylinder primitive for the trunk and three sphere primitives for the stacked leaf balls. This will give me a feel for what needs to be done for a fancier tree. I am going to give you the play by play, including what didn't work, and how to fix it. In the end, this is my tree. All of the images are much larger than displaed here. Click them to view a larger size.

    1. Pick out some plants to use for the leaves and the moss on the trunk:
      •  I chose  gb_plant1a, gb_plant1b, and gb_plant1c from the Garden Block product for the leaves.
      • I chose MH Moss01, MH Moss02, and MH Moss03 from Mossy Hollow Botanica  for the moss on the trunk.
    2. Create a new Group with the three Garden Block plants. Scattering a group of items creates more variety than scattering just one item, because UltraScatterPro randomly selects one of the items in the group for each instance, instead of using the same one item for every instance. We've seen this in previous experiments where I scattered a group of 3 different colored spheres.
    3. Create a new group with the three Mossy Hollow Botanica mosses.
    4. Create and position the primitives:
      • Create a cylinder primitive for the topiary trunk. I made mine 2 meters long with 6 cm diameter, 8 segments and 8 sides. My origin was World Center and Primary Axis was Y.
      • Create a primitive sphere for the leaf ball. I made mine 75 cm diameter with 8 segments and 16 sides. My origin was World Center and Primary Axis was Y.
      • Select the sphere in the Scene pane and duplicate the sphere twice (Edit>Duplicate>Duplicate Nodes). You should have 3 spheres in the Scene pane after duplicating twice, but they will all be on top of each other in the viewport. Alternatively, you could just create  two more primitive spheres so you have a total of 3.
      • Select the first sphere in the Scene pane and use the Parameters pane to translate it to 45 on the Y axis.
      • Select the second sphere in the Scene pane and use the Parameters pane to scale it to 75% and translate it to 125 on the Y axis.
      • Select the third sphere in the Scene pane and use the Parameters pane to scale it to 55% and translate it to 185 on the Y axis. If I typed all those numbers right, you should have this:​
    5. Change the Iray Render Settings Instancing Optimization from Speed to Memory. We may not generate enough instances in this experiment to matter, but let's be safe. Nobody wants Daz Studio to crash and lose all their work!
    6. Scatter the group of leaf plants on the bottom sphere:
      • Select the group of leaf plants (just select the group, not the children) .
      • Run UltraScatterPro.
      • Keep the Preview instances drop down on Full. (We want to see the shape of the instances in the viewport for this experiment. My computer can handle it, I hope yours can too,) 
      • On the Settings tab, in the Target Object drop down box, select the bottom, largest sphere's name (probably Sphere).
      • Leave the Number of Instances/Iterations at the default of 20. We want a quick scatter to evaluate how we are doing. We can add more instances after the kinks are worked out.
      • Click the Surface Scatter button. You should have this:
    7. Uh oh. Those plants are way too big. Reduce the size of the plants and create some sizing variety:
      • Select the UltraScatterPro [S] instances group parented to the sphere in the Scene pane.
      • Run UltraScatterPro again. It will open with all your previous settings and allow you to make changes.
      • Select  the Scaling tab
      • Check the box for Random Scaling (if not already checked).
      • In the Scale from.. section, change Scale to 12%.
      • In the Scale to section, change Scale to 30%. 
      • Check the box for Scale affects spacing.
      • Click the Surface Scatter button. You should have this:
    8. Now the size is better, but they are all still pointing straight up. Change the instance alignment to make them look like they are growing out from the center of the sphere:
      • Select the UltraScatterPro [S] instances group parented to the sphere in the Scene pane.
      • Run UltraScatterPro again. It will open with all your previous settings and allow you to make changes.
      • Select  the Rotation tab
      • In the Alignment drop down box, select Surface Normal.
      • Click the Surface Scatter button. You should have this:
    9. Now they appear to be growing out from the center of the sphere, but they stick out too far beyond the edge of the sphere. Adjust the Rotation Point so the instances stay mostly inside the sphere:
      • Select the UltraScatterPro [S] instances group parented to the sphere in the Scene pane.
      • Run UltraScatterPro again. It will open with all your previous settings and allow you to make changes.
      • Select  the Rotation tab again.
      • In the Rotation Point drop down box, select Top.
      • Click the Surface Scatter button. You should have this:
    10. The plants aren't sticking out anymore, but we can't see them, because the sphere is in the way. Hide the sphere; we don't need it anymore:
      • In the Scene pane, click the eye icon next to the sphere to hide the sphere. You should have this:
    11. Wow, it is way too sparse! Increase the number of instances, now that we have figured out how to scale and align them correctly:
      • Select the UltraScatterPro [S] instances group parented to the sphere in the Scene pane.
      • Run UltraScatterPro again. It will open with all your previous settings and allow you to make changes.
      • In the Settings tab, change the Number of instances/iterations from 20 to 200.
      • Click the Surface Scatter button. You should have this:
      • Still not enough, repeat these steps and try 1000 instances. You should have this:
    12. Density, scale, alignment, all look good. There is another thing we can do to add even more randomness to the instances. Randomly rotate the instances around the Y axis:
      • Select the UltraScatterPro [S] instances group parented to the sphere in the Scene pane.
      • Run UltraScatterPro again. It will open with all your previous settings and allow you to make changes.
      • Select the Rotation tab again.
      • In the Rotation section about half way down on the left, drag the Y+- slider all the way to the right to 180.00. This will cause UltraScatterPro to randomly rotate each instance around the Y axis between -180 and 180 degrees to give tremendous rotation variety to the instances. 
      • Click the Surface Scatter button. You should have this:
    13. OK! Looking great! Our bottom topiary ball is done. 

    Well, you might say that is a lot of work! Do I have to do all that again for each of the other two leaf balls? NO! UltraScatterPro makes it EASY to replicate all this work for the other two leaf balls.

    Continued Below

    UltraScatterPro Topiary Tree.jpg
    1600 x 2000 - 954K
    Topiary 01 Primitives.JPG
    1558 x 1941 - 133K
    Topiary 02 Scattered Plants.JPG
    1549 x 1934 - 176K
    Topiary 03 Plants Scaling 12-30.JPG
    1554 x 1942 - 141K
    Topiary 04 Alignment Surface Normal.JPG
    1551 x 1941 - 143K
    Topiary 05 Rotation Around Top.JPG
    1553 x 1939 - 133K
    Topiary 06 Hide Sphere.JPG
    1553 x 1939 - 151K
    Topiary 07 200 instances.JPG
    1556 x 1940 - 182K
    Topiary 08 1000 instances.JPG
    1550 x 1939 - 166K
    Topiary 09 Rotation +- 180.JPG
    1548 x 1940 - 167K
    Post edited by barbult on
  • RGcincyRGcincy Posts: 2,834

    This is going to be a valuable thread barbult. Already showing some cool things with polylines and the topiary tree.

  • barbultbarbult Posts: 24,240
    edited January 2019

    Experiment: Create a Topiary Tree (Continued) 

    The bottom topiary leaf ball is done. Now we can use a nifty UltraScatterPro feature to quickly build the other two balls. UltraScatterPro allows you to import all the settings of an old scatter into a new scatter.

    1. Scatter the group of leaf plants on the middle sphere:
      • Select the group of leaf plants (just select the group, not the children) .
      • Run UltraScatterPro.
      • On the Settings tab, in the Target Object drop down box, select the middle sphere primitive's name (probably Sphere (2)).
      • At the bottom of the dialog on the left side, click the drop down box for Import and select the scatter that you created for the bottom topiary ball. (There is probably only one available to choose at this point.) All the settings used for the bottom topiary ball scatter are imported into this new scatter. 
      • Click the Surface Scatter button.You should have this:
    2. Scatter the group of leaf plants on the middle sphere:
      • Select the group of leaf plants (just select the group, not the children) .
      • Run UltraScatterPro.
      • On the Settings tab, in the Target Object drop down box, select the top sphere primitive's name (probably Sphere (3)).
      • At the bottom of the dialog on the left side, click the drop down box for Import and select the scatter that you created for the bottom topiary ball. All the settings used for the bottom topiary ball scatter are imported into this new scatter. 
      • This ball is much smaller. We probably don't need 1000 instances. Change the Number of instances/iterations to 500,
      • Click the Surface Scatter button. You should have this:
    3. Hide the middle and top sphere primitives:
      • In the Scene pane, click the eye icons next to the middle and top sphere primitives to hide them in the viewport. You should have this:
    4. Now it is time to scatter moss on the cylinder tree trunk:
      • Select the Moss group created previously
      • Run UltraScatterPro.
      • Keep the Preview instances drop down on Full. (We want to see the shape of the instances in the viewport for this experiment,) 
      • On the Settings tab, in the Target Object drop down box, select the cylinder primitive's name (probably Cylinder).
      • Leave the Number of Instances/Iterations at the default of 20. We want a quick scatter to evaluate how we are doing. We can add more instances after the kinks are worked out.
      • Click the Surface Scatter button. You should have this:
    5. I can see some moss at the bottom, but the leaf balls are hiding too much. Temporarily hide all three leaf balls:
      • In the Scene pane, click the eye icon next to the UltraScatterPro [S] scatter parented to the bottom sphere to turn it off.
      • In the Scene pane, click the eye icon next to the UltraScatterPro [S] scatter parented to the middle sphere to turn it off.
      • In the Scene pane, click the eye icon next to the UltraScatterPro [S] scatter parented to the top sphere to turn it off.
      • You should have this:
    6. Now we can see the moss instances, but they are all still vertical. Change the instance alignment to make them look like they are plastered to the cylinder sides:
      • In the Scene pane, select the UltraScatterPro [S] instances group parented to the cylinder.
      • Run UltraScatterPro again. It will open with all your previous settings and allow you to make changes.
      • Select  the Rotation tab
      • In the Alignment drop down box, select Surface Normal.
      • Click the Surface Scatter button. You should have this:
    7. Now the alignment is right, but they are too big for the cylinder. Scale the moss instances to a smaller size:
      • In the Scene pane, select the UltraScatterPro [S] instances group parented to the cylinder.
      • Run UltraScatterPro again. It will open with all your previous settings and allow you to make changes.
      • Select  the Scaling tab
      • Uncheck the box for Random Scaling. We are going to scale all moss instances down by the same amount to fit the cylinder sides.
      • In the Scale to section, change Scale to 30%. 
      • Click the Surface Scatter button. You should have this:
    8. It is coming along, but we need more moss instances:
      • In the Scene pane, select the UltraScatterPro [S] instances group parented to the cylinder.
      • Run UltraScatterPro again. It will open with all your previous settings and allow you to make changes.
      • In the Settings tab, change the Number of instances/iterations from 20 to 3000.
      • Click the Surface Scatter button. You should have this:
    9. There are still some gaps, but that is OK. Color the cylinder brown like a tree trunk:
      • In the Scene pane, select the cylinder.
      • In the Surfaces pane, select the Default surface of the cylinder.
      • Apply a brown shader or just set the Diffuse/Base Color to brown.
      • You should have this:
    10. Density, scale, alignment, all look good. There is another thing we can do to add even more randomness to the instances. Randomly rotate the instances around the Y axis:
      • In the Scene pane, select the UltraScatterPro [S] instances group parented to the cylinder.
      • Run UltraScatterPro again. It will open with all your previous settings and allow you to make changes.
      • Select the Rotation tab again.
      • In the Rotation section about half way down on the left, drag the Y+- slider all the way to the right to 180.00. This will cause UltraScatterPro to randomly rotate each instance around the Y axis between -180 and 180 degrees to give tremendous rotation variety to the instances. 
      • Click the Surface Scatter button. You should have this:
    11. The tree trunk is done. Turn the visibility of the three leaf balls back on:
      • In the Scene pane, click the eye icon next to the UltraScatterPro [S] scatter parented to the bottom sphere to turn it on.
      • In the Scene pane, click the eye icon next to the UltraScatterPro [S] scatter parented to the middle sphere to turn it on.
      • In the Scene pane, click the eye icon next to the UltraScatterPro [S] scatter parented to the top sphere to turn it on.
      • You should have this:
    12. Whew, I feel like I ran a marathon! The tree looks good. Finish it off by planting it in a nice pot:
      • I loaded the FlowerPot04 from the Holiday Cactus product.
      • Scale the pot to look appropriate with the tree..
      • Here is the final topiary tree:
      • And here, again, is the final render:
    Topiary 10 Scatter on Sphere 2.JPG
    1555 x 1938 - 180K
    Topiary 13 Hide Sphere 3.JPG
    1551 x 1936 - 194K
    Topiary 12a Scatter 500 on Sphere 3.JPG
    1550 x 1936 - 187K
    Topiary 14 Moss scattered on cylinder.JPG
    1551 x 1937 - 198K
    Topiary 15 Plant scatters on spheres hidden.JPG
    1551 x 1936 - 133K
    Topiary 16 moss scattered surface normal.JPG
    1551 x 1936 - 138K
    Topiary 17 moss scattered scale min 30 max 30.JPG
    1550 x 1938 - 120K
    Topiary 18 moss 3000 iterations.JPG
    1553 x 1941 - 148K
    Topiary 19 brown cylinder.JPG
    1550 x 1938 - 144K
    Topiary 20 moss rotate +- 180.JPG
    1551 x 1935 - 144K
    Topiary 21 unhide sphere instances.JPG
    1553 x 1936 - 194K
    Topiary 22 pot added.JPG
    1550 x 1936 - 193K
    Post edited by barbult on
  • barbultbarbult Posts: 24,240
    edited January 2019

    Experiment: Create a Second Topiary to Make a Pair

    What if I want a second topiary to make a pair to flank the front door of my house? Do I have to do all this again?!?!

    NO! I am excited to say, that to my surprise, I discovered that I can duplicate the whole tree, instances and all! And even more amazing, they can still be rescattered with UltraScatterPro to make additional changes!

    1. Group all the elements of the topiary tree:
      • In the Scene pane, select the cylinder,all three spheres, and the flower pot.
      • Right click on the cylinder and in the popup menu choose Select>Select Children. Now all of the UltraScatterPro groups will also be selected.
      • In the Daz Studio menu choose Create>New Group...
      • In the popup dialog, give the group a name and choose Parent Selected Item(s) to New Group. (If you don't see that option, clcik the Show Options button.)
      • Click the Accept button.
    2. Duplicate the new group:
      • ​In the Scene pane, select the new group (just the group, not the children).
      • In the Daz Studio menu, choose Edit>Duplicate>Duplicate Node Hierarchies.
      • You should see a another group appear in the Scene pane. This is your second topiary.
      • Translate the duplicate group on the X axiz, so the two trees are not overlapping.
      • Notice that the trees are identical.
    3. Modify the duplicate tree to give it some variation from the first. No two trees in nature are identical:
      • In the Scene pane, click the arrowhead by the new group name to expand the duplicate tree hierarchy to see all of the objects and instance groups.
      • Notice that the instance groups are not parented to their corresponding target objects like they are in the original topiary group. The instance proxies and instances are not parented to the instance group anymore, either. That doesn't seem to matter, but makes it much harder to select the right thing for rescattering.
      • Select one of the UltraScatterPro [S] instance groups. Be careful to select the instance groups. They have the group icon next to them and have a number of instances in brackets at the end of the name.
      •  
      • Run UltraScatterPro to modify the settings.
      • IMPORTANT In the Settings tab, change the Target Object from the object in the original topiary group to the corresponding object in the new topiary group.
      • In the Distribution tab, change the Seed value (choose any value other than the current value)
      • Click the Surface Scatter button.
      • Notice that when the scatter completes, the instances have moved to a new position. The two trees no longer match exactly. Feel free to experiment with other changes, too. Change the scale and rotation seeds. Change the scale factors. Play around.
      • Repeat this process for each of the UltraScatterPro [S] Group instances in the second topiary.
      • You can even change the size or shape of the sphere and cylinder primitives to make the trees more different. If you do, you will need to scatter again after making these changes.
      • This is my final render with two topiary trees. I only changed the Distribution seed.
    UltraScatterPro Two Topiary Trees.jpg
    1600 x 2000 - 1M
    Post edited by barbult on
  • barbultbarbult Posts: 24,240
    edited January 2019

    Now that the simple topiary is complete, I moved on to make my fancier topiaries of an elephant and a giraffe. The techniques are the same, I just used ancient Poser props instead of primitives. I even used an UltraScatterPro Volume scatter for leaf  trimmings flying off of the chainsaw, but that is a lesson for another day.

    The HDRI used in the image is from Aversis.be. It is free for non-commercial personal use.

    Topiary Elephant and Giraffe Chainsaw Trimming.jpg
    2000 x 1125 - 2M
    Topiary Elephant and Giraffe Chainsaw Trimming_001.jpg
    2000 x 1125 - 2M
    Post edited by barbult on
  • SzarkSzark Posts: 10,634

    lol that is awesomeness 

  • barbultbarbult Posts: 24,240

    @RGcincy @Szark I'm glad you like my topiaries. I particularly enjoyed making the ones with the chainsaw trimming. laugh Have you tried any? I'd like to see what other people come up with. 

  • SzarkSzark Posts: 10,634

    I haven't as I am weighing up wether to get Pro on what I see here in this thread and so far so good. However I just subscribed to Substance Indie so I will have to wait a little long before upgrading to Scatter Pro. Now if we got an upgrade price I would have gotten it already. :) I will need it eventually though. 

     

    yeah I love the chainsaw trimming one, made me chuckle. 

  • barbultbarbult Posts: 24,240
    edited January 2019

    Experiment: Create a Parade of People on the Street

    Matrix scattering ought to be perfect for creating a group of people who would logically be attired the same and posed the same. Things that come to mind are a choir in robes posed with their hymnals in hand and mouths open singing, or a military parade. I'm going to make a parade of police officers marching down the street. (I'm short on military uniforms, but I have some police.)

    1. Select some figures to scatter:
      • I chose LoREZ Police US1, for several reasons. It is not a resource hog. I am going to create a bunch of people, so I'll be rendering from a distance; loREZ is will work fine. It is easy to use; the figures load with clothing, hair, and accessories. There are males and females. There are multiple skin tones and hair colors. It has morphs to add some variety. It comes with some poses. 
    2. Create a Group of police figures with some variety, so the instances made later will not all be identical:
      • Note: It wouldn't look right if every one of my parading policemen looked exactly the same (unless I was doing an attack of the clone police, or something, which is not my goal). Every instance will have exactly same materials and pose as the object it is made from, so if I have some variety in the objects, I will have some variety in the instances. There will be instances that look exactly alike, if multiple instances are generated from a single object, though. That is how instances work!
      • Load several male and several female police officers. Apply the walking pose to all of them (they are marching in unison in the idea in my head). Use materials and morphs to make them a little different. Tweak the poses a bit to make a few arms or heads a bit different. I probably could have worked a little longer to make them more different, but they are good enough for my experiment.
      • Create a new Daz Studio Group and parent the police figures to the group.
      • Move the Group off to the side of the viewport where they won't show in the scene. I want my scene to only show the instances.
    3. Use Matrix scatter to make a rank and file of police figures:
      • Select the Group of LoREZ police created in step 2).
      • Run UltraScatterPro
      • In the Settings tab, change the Preview Instances to Bounding Box. That makes it easy to see how the instances are lined up and spaced.
      • Click the Matrix button.
      • The options on the Settings tab for Matrix scatter are much different than Surface Scatter.
      • Note: Matrix scatters originate the instances at 0,0,0 in the scene. The scatters will form rows along each axis, extending out from 0,0,0. The Matrix parameters let you specify how many instances will be put on each axis and how far apart the instances are (origin to origin). The Offset parameter lets you stagger every other row. 
      • For this experiment, make a parade of police 5 wide and 10 deep. Set the Rows parameters to 5 for X, 1 for Y, and 10 for Z. Y is 1, because I want them all on the ground, I don't want police stacked vertically on top of each other.
      • A posed police figure in my scene is about 60 cm by 75 cm in the XZ plane. I don't want them intersecting with each other, so set Spacing (cm) to 80 for X and 100 for Z. The Y spacing value doesn't matter, because we are creating just one row on the Y axis.
      • I want my police in a straight line, not offset, so leave Offset (cm) values 0.
    4. Click the Matrix Scatter button. 
    5. Evaluate the Matrix of instances in the viewport:
      • Uh Oh! What went wrong? Some of my instance bounding boxes are partly below "ground". They are all supposed to be lined up perfectly.
      • This problem is caused by objects that have offset origins. The LoREZ figure products are known to have this issue. The figure origin is not at the mesh 0,0,0 origin. UltraScatterPro has a workaround for this very problem!
    6. Fix the offset origin problem:
      • Select the UltraScatterPro [M] scatter group in the Scene pane.
      • Run UltraScatterPro again
      • Select the Rotation tab
      • Check the Ignore origin transform box
      • Click the Matrix Scatter button.
    7. Evaluate the Matrix of instances in the viewport:
      •  Much better! All the bounding boxes are lined up in perfectly straight rows, 5 in the X direction and 10 in the Z direction and all are on the "ground" plane (lined up vertically at Y=0).
    8. Add some variety to the size and rotation of the instances
      • Note: Even though all instances of a given object have the same pose and materials, we can still use UltraScatterPro to make them vary in size and rotation.
      • Select the UltraScatterPro [M] scatter group in the Scene pane.
      • Run UltraScatterPro again
      • Select the Scaling tab
      • These are human people, so we don't want too much variation in size. Keep the Random Scaling box checked. in "Scale from" section, set Scale to 90.0%. In the "Scale to" section, set Scale to 100.0%.
      • Select the Rotation tab
      • The police are marching in formation, so we don't want too much variation in rotation. Set Y+- to 5.00.
    9. Click the Matrix Scatter button.
    10. Evaluate the Matrix of instances in the viewport. The bounding boxes now have some variety in size and  Y axis rotation.
    11. Evaluate the full instance preview
      • Note: Now we want to see which instances are female, which are male, which color they are, etc. We could render, but that is time consuming. Let's Use UltraScatterPro to look at the full viewport representation of the instances. We have only 50 instances, and they are LoREZ with simple materials and few polygons. We should be able to look at the Full preview without problems.
      • Select the UltraScatterPro [M] scatter group in the Scene pane.
      • Run UltraScatterPro again
      • Change the Preview instances drop down box from Bounding Box to Full
      • TIP: If you run UltraScatterPro on an existing scatter group and you change only the Preview instances type (None, Full, Bounding box, Lores tree), you can click on the Cancel button and exit UltraScatterPro. It will keep your new choice of Preview instances without having to rescatter all the instances. This is a huge time saver if you just want to turn off a lot of instance previews in a cluttered viewport, or want to change between Full and Bounding Box, etc. 
      • Click the Cancel button, since we changed only Preview instance type.
      • View the Viewport in Texture Shaded or Iray Preview mode to see if you are satisfied with the mix of figures and materials.
      • Suppose you don't like the mix of figures. Maybe the front row is all white males and you believe females and other skin colors should be represented in the leading formation. 
    12. Rescatter to change the mix of figure instances
      • Select the UltraScatterPro [M] scatter group in the Scene pane.
      • Run UltraScatterPro again
      • Select the Distribution tab
      • Change the Seed value (lower left corner of the dialog)
      • Click the Matrix Scatter button
      • Repeat the last two steps until you are happy with the figure distribution
      • Note: You can also change the Seed on the Scaling and Rotation tabs if you are not happy with those instance modifications.
    13. Add some scene elements to give the police someplace to march. I used Urban Sprawl 3. I added a police car, a police dog and a few billboards from Now-Crowd Billboards - Modern City Life
    14. Here is my final scene. Those guys strolling along the sidewalk don't seem too concerned by the big police presence. It must be a peaceful parade, not a show of force against a formidable foe.

     

    Instances not lined up on ground plane.JPG
    2584 x 1944 - 283K
    UltraScatterPro Lowrez Police Matrix Scatter_001 Top View.jpg
    2000 x 1500 - 3M
    UltraScatterPro Lowrez Police Matrix Scatter_001 Default View.jpg
    2000 x 1500 - 3M
    Post edited by barbult on
Sign In or Register to comment.