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

Re: [Public WebGL] y-orientation for texImage2D from HTML elements






On Fri, Dec 7, 2012 at 3:25 PM, Mark Callow <callow.mark@artspark.co.jp> wrote:

On 2012/12/07 13:33, Kenneth Russell wrote:
On Thu, Dec 6, 2012 at 7:32 PM, Mark Callow <callow.mark@artspark.co.jp> wrote:
On 2012/12/07 12:07, Jeff Gilbert wrote:

At the absolute minimum, we need wording in the spec that spells this out:
"We send decoded image data top-row-first into texImage2D, which, per spec,
expects bottom-row-first data. This means that textures uploaded this way
will be upside down compared to textures uploaded via other methods. You can
force HTML element uploads to upload bottom-row-first by using
UNPACK_FLIP_Y_WEBGL=true, but this also flips the order that TypedArray rows
are uploaded."

I have no objection to adding a note to the spec. I would prefer something
along the lines of:

The default texture coordinate system in OpenGL is such that the first row
of data loaded by texImage2D will appear at bottom of the texture. However
the first row of data in HTML elements is the logical top of the image
therefore textures uploaded from HTML elements will appear upside down. One
way of adjusting for this is to set UNPACK_FLIP_Y_WEBGL=true. Then
texImage2D will flip the rows of data as it uploads them.
UNPACK_FLIP_Y_WEBGL affects the operation of texImage2D for all data
sources.
This seems like too much text to me.
http://www.khronos.org/registry/webgl/specs/latest/#PIXEL_STORAGE_PARAMETERS
already defines UNPACK_FLIP_Y_WEBGL very clearly. The only text that
should possibly be added in my opinion is a brief note in
http://www.khronos.org/registry/webgl/specs/latest/#5.14.8 under the
texImage2D and texSubImage2D overloads taking HTML elements and
ImageData, which already reference the above section. I'm still
unconvinced that changes are needed here so if someone could please
propose spec text in this context it would be helpful.
I agree. I had not looked at the spec. before proposing that language. :-[ 

How about adding the following in 5.14.8 after "Uploads the given element or image data to the currently bound WebGLTexture":

Note: HTML elements have an upper left origin. To match the texture image orientation to the element's display in HTML, either set  UNPACK_FLIP_Y_WEBGL=true or change texture coordinate v.


What is texture coordinate "v"? :)

I've never really been successful flipping texture coords in any automated away. It's not just 1-t (or 1-v) because decals often have texture coordinates outside the 0-1 range. Animated texture coords make that even harder.

I guess all that's the long way of saying it might be better for the note to only mention UNPACK_FLIP_Y_WEBGL as in

Note: HTML elements have an upper left origin. To match the texture image orientation to the element's display in HTML call gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true).

 

Regards

    -Mark

--
注意:この電子メールには、株式会社エイチアイの機密情報が含まれている場合が有ります。正式なメール受信者では無い場合はメール複製、 再配信または情報の使用を固く禁じております。エラー、手違いでこのメールを受け取られましたら削除を行い配信者にご連絡をお願いいたし ます.

NOTE: This electronic mail message may contain confidential and privileged information from HI Corporation. If you are not the intended recipient, any disclosure, photocopying, distribution or use of the contents of the received information is prohibited. If you have received this e-mail in error, please notify the sender immediately and permanently delete this message and all related copies.