Thus far we've talked about designing a user interface: the visual language that tells users what they can do, the elements of the language (nouns and verbs), the way these things contribute to consistency and discoverability and how they can be used to create a user interface that seems... inevitable. Simple. Invisible. Where this attention... Continue Reading →
Building a 3D Graphics Pipeline on an Arduino, Part 5
One of the advantages of our design is that we can rapidly port our 3D drawing code to another platform. In fact, we could port our code off the Arduino entirely and move it to a different microprocessor or even to your desktop computer. All we have to do is to alter how we initialize... Continue Reading →
Building a 3D Graphics Pipeline on an Arduino, Part 4
We have all the pieces. Let's put them together, shall we? With the last article we had a clipping algorithm which could clip lines so that only the visible lines are displayed. Now let's put the whole thing together. Some Math in Code. On our second article we introduced the concept of Homogeneous Coordinates. This... Continue Reading →
Building a 3D Graphics Pipeline on an Arduino, Part 3
Now let's talk clipping: the process of making sure we don't write a line that's not visible on the screen. We're so used to having clipping done for us that sometimes we can forget that clipping is not something that "just happens." When we write a line to the screen what we're really doing, at... Continue Reading →
Building a 3D Graphics Pipeline on an Arduino, Part 2
Let's talk coordinate systems. Yes, I understand that this will involve that most dreaded of four letter words, math. I promise I'll be gentle, and I'll try my best to make this as easy to follow as possible. Some of this may be a little basic; feel free to skip ahead if you already know... Continue Reading →
Building a 3D Graphics Pipeline on an Arduino, Part 1
This is a series of articles I've intended to write showing the creation of a basic 3D graphics pipeline on an Arduino. By the end of this series hopefully you'll have a good understanding of basic 3D graphics, including coordinate transformations, rendering and perspective rendering. Things you need to follow along. Of course, if you... Continue Reading →