Poor Man’s Multitexturing – Procedural Palettes

Enable color decoding: Active channel : r g b a When doing multi texturing, most of the time you end up sampling multiple textures of the same size at the same coordinate (s,t). On some hardware, texture fetches are a major bottleneck. Instead of sampling 4 textures, we store one …

Continue reading

Special Purpose Data Structures : DynamicPackedContainer

MEngine’s internal data allocation policy heavily relies on static buffers. The DynamicPackedContainer is one of the containers used in MEngine. This container handles allocations in a static backing buffer, with the following features: Multiple object types (with different size) can coexist in the same container Ability to add metadata to …

Continue reading

Design Considerations for Mobile Game Engine Development

MEngine is build around a set of general design principles in order to accommodate for the specificities of mobile devices. This post is about the different design choices made during development. Renderer agnostic design The engine is designed to run without any active renderer. This design decision comes from the …

Continue reading

Packing Terrain Vertex Normal on a Byte

Normal Packing algorithms are getting a lot of interest recently with the generalization of deferred rendering. A good reference can be found here. But most of these algorithms are designed to efficiently pack/unpack from the fragment stage. They takes their input from the entire normalized 3D space an output to …

Continue reading

GLSL part 1

This article is the first in a series of tutorials aiming at writing a rather complete game engine for embedded devices. What’s on the menu ? If all goes well, at the end of this tutorial, you will be able to render the following 3D scene: If you are among …

Continue reading