Forest Logo
search
package_2

rblx-nonvoxel-greedy-meshing

By @royal0959

Roblox

Mirrored

rblx-nonvoxel-greedy-meshing

module for merging parts that don't need to be adhere to voxel grids

Functions

Mesher:MergeNearby(part: BasePart, OP: OverlapParams, mergeProperties: MergeProperties)
Attempt to merge part with nearby compatible parts. OP and mergeProperties are optional, if an OverlapParams is not provided, part can merge with any parts in workspace


Example:

mesher:MergeNearby(workspace.Part)


Mesher:MergeParts(parts: { BasePart }, mergeProperties: MergeProperties)
Attempt to merge provided parts with eachother. mergeProperties is optional


Example:

mesher:MergeParts(workspace.Folder:GetChildren())

Merge Properties

mergeProperties can be provided as a parameter in dictionary format to define merge rules and filter
Currently, there are 2 merge properties:
mergeProperties.BoundSize: Vector3
Changes the size of collision bounds used to find parts to merge around a part, default is Vector3.new(0.001, 0.001, 0.001). Not recommendeded to be changed lest you know what you're doing
mergeProperties.Filter: function(part, touchPart, axis)
Defines extra criteria(s) for merging. If the function returns false, parts will not be merged and vice versa. Can be used for cases such as restricting specific marked parts from being merged

Example:


local disallowedName = "NO_MERGE"
local mergeProperties = {
	Filter = function(part, touchPart, axis)
		-- don't allow merge to go through if this check passes
		if part.Name == disallowedName or touchPart.Name == disallowedName then
			return false
		end
		
		return true
	end,
}

mesher:MergeParts(workspace.Folder:GetChildren(), mergeProperties)

Package Details

Install command (Click to copy)


Version

1.0.3

License

MIT

check_circle

Safe for commercial use

Automated license review — not legal advice.