Blender Low-spec 3D (Very low-poly mesh + low-res texture)
I'm far from an expert on this, but here's a few things I've picked up along the way:
First of all you want to set it up so you can view your textures with nearest-neighbor filtering in the 3D View.
In User Preferences -> System:
- Uncheck Mipmaps
- Set Anisotropic Filtering to Off
Note: This is stored (rather terribly in my opinion) only in the startup blend file so you cannot specify it per material, per object or even per blend file. So if you want to make it stick you have to save this to your startup file.
You generally want to do all shading in the texture rather than relying on dynamic lights.
In Properties -> Material buttons -> Shading:
- Check Shadeless
Triangles are good, even necessary! You have to triangulate non-planar quads so you can control the split direction in order to get the cleanest texture interpolation.
Every poly counts and quad flow doesn't (beyond convenience when modeling) so there's no need for wasteful quad loops.
Non-manifold geometry is cool, and intersecting geometry is cool, so no need to throw away heaps of polys connecting pieces of the mesh or using a solid piece when just a double-sided quad will do.
Laying out the UVs
Turn on pixel snapping
In UV/Image Editor -> UVs menu:
- Check Snap to Pixels
Because you use such low-res textures individual texels can be quite significant so texel scale and texture distortion can be far more evident.
Try to match the shape of the UV poly closely to that of the mesh poly in order to minimize distortion.
Try to keep texel scale as close as possible throughout the layout so it doesn't look inconsistant on the model.
Rectangular islands can pack together more easily than more exotic shapes.
Because you're using nearest-neighbour filtering you don't need any margin so you can pack the islands right against each other.
I generally rough out the texture in projection paint, then open up the texture in my pixel editor for proper pixeling.
Rendering the image
The easiest thing to do is OpenGL render active viewport (camera icon on the 3D View header) which will give you just what you see in the 3D View (at the render size, plus any antialiasing specified in the render settings).
Let me know if there's anything else to add.