TG9six 03a642d635 first push
first push
2025-09-06 17:17:39 +04:00

239 lines
11 KiB
Plaintext

***********************************
*** Perfect Culling - Changelog ***
***********************************
# 1.2.6.2
Added API to cancel bakes
Retain visualization settings in the PerfectCullingCamera component
Take PerfectCullingRendererTag for additional occluders into account
Support for terrain holes
FIXED: potentially stripping valid bake groups and preventing bake from starting
FIXED: not allowing use-case where a single bake group was used with additional occluders
FIXED: some volume cell size rounding issues
# 1.2.6.1
FIXED: Vulkan Renderer crash on empty meshes
FIXED: Vulkan Renderer writing to stdout
Added HideInInspector attribute to bake data array to prevent third-party assets from accessing them
Workaround for Unity 2022 not maintaining native DLL references
# 1.2.6
FIXED: Vulkan Renderer crash for very dense scenes
FIXED: Vulkan Renderer culling terrain when it was visible
FIXED: Can't remove MeshRenderer because PerfectCullingRendererTag (Script) depends on it
Ability to specify axes for individual Merge-Downsample iterations
Produce error when NativeLib or NativeLibVulkan are not assigned in PerfectCullingResourcesLocator instead of silently falling back to Unity Renderer.
Ignore objects using hideFlags (HideInHierarchy, HideInInspector)
PerfectCullingRendererTag checkbox ExcludeFromBake is evaluated before bake and matching renderers automatically removed
Added PerfectCullingConstants.DisableConfirmationDialogs
Minor improvements
# 1.2.5.1
FIXED: some components show "This script is an editor script."
Removed obsolete script
# 1.2.5
FIXED: included some scripts and components in builds unnecessarily
FIXED: some DLLs have been included in builds unnecessarily
Minor fixes
# 1.2.4
FIXED: Renderer parented to Transform that makes use of negative scaling was rendering incorrectly using Vulkan Renderer
FIXED: Warnings about Dispose() after cancelling builds in more recent Unity versions
FIXED: FreeModeHandle API change in Unity 2022
FIXED: Some unused code warnings
FIXED: Generating harmless and non-fatal shader error when using GLES2
Created dedicated window to manage bake groups
Made Far Clip Plane adjustable
Added option to render terrains double-sided and made it the default
Bake data also stores renderer name now
Added feature to fail build when invalid renderers have been detected
# 1.2.3
FIXED: Performance issue caused by multi-camera setups
FIXED: Stacked transparent objects culling inconsistently
Increased default mesh resolution for terrains and added resolution settings and preview to PerfectCullingTerrain
Disabled some code that tried to optimize bake performance by disabling components (was just causing problems and had too many edge-cases)
Use unlit materials for demo scenes to increase compatibility with all render pipelines
# 1.2.2
FIXED: Double-sided objects not maintaining render mode
FIXED: Rotated volumes sample incorrect position
FIXED: Unused variable warning
FIXED: Rendering additional gizmo at origin (0, 0, 0)
FIXED: Empty cell search breaking visualization
FIXED: GPU readback issue on M1 chipsets (Unity Apple Silicon version)
CHANGED: ReadMultipleBitsInBitStream (PerfectCullingConstants.cs) defaults to true now
# 1.2.1
Optimized "Initialize" step (optimized world space to local space calculations)
# 1.2.0
FIXED: EndLayoutGroup: BeginLayoutGroup must be called first.
FIXED: Native renderers potentially selecting empty LOD level
FIXED: Already referenced additional occluders added again as renderers
# 1.1.9
ADDED: Native Vulkan Renderer (Experimental; Windows only at the moment)
ADDED: Layer selection to Renderer Selection Window
ADDED: Option to automatically update the bake speed for better estimates
FIXED: Unreachable code warning in BitStreamReader
FIXED: Native Renderer (OpenGL) not taking into account PerfectCullingRendererTag render mode
Final bake compression step parallelized for faster bake completion
Quality of life changes
# 1.1.8
FIXED: Compile errors in Unity Unity 2019.1 and Unity 2019.2
FIXED: Terrain failing build process if Terrain was on Layer 30
# 1.1.7
FIXED: Gizmos disappearing after entering and leaving play mode until assembly reload occured (in more recent Unity versions)
ADDED: New OutOfBoundsBehaviour called IgnoreDoNothing (allows to ignore volume if camera was outside)
Show warning if no bake group was added to add context why Bake button non-interactable
# 1.1.6
FIXED: Unwarranted warning "Hash doesn't match. Rebake might be required." when double-sided checkbox was enabled on PerfectCullingRendererTag
# 1.1.5
FIXED: Incorrect HashCode calculation causing issues in multi-terrain setups
FIXED: Gizmos incorrectly took into account transform scaling
ADDED: Option to attempt to find non-empty cell if sampled cell was empty
# 1.1.4
FIXED: Potentially not unloading volume asset data after scene transitions
FIXED: Ignore unloaded scenes when using Bake All option
FIXED: Fully restore loaded scenes at the time of using Bake All option
FIXED: HDRP not visualizing Frustum Culling correctly
FIXED: Merge-downsample visualization was not working correctly
FIXED: Pipe not connected error in more recent Unity versions
ADDED: PerfectCullingTerrain script to improve support for terrains
ADDED: Profiler sections to make profiling easier
ADDED: Empty Cell Behaviour option. Allows to cull everything or make everything visible if an unbaked/empty cell was active.
ADDED: AlwaysIncludeVolume that allows to include cells that had been excluded
ADDED: PerfectCullingMonoGroup to allow to cull any kind of UnityBehaviour along with a renderer (for instance allows to cull lights, scripts, etc.)
ADDED: Ability to force a render mode to force it to be transparent or opaque
ADDED: Allow Renderer Selection Window to filter for static occluders/occludee specifically
ADDED: Ability to exclude probes on NavMesh that are too far away from XZ plane
ADDED: Additional documentation
Made ToggleForceRenderingOff the default option (will fallback to ToggleShadowcastMode in Unity 2018)
Improved performance for applying renderer state changes
Unity is set as default renderer now because the performance difference became more and more negligible as Unity is improving Editor performance.
Quality of life changes here and there
# 1.1.3.1
FIXED: excludeInsideColliders option with ExcludeBelowColliderArraySamplingProvider excluding cells with an undesired offset
# 1.1.3
FIXED: Missing deltaTime for FlyCamera demo script
ADDED: Initial implementation for Portal Cells (allows to clamp to the portal cell instead of the closest cell when out of bounds)
ADDED: Terrain to mesh convert utility (TerrainToMeshUtility component)
ADDED: Customizable offset for ExcludeBelowColliderSamplingProvider
ADDED: ExcludeBelowColliderArraySamplingProvider (this deprecates the original ExcludeBelowColliderSamplingProvider)
ADDED: ExcludeInsideCollidersSamplingProvider
ADDED: Calculate hash to inform about potential need of rebake
ADDED: API to bake a single view point (useful for Editor functionality)
ADDED: Layer to allow using different volumes for different cameras, etc.
ADDED: Store bake time and duration in baked data asset
FIXED: LoadAll<> loading more assets than necessary
FIXED: Adjusted thread count, etc. for native renderer to make it even more compatible
FIXED: Manually adding PerfectCullingVolume resulted in volume of size 0
FIXED: Potential NullReferenceException for missing scripts attached to URP Lights
FIXED: Null renderers in additional occluder array fails bake
FIXED: Overflow while merge-downsampling bakes with more than 10M cells
FIXED: Volume resizing being weird for some rotational values
Removed path references to make the asset independent from location in project
Some additional tweaks here and there
# 1.1.2.2
FIXED: PerfectCullingVolume visualization might not show renderers in Game View (was expecting a layer that however might be culled)
FIXED: Potential exception caused by accessing UnityEditor.Lightmapping.lightingSettings (only Unity 2020 and higher)
Removed log message that is no longer relevant
# 1.1.2.1
FIXED: Invalid (null) renderer in LODGroup causes the Renderer Selection Tool to fail
FIXED: ETA in progress window doesn't make sense when cells are excluded (was not correctly deducting excluded cells)
# 1.1.2
FIXED: Harmless error for meshes that got more materials assigned than sub meshes
FIXED: Potential Editor slow down selecting large bake data (introduced custom inspector that hides some irrelevant information)
Improved macOS compatibility and bake speed (Windows is recommended for fastest bake times though)
Added PerfectCulling.API namespace to centralize all the public API thus making it easier to use
Added API to add and remove renderers from BakeGroup at run-time
Added multi-scene bake support
Print warning for missing renderers (Editor only)
Added little size utility for scaling PerfectCullingVolume based on the bounds of the selected renderers
Added "Fix" button that assist you in finding a valid cell size
Added pre-calculated unique color table for better performance and even more determinism
Added GUI support for additional occluders that are not managed by the asset (occlcuder but not occludee)
Added Assembly Definition to Perfect Culling folder
Patched up some typos in the documentation
Some quality of life changes here and there
# 1.1.1
FIXED: Unnecessary scene reload when bake didn't even start (for instance no renderers added)
FIXED: Correctly format numbers in ETA calculation dialog
FIXED: Missing materials will now show a warning instead of not allowing to bake
FIXED: Some warnings caused by scripts
Native Renderer overhead significantly reduced (no more "Preparing sampling information", "Preparing meshes")
Added ability to render objects double-sided (disables backface culling)
Made example sampling provider (ExcludeBelowColliderSamplingProvider) a built-in sampling provider and made it more robust.
Added two more built-in sampling providers: ExcludeFloatingSamplingProvider and ExcludeFarNavMeshSamplingProvider
Reduced unnecessary memory allocations for some editor scripts.
Some more polish and quality of life changes
Updated documentation and video tutorial
# 1.1
FIXED: Exception caused by ToggleRenderer during scene changes
FIXED: Renderers that use sub-materials failed to render correctly in some configurations
FIXED: Harmless error spam caused by URP Lights when bake performed using Unity Renderer
FIXED: Camera aligning to wrong cell in multi-volume setups
FIXED: LODGroups not correctly taken into account when added to volume (please clear your renderers and re-add them)
FIXED: Potential baking issues caused by rotated volumes
Parallelized Merge-Downsample step to make it significantly faster
General bake performance improvements
Custom handles for more user-friendly volume scaling
API to exclude cells from bake by placing volumes and/or custom scripts
Added tag object to exclude renderers from culling
Bake API allows to pass in additional occluders
Ability to perform baking on the CPU (not recommended but should help for less powerful devices)
Added option to change the out of bounds behaviour for volumes (cull the entire volume instead of clamping to nearest cell)
Show error message when invalid renderers are detected
Many smaller quality of life changes
Additional documentation
# 1.0.1
FIXED: Compile error in Unity 2020
Frustum Culling Visualization
Improved bake performance
Improved volume resizing
Allow more Downsample+Merge iterations
Improved transparency support
Improved documentation
Small tweaks
# 1.0.0
Initial release