[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 4:31 PM, Georg Kolling <Georg.Kolling@imgtec.com> wrote:

In my opinion the fault here lies with the GL specification which incorrectly applies a physical orientation to an abstract coordinate space.


In reality TexImage2D accepts pixel data in “origin-first, S-major (S-increasing, T-increasing)” order. The first pixel passed, at the memory address given, is taken to be at (or near) the texture space origin. Each row of pixels form a line along the positive S axis, and subsequent rows are located at increasing T.

Physical orientation has no meaning in an abstract coordinate space such as texture space. Positive T direction is neither “up” nor “down” (or left-right, front-back, north-south, you get the idea).

If you take the description above, i.e. “origin-first” it immediately becomes clear that if you want to preserve the origin location, HTML elements with their origin in the top-left corner should be passed to TexImage2D top-left corner first.



When you render to a texture the origin is bottm/left not top/left. If you're serious about origin preservation such as not to end up with cases where there is no right UV set anymore or you render things upside down variably, you upload with origin bottom/left not top/left. Alternatively you fix glViewport, glScissors, FBOs, to have origin top/left such that you'll not have to render things upside down and can apply one set of UV coords regardless.