Home About Media Download Pre-Order Chat Blog Forum

RSS Subscribe   


New technology: composite texture (2010/03/06)

It has been some time since last blog activity, more than it should be. It has two main reasons. The one is that I've been distracted with unrelated matters more than usual. The second is that I'm working on a new technology for Resistance Force's engine: something I called the composite texture.

Screenshot from the map editor with
low resolution preview texture
Composite Texture Editor - showing
high resolution texture and used layers

When I started working on extending the existing map and adding more details I've very soon ran across a big problem with detail texturing of large areas like terrains. You can either repeat some detail texture over and over (as done for regular "blocky" geometry, often called brushes), but you'll lose control about any details. Or have one big texture for the whole area. But due to memory/speed constraints you can't have really big textures.

Shows how are textures combined in
texture splatting (source)
In other engines there is usually special case for terrains using technique called texture splatting. Instead of one repeating detail texture there are 4 detail textures (like rocks, grass, dirt, ...) in addition to control texture with 4 color channels (red, green, blue and alpha channels), each controlling how much any given detail texture is visible. This works great, but it's often limited with maximum of 4 detail textures (the reason is that it can be easily done in single pass using one control texture) and it's available only for regular grid terrains.

Another interesting technique is MegaTexture developed by id Software. It allows you to have one really big texture for all geometry. The big texture is heavily compressed and stored on disk and dynamically streamed from it depending on what area player sees. The advantages are big: in engine it has practically constant performance characteristics so artists can go wild and touch any individual pixel they want to without worrying about anything. There are also disadvantages though: hugely increased amount of disk storage needed (even more for editing) and increased workload for artists, both not much indie friendly.

I've taken different approach for Resistance Force with composite texture: basically I took the idea of texture splatting and extended it by removing limit of number of detail textures (layers) and by ability to use it on any mesh, not just regular grid terrains. By having unlimited layers it also opens new possibilities such as placing any number of decals or even touching individual pixels by transforming some detailed area to decal and editing it in graphics editor. This way I have much more freedom when texturing while maintaining minimal disk storage and performance costs.


1. By Unicornkill (2010/03/09 16:01)
Woups, you did it again!

This rocks!!!

I always hated texturing because it is so limited, this will really allow for some cool and easy effects and in general cut down texturing time by...alot.

Keep it up.

2. By Potka (2015/12/04 05:43)
4 years using 4d and I have never seen the texture grid until your dog tags tuiortal.I just use texture tags with C1,R1 ect.This is a cool alternate though.I learned quick tip the other day:Say you have four planes that make a square and you want the four planes to display a single picture and you want to move the planes around and keep that same pic on each one.Put the 4 editable planes in a group put the picture texture on the group, set it to cubic >fit to object then go tags>copy tags to children, viola! the texture will stay on the planes when you move them.Thought I'd share that little nugget.There might be an easier way in Mograph but I don't have it.Thanks again.

3. By Dina (2015/12/14 02:42)
Great tutorial!!! Really heuplfl I have a question for Nick. During the process when you are explaining the After Effects part for compositing, you have mentioned about the lens flare and the colour glow. But in the AE panel, the layers are black solid layers. When i try to do something similar, nothing happens. I am sure i am going wrong at some step, or i might be missing something. Really a beginner into these kind of works, so any help would be appreciated. I hope you can throw some light on this.Cheers! http://gmfyhokkfg.com [url=http://zawndaxylub.com]zawndaxylub[/url] [link=http://fbtvlyocc.com]fbtvlyocc[/link]

Add comment

Confirmation code:
  (type the letters shown in the picture)

Copyright © 2007-2012 ADVEL s.r.o.