4 ms·
I was very glad to find this page earlier this week, after scratching my head while implementing an isometric renderer for a client. I had assumed it would be a
by dtf 10y ago
I was very glad to find this page earlier this week, after scratching my head while implementing an isometric renderer for a client. I had assumed it would be a simple back-to-front order, but this page and a few others pointed out that the partial ordering required to 1) use an intersection test to build disjoint sets of confused objects, 2) use a pairwise order test to determine inter-object dependencies, 3 ) use a topological sort to resolve the ultimate drawing order.
This method was implemented in some fantastic 1980s computer games, and the developer had named their technique "Filmation". Here's a discussion of that system, plus a demo of the rendering bug caused by not bothering to break dependency cycles as discussed in the main article:
http://bannalia.blogspot.co.uk/2008/02/filmation-math.html http://bannalia.blogspot.co.uk/2008/02/filmation-math.html
(also I just found another with a load more details on the Filmation games: http://retrospec.sgn.net/users/nwalker/filmation/ http://retrospec.sgn.net/users/nwalker/filmation/)
- ndr 10y agoI'm still reading through the article, but can you give an example of why rendering all the blocks ordered[0] by (min x, min y, min z) lexicographically doesn't work[1]? I thought the sophistications is necessary for performance only, i.e. not drawing anything that doesn't appear in the final result. [0] Assuming (0, 0, 0) it's in the middle at the top of the screen. [1] Assuming this is what you meant by "simple back-to-front".