Minimum bounding circle (sphere) for a triangle (tetrahedron)

In Chapter 4 of RTCD I talked about, amongst other things, how to compute the minimum bounding sphere for a set of points. The algorithm I described (Welzl’s algorithm, in Section 4.3.5) requires a pair of functions to return the bounding sphere for three as well as four points. As I didn’t cover these primitive functions in the book, I thought I’d here explain how to compute both. Read the rest of this entry »

Formulas that play { chess, checkers, whatever } optimally

It was reported today that Jonathan Schaeffer and his Games Group team at University of Alberta have solved checkers. Assuming perfect play, the game is a draw. (The result is actually a few months old, but American news media were busy reporting about freeway chases and other important events and didn’t notice until the result was published in Science.) Additional information is available from the University of Alberta website. Read the rest of this entry »

Vector expressions as matrices, using outer products

Reading through Peter Shirley’s graphics blog I found an old post asking about what the outer product means operationally and what value it may have in graphics. This is actually a pretty interesting topic, and I thought I’d try to explain what the outer product means to me and the value I see it having. Read the rest of this entry »

Converting RGB to LogLuv in a fragment shader

There are a few places on the net that I visit pretty regularly. One such place is the forums at Beyond3D where several cool developers hang around and post good stuff. Some of my favourite Beyond3D contributors are DeanA (Dean Ashton, a colleague over at SCEE ATG, with a never-updated blog), and DeanoC (Dean Calver) and nAo (Marco Salvi) who happen to be lead and graphics programmers, respectively, on Heavenly Sword over at Ninja Theory. All fellow PS3 programmers in other words. Read the rest of this entry »

Plücker coordinates considered harmful!

I admit, I have lots of pet peeves; although I like to think of it not as much as having pet peeves but having a heightened sense of what’s right and what’s wrong! Something that gets my spider sense of wrongness tingling is seeing research papers use Plücker coordinates. (Computer graphics and computational geometry papers predominantly, because those are the fields I follow.) Why the sense of wrongness? Because these days, increasingly more people in these fields are grasping for Plücker coordinates to solve problems that would have been both more elegantly and more efficiently solved with simpler, more traditional tools. Let me explain myself. Read the rest of this entry »

Playtesting and design guidelines for a (racing) game

Going through some old folders on my computer I came across a design guidelines document I wrote up towards the end of the development of Kinetica. The document had some interesting points, so I thought I’d share it here. Plus it gives me the opportunity to stress how important playtesting is to the quality of a game.

So, “Kinetica? What’s that?” I hear people say. Well, before we did God of War and God of War II over at SCEA Santa Monica, we did a little-known racing game for the PlayStation 2 by the name of Kinetica. Read the rest of this entry »