RenderKit / ospray

An Open, Scalable, Portable, Ray Tracing Based Rendering Engine for High-Fidelity Visualization
http://ospray.org
Apache License 2.0
1k stars 182 forks source link

SciVis volume lighting? #335

Closed StasJ closed 4 years ago

StasJ commented 5 years ago

I am using the SciVis renderer and I cannot get a volume to be affected by lighting. The documentation does not appear to specify whether this is possible. I have tried all of the options that I assumed might be related to this. Is this supported?

StasJ commented 5 years ago

In another issue it was stated

all the "nice" looking volume renders on the ospray.org website are the "scivis" renderer with some fancy options turned on

What are these options?

carsonbrownlee commented 5 years ago

volumes are only affected by lighting in a few ways. If you create an isosurface or enable gradient shading on the volume, you will get some surface shading from lights. If you enable shadows and/or AO on the renderer, the volume should cast shadows on other surfaces.

StasJ commented 5 years ago

I somehow missed that parameter, thank you.

It appears that there is a bug with lighting for an unstructured volume. Below is the same volume loaded as a regular structured volume and as an unstructured volume. The black void appears on the +XYZ faces of the volume and does not correspond with the lighting direction. The same result appears with ambient occlusion and shadows both enabled and disabled.

Unstructured

out

Structured

structured

The above examples are recorded with an ambient light and a directional light. The effect is less pronounced but still visible with ambient light only:

ambient

carsonbrownlee commented 5 years ago

Does this artifact show up when gradient shading is disabled?

StasJ commented 5 years ago

No

carsonbrownlee commented 5 years ago

It would appear to be an edge case on the computeGradient function for unstructured grids. @timrowley?

timrowley commented 5 years ago

Are you using a release version of ospray, or the current devel tree? What unstructured cell type are you using? Thanks.

StasJ commented 5 years ago

I am using the most recent release version and hexahedral cells.

jeffamstutz commented 5 years ago

Hi Stas,

You've found some of the rough edges in our scivis renderer. We've been working for a while on v2.0, which I hope addresses a number of the issues that you have found. In general, the users which have been leveraging our unstructured/AMR volumes haven't been using the more advanced lighting features in the scivis renderer, which explains why there's such a gap in features right now.

For this issue in particular, a number of the lighting features in the scivis renderer were added because the pathtracer never supported volumes. We have some initial support for volumes in the pathtracer in 2.0 already (on the devel branch), and will continue to improve it as time/versions march on. Part of 2.0 is using our upcoming new OpenVKL library, which gives us a more robust way to iterate over ray segments of interest on all volume types (which OSPRay did not do outside of structured volumes).

We are still a couple of weeks away from v2.0 being finished (and OpenVKL being released), but having a look at the API changes on devel may be useful for catching all of the improvements we are making moving forward. Please let us know if you have any questions about the new API changes, which we will also post documentation about when we make the official release.

jeffamstutz commented 4 years ago

All advanced lighting features for volumes are implemented in the pathtracer, thus these issues are now obsolete.