Comments (3)
After today's WG discussion, this is what I would propose:
material
behaves normally as a 2-sided material like it does now- If the front/back material extension is present, then sided materials kick in if either or both
materialFront
ormaterialBack
are present and are used instead ofmaterial
materialFront
andmaterialBack
behave where viewing the surface from the front or back uses the respective material, and remains true for any effect that may "see" the surface (e.g. shadow rays)- If only one of
materialFront
ormaterialBack
are present, then the side without a material behaves as-if the material is 100% transparent - Non-normative: it is recommended for applications to always set
material
for compability with devices which do not implement the sided materials extension - Non-normative: face culling (front or back) should be expressed by omitting one of the two material sides so implementations do not have to inspect or evaluate materials (i.e. samplers could be used here to achieve 100% transparency, but that is not the most efficient way to express/implement face culling)
from anari-docs.
@johguenther There was reasonable consensus on today's call with the formulation of the extension listed above. Unless you have any other dissenting opinions, we can change the status to ready for proposal
. I'm planning to implement it anyway in VisRTX to get some initial experience.
from anari-docs.
I would really like to not intertwine the extension "backface culling" with the feature to have two different (solid) materials front and back. Just focusing on the latter, that request can be solved by e.g. keeping the material
mandatory and optionally add a materialBack
(or materialInside
) parameter plus stating that "handling of transparency is implementation defined" (or stronger defining that material are treated opaque). The "Physically Based" material already implicitly treats a surface as inside/outside via properties ior
and attenuation. This has the benefit that more implementations can support this extension. For example, backface culling is hard to impossible to implement for photonmapping, or BiDir path tracing.
materialFront and materialBack behave where viewing the surface from the front or back uses the respective material, and remains true for any effect that may "see" the surface (e.g. shadow rays)
There is no defined direction for shadow rays (from light to surface or vice versa).
from anari-docs.
Related Issues (20)
- Per-instance materials HOT 5
- Uniform geometry attributes
- The double use of primitiveID HOT 1
- Incorrect table caption in section 5.10.5. (Transform sampler) HOT 1
- Define implicit iso-surface Geometry
- The ANARI_KHR_GEOMETRY_GLYPH extension for glyphs/oriented shapes HOT 3
- Device target spec version property
- Massive spatial fields HOT 3
- Move strided arrays to a separate extension
- Add stride for mapped direct array parameters
- Add colormap sampler
- Combine transferFunction1D color + opacity arrays HOT 1
- Confusing description of transform sampler HOT 1
- Unclear/missing description of primitive sampler HOT 1
- depth of field own extension?
- Generate latest spec via GitHub actions
- Sampler Transform Offset
- Combine `intensityDistribution` and `intensity` for lights? HOT 2
- Add anariUnsetAllParameters() API function HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from anari-docs.