-
-
Notifications
You must be signed in to change notification settings - Fork 382
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
Add VolumeMapper multi component using multiple image data #3157
Merged
Conversation
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
These functions used a `getInput` method that doesn't exist It is not a breaking change as these functions instantly crash when called
The ImageSlice actor already used a more concise code. Do the same for the base Actor and and Volume actor.
The prop3D has three children that were redefining `getBounds` in the same way. Move the definition of `getBounds` in the prop3D. Update typescript accordingly.
BREAKING CHANGE: Move vtkVolumeMapper's properties related to rendering in vtkVolumeProperty. Add a clear error message for these widely used methods. This is part of the MultiVolumeMapper feature.
This work is part of the MultiVolumeMapper feature Fix the getVolumes function which didn't return an array
Instead of comparing a big state that take all actor properties into account, compare the mtime of the actor as it takes properties into account
Support multiple images as input Uniform styling of fragment shader Fix resource sharing core object for volume mapper scalars Many shader bugs are fixed, often linked to wrong coordinate system. Fix normal computation in shader. BREAKING CHANGE: the volume mapper fragment shader is very different. This can cause shader replacements to break. refactor: Use the right matrices in volume FS shader
The normals have been fixed in the shader, hence the difference Also the sample distance is not computed in index space anymore This explains some differences
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
See #3132
Volume mapper now support up to 4 inputs, each representing a component.
This PR contains a very big refactor that opens possibilities for multi volume handling.
To add multiple components using multiple image data:
Use addInputData to add multiple image data to the volume mapper
Use setProperty(volumeProperty, n) to also add volume properties per component
The first volume property will be used for all rendering properties except preferSizeOverAccuracy and interpolationType.
BREAKING CHANGE:
Some properties have been moved from the volume mapper to the volume property, the following methods have been moved:
'getAnisotropy',
'getComputeNormalFromOpacity',
'getFilterMode',
'getFilterModeAsString',
'getGlobalIlluminationReach',
'getIpScalarRange',
'getIpScalarRangeByReference',
'getLAOKernelRadius',
'getLAOKernelSize',
'getLocalAmbientOcclusion',
'getPreferSizeOverAccuracy',
'getVolumetricScatteringBlending',
'setAnisotropy',
'setAverageIPScalarRange',
'setComputeNormalFromOpacity',
'setFilterMode',
'setFilterModeToNormalized',
'setFilterModeToOff',
'setFilterModeToRaw',
'setGlobalIlluminationReach',
'setIpScalarRange',
'setIpScalarRangeFrom',
'setLAOKernelRadius',
'setLAOKernelSize',
'setLocalAmbientOcclusion',
'setPreferSizeOverAccuracy',
'setVolumetricScatteringBlending'