Tessellation of 4×4 Bezier Patches for the Intel Pentium III Processor

In this article, Ronen Zohar contributes his technique for Tessellation of 4×4 Bezier Patches. This technique allows us to leverage higher order surface models (keeping data sets small). Since most hardware is triangle (or even quad) based, the tessellation is a required preprocessing step to feeding the pipeline.

Optimizations Conrner: An optimized matrix library in C++

The last article was very low level as it took even microarchitectural features into consideration. This article, we go right back up to a higher level to look at using SSE for matrix operations. The earliest definition of SSE was four-wide SIMD floating point (single precision) and is well suited for many 3D rendering operations (especially geometry).

The Optimized Matrix Library in C++ was contributed by Zvi Devir and was able to fully leverage the SIMD extensions on the Pentium III (and beyond) processor using C++.

Optimizations Corner Revisited

Looking way back (1999-2000), I helped edit a brief Optimization’s Corner as part of Gamasutra magazine. I will review a few of the ideas and summarize what they are about. This is not a reposting of the articles – you can find them already published in Gamasutra – rather it’s just a review of what was going on at the time.

The first article in the series was a short article I wrote regarding how size of primitives affect 3D graphics performance. I thought I was really clever by giving the article such a provacative title:

Optimizations Corner: Sorry, But Size Does Count! (gee, isn’t that clever?) Well, one of the main points of this article was the fact that data optimization is often more important than code optimization. Too often programmers spend a lot of time optimizing their code. They are starting already in the final stages of optimization (i.e. code) and have skipped algorithmic and data optimizations stages. Why optimize code that might not be used? While the performance data presented in the article is for software rendering (and on a bit of an older Pentium III archtecture), it is still true today that optimizations must start at a higher level. In this case, insuring that the data modeling was preprocessed correctly had a huge impact on performance.

More reviews are on the way – stay tuned…