Refactor: optimize ShadowUtility and reduce object allocations #2481
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Refactor: Optimize Shadow Utility & Enhance Javadoc
This PR introduces significant improvements to the
ShadowUtil
class, focusing on performance optimization, code refinement, and comprehensive Javadoc documentation.Key changes include:
Vector3f
and other temporary objects, especially within performance-critical loops in methods likeupdateFrustumPoints
andcomputeBoundForPoints
, by leveragingTempVars
. This aims to reduce garbage collection overhead and improve runtime performance.OccludersExtractor
: TheOccludersExtractor
inner class has been enhanced for better clarity and self-containment. Its constructor now explicitly handles all necessary state, making it more robust and easier to use.OccludersExtractor
class. This improves code readability and maintainability for future development.These changes collectively make the
ShadowUtil
class more efficient, maintainable, and easier to understand for anyone working with shadow mapping in the engine, directly benefiting the performance ofLightShadowRenderer
andLightShadowFilter