A few days ago I posted the artwork above on several social media sites, and it was well received. However it also resulted in several inquiries as to how I made the materials for the gifts and the ornaments. The usual method would be to create a separate material for each colour of light, each colour of glass bulb, and especially for each design of wrapping paper. This is a lot of work, and is entirely unnecessary.
The reason it is not necessary is a great feature in Blender Cycles called "Random Input". Not many people realize that this option exists, but it can be very powerful for doing scenes like this that require multiple copies of an object, with each having a slightly different colour or design. For that reason, I am providing a short tutorial on this method. It is however aimed at Blender users with some experience, and as such I will skip over a lot of details on mixing materials and choosing between different shaders. Let us begin.
1. Create your base material in Blender Cycles. Add in all of the different shaders and textures that you require, choosing one colour/image map as an example to fine tune the parameters.
2. Now comes that randomization. Move the colour input or texture node away from the rest of the material, so that you have enough room to work with it. Use Shift+D to duplicate the input for each possible colour/texture you will want in your materials. Ideally you should use powers of two to make the math simpler (ie 2,4,8,16 different colours or textures)
3. Use Shift+A to add an Input/Object Info node to the material. Move it to the left of the node editor.
4. Add a Mix node between the base colour/texture and the rest of the material, and connect one of the other colour/texture options to the second input of the mix node.
5. Use Shift+A to add a Math node, and select the Greater Than option. Connect the Random output of the Object Info node to the first input of the Math node, and set the second slider to a value of 0.5. Connect the output of the Math node to the Fac input on the Mix node. Now every copy that you make of the object attached to the material will randomly be assigned one of the two colours/textures.
NOTE: Setting the second input of the Math node to 0.5 gives both options an equal probability of being selected, but this can be adjusted to suit your needs. The slider represents the probability that the second material will be selected. Alternatively, the Random input can be attached to the second input on the Math node and then the first slider will represent the probability that the first material is selected.