As you say, that really only works if you never have overlapping sprites in the same layer - for example, you never let a character walk behind some trees. That's pretty limiting aesthetically. It would be nice if there was a way to just give sprites a floating point "z" value (not actually an OpenGL coordinate) that determines rendering order, rather than the discrete ordered groups we have to use currently. Then in an orthographic view you just implement a map y -> z. But maybe sorting by a floating point every frame is not something that can be done efficiently in OpenGL?
On Monday, December 7, 2015 at 11:04:23 PM UTC-6, swiftcoder wrote: > > Traditionally one just organizes one's tiles such that they are rendered > from back-to-front, with either alpha test or alpha blending, depending on > how your sprites were designed to be combined. > > The depth buffer is primarily useful when individual meshes may be > self-intersecting, two meshes mutually overlapping, or other such exotic > situation that naturally arises in 3D. Rendering in 2D, the depth buffer is > usually overkill, and plain old sorting is both cheaper and more reliable. > > It also greatly simplifies tile management of one can arrange them in > layers. Say, an opaque terrain layer, an alpha-tested layer for trees or > environmental props, and an alpha-blended layer for characters and npcs... > -- You received this message because you are subscribed to the Google Groups "pyglet-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/pyglet-users. For more options, visit https://groups.google.com/d/optout.
