[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Pixel Location in 3D Space?



Mike C. Fletcher wrote:

* textures are mapped linearly across a triangle o All polygons can be reduced to triangles during tessellation

Thanks for your reply.

I just thought of a way to convert polygons to triangles, but didn't know what it was called. I understand how this is done.

         o The corner of each triangle has a texture coordinate, again,
           often generated during tessellation

Yes - I can extract these from the UV-mapped object.

         o For any point on the surface of the triangle, the pixel
           displayed is a linear blending of the texture coordinates of
           the 3 points of the triangle, you'll find an equation in the
           OpenGL spec for how that math works

Ah, there's the point I don't get. Do you have a link to the spot in the spec where this is discussed?


         o So, for each pixel
               + for each tessellated triangle
                     # for imagewidth in texture coordinate triangle width:
                           * for imageheight in texture coordinate
                             triangle height:
                                 o test if
                                   imagewidth+pixel,imageheight+pixel
                                   is within coordinate triangle
                                       + if it is:
                                             # take a linear blend of
                                               the 3D points of the
                                               triangle with the
                                               weights for the texture
                                               coordinates

That 'linear blend of the 3d points of the triangle with the weights for the texture coordinates' is the bit that's balking me. I can see how this loop would work, I just don't know the algorithm for assigning an XYZ point to the pixel.


Thanks for any additional hints you can lend me!

--Kamilche