[X3D-Public] Fwd: Re: [X3D] X3D HTML5 meeting discussions: Declarative 3D interest group at W3C

Philipp Slusallek slusallek at cs.uni-saarland.de
Mon Dec 27 00:56:32 PST 2010


Dear John, all,

There are two main issues raised by what you suggest:

One is that of representing the 3D object: An implicit form is the most
natural one but hard to evaluate with anything other than a ray tracer
and even there these representations are prone to numerical issues at
certain regions (they can contain complex and extended singularities
that are hard to deal with numerically). But there has been good work by
Aaron Knoll, Ulf Labsik and others that have brought us quite a bit
closer to effectively dealing with these implicit forms in a ray tracer.

However, if we really want to prescribe the use of a ray tracer for
rendering our declarative format is another question completely.

Instead of using the implicit form directly we could tesselate it into a
mesh first and render that. This is much closer to how graphics has
worked in the past. However, tesselation of general implicit functions
is in itself a hard problem. Particularly, as you want to animate the
parameters of the implicit function, you will eventually encounter all
of the hard cases certainly (by coincidence, they are often the most
interesting looking, anyway :-( ). This means that you would have to do
the tesselation within the browser itself or be willing to do this on
the some server and download the results continuously.

So we are essentially left with either relying on ray tracing or
accepting tesselation, which brings us to more common ground with
traditional rendering approaches.


This leaves the second issue -- appearance: You apparently want
reflection and refraction which is hard to make work without ray tracing
in general environments like yours, where one would expect lots of self
reflection and self refraction within the surface. While you can get
some gross approximation with OpenGL shadow and reflection maps, they
will not do the right thing.

While you may or may not expect a physically correct image for your
work, this is a really important question to consider for a general
declarative format. In contrast to most uses of graphics in the past, we
cannot expect the millions of Web developers and other lay users (from a
graphics perspective) to understand the details of how to set up complex
reflection mapping and such (they won't -- and most probably should not
-- even know what we are talking about). Yet, most of them would -- with
good reason -- expect to be able to render everyday scene the way they
appear naturally. Unfortunately, this does include correct reflections,
refractions, global illumination, and some other common effects.

Note that shading languages are one way to formulate such optical
properties. However, we still do not have a common shading language that
we can build on (AnySL developed by us goes a long way in that direction
but is not the final solution either, though). GLSL, HLSL, and CG are
all intimately tied to rasterization for rendering and do not at all
solve the reflection and refraction issues. There is still quite some
work ahead of us here -- I fear that we cannot wiggle around these
issues any more as we have done in the past, if we really want a solid
and lasting solution. I would argue that this has been the Achilles heel
of declarative formats in the past

Designing a declarative format such that we can take advantage of fast
OpenGL or rasterization where it applies, while not tying the format
down to the strong limitations of those approaches will be one of the
main challenges that we are facing.


Best regards,

	Philipp

Am 23.12.2010 22:18, schrieb John Carlson:
> I'm describing the model declaratively -- as a function (I've already described it procedurally as a mesh in the past with X3D and ECMAScript--and other technologies--including my hand written function based raytracer)--There are things I've left out like the ranges of phi and theta that are used...this is important when C and D are non-integer.  I am trying to take my model, and inject it into an environment or virtual world (say I inject it through a URL that returns the MathML)--and in that virtual world, assign stylesheet parameters (say I want to make the model reflective or refractive--or other materials).  The equation is in spherical coordinates (this is the 3D part).  I have had people use this equation in FVRML with fixed A, B, C and D (they've even done it as a function of time as well I think).  Ideally, I'd like to drag and drop this animation model (or the URL) into a world, assign style, and render and publish.  And I want this done on Mac OS X.
> 
> Obviously, I could write all the infrastructure/framework myself--I'm more of an application programmer than a framework or infrastructure programmer.
> 
> Here would be an example of the final result (minus the animation): http://coderextreme.net/roses/trans9.jpg  This was done with NVIDIA HDR code on Windows plus code which generated a mesh which I provided.  I don't have an NVIDIA card right now. I have tried the JOGL version of the HDR code, and it doesn't really have any reflectiivity or refraction, that I can tell.  Perhaps I should port the HDR code to WebGL.  I don't know the capabilities of WebGL, so I couldn't tell you if I could get the same results.
> 
> I'd like to do this in web browser so it's easily distributed...
> 
> Do you want more definition?
> 
> John
> 
> On Dec 23, 2010, at 11:05 AM, Chris Marrin wrote:
> 
>>
>> On Dec 23, 2010, at 10:52 AM, John Carlson wrote:
>>
>>>
>>> On Dec 22, 2010, at 7:12 PM, John Carlson wrote:
>>> Say I have the equation: r = A + B * cos (C * theta) * cos (D * phi), where A, B, C and D vary over time randomly (probably described declaratively in MathML).  I want this to be rendered in a variety of environments in WebKit, Mozilla, Opera or Chrome (Mac OS X). Would the XG work with sort of declarative problem?
>>
>> What you want to do here is to take any declarative 3D out of the example. How would you want to render this in any declarative form, say SVG or even plain HTML? Your problem is very undefined. The declarative form doesn't solve problems. It merely gives you a language in which to express those solutions. 
>>
>> MathML doesn't understand what a problem means, even if it can express it in some visually appealing way. You can take that MathML DOM, extract the interesting parts and graph it, or animate it, or even use it as the tensors in a physical simulation.
>>
>> Collada is very good at expressing physical properties and surfaces. But it's up to the user of that model to drop it on the floor and have it appear and behave as those properties specify.
>>
>> -----
>> ~Chris
>> chris at marrin.com
>>
> 
> 
> _______________________________________________
> X3D-Public mailing list
> X3D-Public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org




More information about the X3D-Public mailing list