-
Notifications
You must be signed in to change notification settings - Fork 3.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Optimum step size and lighting for cylinder- and ellipsoid-shaped voxels #11875
Merged
Merged
Changes from all commits
Commits
Show all changes
29 commits
Select commit
Hold shift + click to select a range
d298ab9
Decouple voxel coordinate conversion in shader
0600138
WIP: construct Jacobian in convertUvToEllipsoid
a9cc927
Fix bugs in voxel Jacobian, add QC
b71fc87
Use Jacobian to compute voxel size along ray
e2089ca
Return voxel Jacobian from coordinate conversion
37e211a
WIP: use jacobian to compute normal
901d4e2
Fix Jacobian-based voxel normal
73e025c
Use Jacobian to compute variable step size
e30bc68
Tweak step for ellipsoid voxels
42a5ab2
Merge branch 'main' into voxel-jacobian
bde7b96
Clean up ellipsoid voxel coordinate conversions
fbec093
Compare voxel and clipping plane normals for ellipsoids
49b61c8
Extend Jacobian approach to cylinder voxel steps and normals
68601dd
Use Jacobian approach for box voxel steps and normals
c0bb296
Simplify box voxel shape intersection
ce3844e
Clean up BOX voxel intersections
0c9b55d
Remove test variable from voxel fragment struct
9713110
Adjust voxel step size calculation
b3b64e3
Precompute value for ellipsoid voxel coordinate conversions
deccd88
Merge branch 'voxel-ellipsoid-math' into voxel-jacobian
474d3ea
Remove unused approximate voxel step size
b2d01c9
Avoid accumulating small errors in voxel raymarching
c7b8c0d
Clean up voxel ray marching and step calculation
b9711ca
Merge branch 'voxel-ellipsoid-math' into voxel-jacobian
2d82d76
Remove unused define from voxel shaders
88ac4b6
Update CHANGES.md
b4769e6
PR feedback
8d58f01
Avoid zero step size on voxel boundary
12d9a52
Restrict voxel step size at far side of shape
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This
evoluteScale
used to be computed in single precision on the shader, in thenearestPointOnEllipse
function inconvertUvToEllipsoid.glsl
. It is the difference of two very similar values, so it is safer to compute it in double precision on the CPU to avoid subtractive cancellation.