[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Public WebGL] WebGL support for high bit depth rendering & display

While this is an interesting use-case, it is likely quite difficult to retrofit compositing and rendering pipeline to support anything more than 8-bit-per-channel colors. Rendering to a 10-10-10 backbuffer is trivial enough, but getting that to the screen (after passing through all the DOM layout stuff) is not.

That's not to say it's not something to think about, but this is actually likely more complicated to implement than stereoscopic rendering, spec issues aside.


----- Original Message -----
From: "Florian Bösch" <pyalot@gmail.com>
To: "Matt McLin" <mr.mclin@gmail.com>
Cc: "public webgl" <public_webgl@khronos.org>
Sent: Monday, September 17, 2012 9:48:53 AM
Subject: Re: [Public WebGL] WebGL support for high bit depth rendering & display

Is there some OpenGL Desktop extension that covers these formats? Which one? 

On Mon, Sep 17, 2012 at 6:33 PM, Matt McLin < mr.mclin@gmail.com > wrote: 

Hello, I originally posted this e-mail on the webgl dev list here , and it was recommend I ask my questions on this mailing list. 

Diagnostic medical imaging went digital many years ago, for example in radiology. In fields such as digital mammography, it is very common-place for doctors to use a software+hardware+display configuration that supports at least 10-bit grayscale or 30-bit color imaging from acquisition all the way out to the display. In fact, acquisition devices are typically even higher bit depth, as the additional source bits are useful for various image processing before being visualized on the display. 

Undoubtedly there are many other fields that also currently utilize & benefit from more than 8-bits per color channel. 

So, I was surprised when I found out that WebGL is built on the OpenGL ES 2.0 spec, which is extremely limiting in regards to color depth. I'm sure the choice makes sense for a variety of other reasons (e.g., mobile device gfx capabilities), but in fact browsers are also commonly used on computers with graphics capabilities that far exceed ES 2.0. 

I know that the OES_float_texture extension is widely supported, and this partially addresses being able to handle high-bit-depth source images. However, one cannot render into & display results from this texture format at more than 8-bits per color channel, in spite of AMD, nVidia, & others providing 30-bit desktop solutions. 

Has anyone already considered a WebGL extension that would expose a way for clients to request a backbuffer with 10 or more bits per color channel? I suspect this would be quite simple to implement in the browser if people could agree on how to define the extension. I expect that many could benefit from such an extension in the interim years that we await for the advent of WebGL 2.0/ES 3.0. Or perhaps it makes sense to expose the GL_UNSIGNED_INT_2_10_10_10_REV_EXT or GL_EXT_texture_storage extensions in WebGL? 

Speaking of WebGL 2.0, how soon could we expect this to be released (with ES 3.0 features), and to become available in Chromium? End of 2013? 2014? 2015? 

In terms of aiming towards a timely solution, does it make sense to push for adoption of such an extension within Khronos, or as a browser-specific extension (I see that several already exist in Chromium)? 

Thanks, Matt 

You are currently subscribed to public_webgl@khronos.org.
To unsubscribe, send an email to majordomo@khronos.org with
the following command in the body of your email:
unsubscribe public_webgl