Oct 11 2007
Behind Fez : Trixels (and why we don’t just say voxels)
A follow-up with much greater detail to this post can be found here.
Alright, here’s a couple of explainations about the rendering technology behind Fez, what we call trixels.
Some people on deviantART and the TIGS blog post have pointed out how these are pretty much just voxels, but with a trendy name. As the lead programmer, I beg to differ… a bit.
First, everything is rendered 3D, at all times. The 2D views are just orthographic (a.k.a. isometric) views of the world from a direction or another. Since the Z component disappears, the character considers the whole world as 2D and can go from very far objects to very close objects without distinction.
Each visible pixel-art tile that you see while playing the game in 2D view is part of a 3D cube, which we call a trile. Each trile is a 16×16x16 volume which is formed of 4096 potential trixels. Obviously, not all trixels are rendered, else it would be incredibly slow… so only the border trixels are considered. But in the data storage, it’s basically a 3D presence array which tells the renderer if a trixel is present/on, or absent/off.
Up to now, I could’ve called them voxels and it wouldn’t have made any difference… but when it comes to rendering, we want every 2D side of the trile to look like believable pixel art, so it needs to be made of smaller cubes. Standard voxel triangulation is complicated because it wants to look as close to the initial (curved, organic) shape as possible… but we don’t! We want that pixelated, 8-bit look.
So we make assumptions. And that allows very intuitive polygon reduction and culling algorithms, allowing pretty good detail on these triles.
As for the texturing, cubemaps are used, which links trixels to pixels even more. Each pixel of the cubemap (so each visible 2D pixel) ends up as trixel of the trile.
So there you have it. Trixels are voxels, but with some special properties, a special (simpler) triangulation algorithm, and in a pretty special game.
The pretty pictures :
1st : Pretty ugly trile with sculpted trixels in “fezzer”, the game content editor.
2nd : Wireframe version of that trile, computed in realtime; notice how little polygons are needed and used.
3rd : A scene, rendered with the game engine.
pixelated 16^3 little carved cubes you say… nice…
Wow, that’s beautiful!
Anything like a playable demo any time soon?
the project is amazing…
I was pissed that Crush was only going to be available for the PSP, so I really want to try this. When will it be available?
Can’t wait to give this a shot. It was great meeting you at the party on Saturday (I was the guy with the dog). Looking forward to seeing what you come up with next!
You guys know that you have to open this up to the game hackers now, don’t you? Even if you have to charge a tiny bit for the engine or editor, keeping the lock on it will make that little “powered by trixels” note in the preview seem like just pretentiousness.
[...] trixel thing is just really something to see in action. « Game of the Month specials. Points – video [...]
[...]
. За технологията и други подобни има дискусии тук и тук. These icons link to social bookmarking sites where readers can share and discover new [...]
[...] should probably check the first post I made about trixels to get the basic idea [...]
[...] say. People who count peas and know it better all the time, just go over to read the articles: Part one, part [...]
trixel work in XNA or only c++?
[...] 3D-pixlar verkligen fått en uppsving. Det lovande indiespelet Fez använder en liknande teknik (trixels), samtidigt som 3D Dot Game Heroes charmar en hel spelvärld med sin visuella stil som delas med [...]
@Elvis : It’s XNA / C#, but it won’t be released as an engine/toolset… it’s just the underlying technology for development of our game Fez.