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

Re: [Public WebGL] Retrieving number of texture channels



On Mon, Feb 22, 2010 at 11:50 AM, Johannes Behr
<johannes.behr@igd.fraunhofer.de> wrote:
> Hi,
>
>>>
>>> is there already a possibility to retrieve the number of present texture
>>> channels (intensity, luminance-alpha, rgb or rgba texture) in WebGL?
>>>
>>> Because according to the X3D lighting model a material's diffuse color
>>> modulates the color of the texture in case of a one or two channel texture,
>>> which we need to know for implementing this correctly in X3DOM. If instead
>>> the texture has three or four channels (the typical case), the color of the
>>> texture is used as the diffuse color.
>>> You can find an example demonstrating this issue here:
>>> http://x3dom.org/x3dom/example/x3dom_imageChannels.xhtml
>>
>> Unfortunately OpenGL ES seems to have dropped the
>> glGetTexLevelParameter query, which is needed to query the texture's
>> internal format, so WebGL doesn't currently contain it.
>>
>> We could probably emulate this call in WebGL implementations on top of
>> OpenGL ES by tracking the internal format used when the texture was
>> uploaded. In the short term, doing so in your library would be your
>> best workaround.
>
> But how should we track it in x3dom? AFAIK is there now method
> to ask a HTML image for some internal type or number of channels.

How are you uploading the image data to WebGL? At least in the WebKit
WebGL implementation, currently all HTMLImages are uploaded as either
RGB or RGBA textures, depending on whether they have an alpha channel.
For example, we do not special case grayscale images as luminance
textures, and I don't know whether any of the supported image formats
handle two-channel images.

If you want better control over which channels you want in the
texture, you will currently need to upload the texture data as a
WebGLUnsignedByteArray, in which case you have explicit control over
the internal format.

-Ken

> best regards
> johannes
>
>
>>
>> However, there must have been a reason this call was dropped from
>> OpenGL ES. I suspect the reason is that glGetTexImage was removed, and
>> texture rectangle textures aren't supported, so the need to query the
>> texture's width, height and internal format is significantly reduced.
>>
>> I am not sure we should add this API into WebGL and diverge from
>> OpenGL ES. Other opinions?
>>
>> -Ken
>>
>>> Regards
>>> Yvonne
>>>
>>>
>>> --
>>> Yvonne Jung
>>> Fraunhofer-IGD    | Tel.: ++49-6151-155-290
>>> Fraunhoferstr. 5  | Fax.: ++49-6151-155-196
>>> 64283 Darmstadt   | email: yvonne.jung@igd.fraunhofer.de
>>> Germany           | http://www.igd.fhg.de/igd-a4
>>> -----------------------------------------------------------
>>> You are currently subscribe to public_webgl@khronos.org.
>>> To unsubscribe, send an email to majordomo@khronos.org with
>>> the following command in the body of your email:
>>>
>>>
>
> --------
> Dr.-Ing. Johannes Behr  tel: +49-6151-155-510
> Fraunhoferstr. 5                        fax: +49-6151-155-196
> D-64283 Darmstadt               skype: johannesbehr
> Germany                         web: www.igd.fhg.de/www/igd-a4/
>
>

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