Boolean Native



The Boolean Native object is similar to the Boolean CAD object, but it uses a more efficient ray-tracing algorithm. See "Boolean CAD" for more information about defining parent objects, Boolean operations, and object placement. Unlike the Boolean CAD object, the Boolean Native object doesn't convert each component object into a NURBS-based surface representation, and instead uses the parent objects' native geometry. For this reason, ray tracing with the Boolean Native object is typically much faster (up to 10x faster) and more accurate than the Boolean CAD object.

Ray tracing through a Boolean Native object:

When a ray is traced towards a Boolean Native object, the ray is traced to the parent objects and the software performs a Boolean logic on the ray trace. It first looks for a "close first guess" of the ray-object intercept using a faceted representation of the parent objects (i.e. triangles generated using the Drawing Resolution under Object properties > Draw). Then it iterates to the exact solution.

It means that the ray-tracing depends on the ray-tracing through the parent objects. If rays do not properly trace through the parent objects or miss them, rays will not trace properly through the Boolean Native object. For more information on the Drawing Resolution, see section "Comments about drawing resolution and bounding regions" of Draw (object properties, non-sequential component editor).

Rendering:

The rendering of the Boolean Native object is done by converted the Boolean Native to a NURBS format. But this is not used by the ray tracing. The Boolean Native object uses the native parent geometry for ray tracing.

Ray tracing speed

The Boolean Native object will not ray trace faster than Boolean CAD object if the parent objects are CAD objects or are not native objects in OpticStudio.

In addition, if a Boolean Native object is built with a large number of parent objects, then the ray tracing speed may not be faster than ray tracing with the Boolean CAD object. This is because the rays still need to trace through all the parent objects and consider the Boolean geometry operations. Therefore, if many objects need to be combined, nesting the objects will likely ray trace faster than using the Boolean Native object. See "Object Placement" for more information on nested objects.

Placing sources inside the Boolean Native object

Sources can be placed inside of the Boolean Native object using the "Inside Of" parameter. Unlike the Boolean CAD object, however, the locations of the parent objects must be considered. This is because the Boolean Native object uses the parent objects' native geometry instead of converting each component into a NURBS-based surface representation.

If a source starts inside a Boolean Native object, the rays will trace through the geometry of the parent objects, placed relative to the local coordinates of the Boolean Native object. Therefore, if a ray starts inside the region of a parent object, the Inside Of parameter should be set to the Boolean Native object number (and not the parent object number). This also applies to negative space. For example, see the following images showing objects A and object B, and the Boolean operation A – B:

Let's say that a source needs to be placed somewhere within the region of object B. The Inside Of parameter for the source should be set to the Boolean Native object number, even though the Boolean operation is subtracting object B from object A, and the region around the Boolean Native object is air. The full geometry of parent objects A and B must be considered, because the full geometry is used in the ray trace.

The full geometry of Object B must be considered, even if the parent objects are not located in the same local coordinate system as the Boolean Native object. This is because the parent object geometries are recreated relative to the local coordinate system of the Boolean Native object. For example, see the following image, showing the placement of a source that does not consider the full geometry of object B:



The source object does not have the Inside Of value set correctly, and as a result, the rays are incorrectly segmented in a region that should be considered air.

The following image shows the same example system, but with the Inside Of value correctly set to the number of the Boolean Native object.



With the Inside Of value set to the Boolean Native object number, the rays correctly propagate through the hexagonal opening, without the segments shown in the previous picture.

To ensure that sources are placed correctly within Boolean Native objects, we recommend using the same global coordinate system for the parent objects and the Boolean Native object. Once the sources are positioned and the system is defined, the parent objects may be moved to a different area outside the region of interest, or hidden and ignored. See "Editor Windows Operations" for a right-click option to ignore and hide objects. Also see "Object Properties >Type > Ray Trace Settings" for more information on ignoring objects, and "Object Properties > Draw" for more information on hiding objects.

Working in mixed-mode

When working in mixed-mode with a Boolean Native object, the locations of the parent objects must be considered. If the parent objects touch or surround the entrance port, then the Back Propagation Distance has to be used so that rays do not start inside the parent objects.

The following parameters are used to define the Boolean Native object:

Parameter # Description Face Name Face #
1

The number of points to use for fitting splines to aspheric surfaces during the conversion from OpticStudio format to NURBS format. Because the Boolean Native object uses the native parent geometry for ray tracing, this spline parameter is only needed for other CAD geometry uses (ex. for rendering, exporting as a CAD file, for use in a Swept or Boolean CAD object, etc.).

The value is an integer code, where 0 = 4 points, 1 = 8 points, 2 = 16 points, 3 = 32 points, 4 = 64 points, 5 = 128 points, and 6 = 256 points. Higher spline settings increase accuracy for some objects at the expense of slower object creation and rendering.

NA NA
5-14 The object numbers that define which object is A, B, C, etc. See "Boolean CAD" for more information about defining parent objects. Side 0

Next: