Skip to content
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

ANARI #20303

Open
wants to merge 17 commits into
base: develop
Choose a base branch
from
Open

ANARI #20303

wants to merge 17 commits into from

Conversation

griffin28
Copy link
Contributor

Description

Resolves #18416

Add new surface rendering capability using ANARI. Note, this PR doesn't include the dynamic UI work since the code to support it is currently on VTK's master branch. Talked with Kitware and they said it will be in the VTK 9.5.0 release targeted for the summer 2025.

Type of change

  • [ ] Bug fix
  • New feature
  • Documentation update
  • [ ] Other

How Has This Been Tested?

  1. Open a test dataset in VisIt (e.g., jet.cgns)
  2. Create a Pseudocolor plot of the variable CoefPressure
  3. Open the Rendering options window and select ANARI Rendering and options as shown below.
  4. Click apply and now you're rendering with ANARI!
  5. Deselect ANARI Rendering, apply, and now you're back to VisIt's default rendering.

helide_test

Reminders:

  • Please follow the style guidelines of this project.
  • Please perform a self-review of your code before submitting a PR and asking others to review it.
  • Please assign reviewers (see VisIt's PR procedures for more information).

Checklist:

  • I have commented my code where applicable.
  • I have updated the release notes.
  • I have made corresponding changes to the documentation.
  • [ ] I have added debugging support to my changes.
  • [ ] I have added tests that prove my fix is effective or that my feature works.
  • I have confirmed new and existing unit tests pass locally with my changes.
  • [ ] I have added new baselines for any new tests to the repo.
  • I have NOT made any changes to protocol or public interfaces in an RC branch.

@markcmiller86
Copy link
Member

@griffin28 haven't forgotten. Have a few outstanding PRs to get to. Will likely get to by tomorrow PM.

JustinPrivitera and others added 15 commits March 26, 2025 15:16
Fix calls to bv_ensure_built_or_ready.
Add ensure_built_or_ready_component to test for existence of
individual libs/components.
Modified bv_xcb to use ensure_built_or_ready_component.
* Remove ultrawrapper.

* Remove pyparsing from list of TP downloads.
…hed`. (#20322)

Reason: textChanged is a signal emitted with every keystroke. In most instances we only want the signal when all text has been entered.
There are a few exceptions: QLineEdit with validator attached, or a `search` widget that updates displayed contents as user types. Those instances were not modified.
Fixed issues causing test to fail. Removed associated moab test from skip list.
@griffin28 griffin28 requested a review from biagas March 26, 2025 20:17
@griffin28
Copy link
Contributor Author

griffin28 commented Mar 26, 2025

My apologies @markcmiller86 and @biagas I did a rebase on the latest changes from develop before I pushed my updates. I should've waited until the review was done because now it's showing all of those other commits (137 files changed!!).

@griffin28
Copy link
Contributor Author

griffin28 commented Mar 26, 2025

The first commit will have all the files I've actually touched and the last commit will have the current updates based on @biagas feedback.

@biagas
Copy link
Contributor

biagas commented Mar 26, 2025

I did a rebase on the latest changes from develop

Sometimes a merge-from-develop into the branch works better than a rebase. No worries, it still workable.

Copy link
Member

@markcmiller86 markcmiller86 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@griffin28 I am about 1/2 way through and will push the Submit review button now with a handful of remarks so far. Will finish up next week.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I notice we have one of these for Ospray too. What is driving the need for axis actors for these scenarios...translating camera info to the form needed in the renderer?

@@ -316,12 +315,17 @@ avtViewInfo::SetCameraFromView(vtkCamera *vtkcam) const
vtkcam->SetWindowCenter(2.0*imagePan[0], 2.0*imagePan[1]);
vtkcam->SetFocalDisk(imageZoom);

#ifdef HAVE_ANARI
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This block seems a tad funky...we're testing for anari at compile time but ospray at run time. Does that mean that if VisIt is compiled with ANARI, that ANARI is always on? For ospray, I think it can be enabled and disabled at run time too.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an attributes object. So, I am not sure we support conditionally compiled members here but there are a ton of things related to Anari here that, in theory anyways, should only be there if anari is being used.

I wonder if it makes sense to make an AttributeGroup submember of this object that holds all the anari stuff and that whole subobject is conditionally compil

Copy link
Member

@markcmiller86 markcmiller86 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok @griffin28 I've finished all the files.

@biagas I am wondering about a couple of cases here where the Anari controls, which number around 40, are put at the same level as other, similar controls (RenderingAttributes, VisWindow). On the one hand, this makes perfect sense semantically. On the other hand, I wonder if the right thing to do is create a sub-object of some kind for these to better isolate them to their own pieces.

@biagas
Copy link
Contributor

biagas commented Mar 31, 2025

@biagas I am wondering about a couple of cases here where the Anari controls, which number around 40, are put at the same level as other, similar controls (RenderingAttributes, VisWindow). On the one hand, this makes perfect sense semantically. On the other hand, I wonder if the right thing to do is create a sub-object of some kind for these to better isolate them to their own pieces.

I am not sure what you are questioning/suggesting.

@markcmiller86
Copy link
Member

I am not sure what you are questioning/suggesting.

Repeating the last sentence in my remark... I wonder if the right thing to do is create a sub-object of some kind for these slew of Anari controls cases to better isolate them to their own pieces.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add ANARI 1.0
6 participants