Skip to content

Commit 19e6cb8

Browse files
committed
feat(anari): add anari support
1 parent 160a463 commit 19e6cb8

8 files changed

Lines changed: 48 additions & 1 deletion

File tree

.pre-commit-config.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ repos:
88
- repo: https://github.com/pre-commit/pre-commit-hooks
99
rev: "v5.0.0"
1010
hooks:
11-
- id: check-added-large-files
1211
- id: check-case-conflict
1312
- id: check-merge-conflict
1413
- id: check-symlinks

src/pan3d/explorers/contour.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,11 @@ def _setup_vtk(self, pipeline=None):
112112
self.widget.EnabledOn()
113113
self.widget.InteractiveOff()
114114

115+
if self.anari:
116+
from pan3d.utils import anari
117+
118+
anari.setup(self.renderer)
119+
115120
# -------------------------------------------------------------------------
116121
# UI
117122
# -------------------------------------------------------------------------

src/pan3d/explorers/globe.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,11 @@ def _setup_vtk(self, pipeline=None):
101101
self.widget.EnabledOn()
102102
self.widget.InteractiveOff()
103103

104+
if self.anari:
105+
from pan3d.utils import anari
106+
107+
anari.setup(self.renderer)
108+
104109
# -------------------------------------------------------------------------
105110
# UI
106111
# -------------------------------------------------------------------------

src/pan3d/explorers/slicer.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,11 @@ def _setup_vtk(self, pipeline=None):
244244
self.widget.EnabledOn()
245245
self.widget.InteractiveOff()
246246

247+
if self.anari:
248+
from pan3d.utils import anari
249+
250+
anari.setup(self.renderer)
251+
247252
# -------------------------------------------------------------------------
248253
# GUI definition
249254
# -------------------------------------------------------------------------

src/pan3d/utils/anari.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
def setup(renderer):
2+
try:
3+
from vtkmodules import vtkRenderingAnari
4+
except ImportError:
5+
return
6+
7+
anariPass = vtkRenderingAnari.vtkAnariPass()
8+
renderer.SetPass(anariPass)
9+
10+
anariDevice = anariPass.GetAnariDevice()
11+
anariDevice.SetupAnariDeviceFromLibrary("environment", "default", False)
12+
13+
anariRenderer = anariPass.GetAnariRenderer()
14+
anariRenderer.SetSubtype("raycast")
15+
anariRenderer.SetParameterf("ambientRadiance", 0.8)
16+
17+
# VisRTX specific settings
18+
# anariRenderer.SetParameterf("lightFalloff", 0.5)
19+
anariRenderer.SetParameterb("denoise", True)
20+
anariRenderer.SetParameteri("pixelSamples", 10)
21+
# anariRenderer.SetParameteri("ambientSamples", 5)

src/pan3d/utils/common.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ def __init__(
3232
- `--xarray-url`: Provide URL to xarray dataset
3333
- `--wasm`: Use WASM for local rendering
3434
- `--vtkjs`: Use vtk.js for local rendering
35+
- `--anari`: Use anari for remote rendering
3536
"""
3637
super().__init__(server, client_type="vue3")
3738

@@ -62,11 +63,17 @@ def __init__(
6263
help="Use vtk.js for local rendering",
6364
action="store_true",
6465
)
66+
rendering.add_argument(
67+
"--anari",
68+
help="Use anari for remote rendering",
69+
action="store_true",
70+
)
6571

6672
# CLI
6773
args, _ = self.server.cli.parse_known_args()
6874
# Local rendering
6975
self.local_rendering = local_rendering
76+
self.anari = args.anari
7077
if args.wasm:
7178
self.local_rendering = "wasm"
7279
if args.vtkjs:
537 KB
Loading

src/pan3d/viewers/preview.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,11 @@ def _setup_vtk(self, pipeline=None):
6969
self.widget.EnabledOn()
7070
self.widget.InteractiveOff()
7171

72+
if self.anari:
73+
from pan3d.utils import anari
74+
75+
anari.setup(self.renderer)
76+
7277
# -------------------------------------------------------------------------
7378
# UI
7479
# -------------------------------------------------------------------------

0 commit comments

Comments
 (0)