I studied biology and always had a specific interest in Arthropods (Spiders, Millipedes, Crustaceans and Insects). In an organism that is to be studied extensively, a few general rules apply for selecting it as a specimen. One is availability. The desert locust can be purchased anywhere and I was determined that in this project I do everything myself and in Open Source programs. So I bought two grasshoppers, and dissected one of them, taquíng pictures of the outer body parts for reference and texture painting.
Don't be shy about using point and shoot cameras for the texture pictures, their small focal length is perfect for avoiding depth of field blur. Just make sure your object doesn't fill the entire frame, because of the vignetting effect.
It is always a good idea to take the pictures yourself and take them from the same specimen (object). I was really happy to see that the top view aligned perfectly with the side and bottom view in the texture paint, I didn't have to correct any offsets or seams. This is something you can control beforehand if you take the pictures yourself.

The locust swarm-1.jpg

The actual modelling part

Starting the Object was pretty straight forward, I loaded my reference images and started with my method of choice: Box modelling. So I tooque a cube and kept adding edge loops along the side as well as transversally until I had enough detail to carve the grooves along the Body. I found that in Arthropods 6 – 8 vértices around the legs is a good number depending on the polycount you're going for.

Saving yourself some work

Of course I used a mirror modifier for the start, but there is more worque you can save yourself if you thinque ahead and do a little planning before the actual modelling. I had to learn that the hard way, by starting over quite a few times with past projects, but I did learn from the failures as well.
So if you analyze the Locust's body parts you'll see it has – more or less – 2 kinds of legs, the shorter two pairs at the front and the long jumping legs. So the short leg only needs to be modelled once, then you can rig it and afterwards join both the legs with the body and the rig with the main armature. I found this to be a very elegant method. Before you do that make sure to give the bones – and with that the vertex groups – distinguishable names.
I just used the biological terms for the segments of the legs. E.g. Femur of the first left leg would be Fe_I.L. The .L is another important thing. If you name your bones with .L or .R at the end, Blender will be able to flip the names (in Edit mode: W -> flip names).
If you duplicate and mirror yourbones, the duplicates will be named e.g. Fe_I.L.001. If you choose W -> flip names Blender will automatically replace the .L.001 with .R in the bone names.
This way you can quickly mirror your armature without having to rename allthe bones yourself. This is especially handy for Characters with more than 4 extremities.
So before I joined the legs and the armatures with the main Objects (CRTL + J) I did the entire rig, including IK and weight painting for one leg,duplicated it and saved myself a big.

Temporarily use modifiers in the modelling process

While looking at the legs I noticed a lot of spikes along the Tibia, especially on the jumping legs. I couldn't solve that problem with normal maps, because the spikes actually stand out from the topology of the leg, but I didn't feel like modelling every spike. Luckily I was already doing the legs separately, so I added a circle of eight vértices (SHIFT + A -> add Mesh -> circle, F6 to edit the vértices count), extruded it and modelled two spikes, extruding two of the side faces. I added an array (Fig. 2) to that. Make sure you enable "Merge" and that your top and bottom vértices actually do merge. Once you're happy, apply the modifier and enable the add-on "loop-tools" in the user preferences (CRTL + AL T + U) then you can bridge (W -> loop tools -> bridge) when you have two loops with the same amount of vértices selected. This way you can easily connect the spikes to the beginning of the leg.

The locust swarm-2.jpg

There are a couple of great tutorials out there for UV unwrapping and texture painting in Blender, so all I am going to say is make sure to use GIMP or a similar software to remove any specularities from your pictures. Otherwise they will interfere with the lighting of your renders.

Finishing the model: Materials

When you're using scanline renderers as opposed to physically correct renderers translucency is not very accurate. Y ou can fake it by manipulating the bak value of the SSS but that affects your entire model and I found it to ignore where the light is coming from. Of course there is a slíder for translucency, but after playing around with it for a while all I found it to do is show shadows that get cast on the backside of the model to be seen by the camera.
So I used material nodes. You don't see many tutorials about material nodes, even though they are incredibly useful.

The locust swarm-3.jpg

They are básically the same as Render nodes, just remember to take into account that every node you add will react according to the lighting, the shadow and the camera position etc. of your Object. So by using the original UV layout of my Locust I painted the areas where I wanted the SSS material to appear (Fig. 3) between gray and blak depending on how translucent I wanted the legs to be in that particular area. I assigned this grayscale map to a shadeless material and used it as a factor to mix the two materials together.

The particle simulation

For the swarm I joined all my Objects (head, thorax, body with legs, inner and outer wings) together so that the particle simulation would only have to calculate the positions of one Object per particle. I used three offset flight cycles so the locusts’ flying wouldn't be uniform (CRTL + G with the three locusts selected).

The locust swarm-4.jpg

In the particles settings under rendering select: "Group" and "Pik Random". Then I used 3 curve guides (Fig. 4) to make the locusts fly around the camera. The final shot had 500 locusts swarming the camera.