As english is not my first language, I apologize for errors you may notice. Do not hesitate to send me any correction, I will appreciate.
About the image
I had the "Magic Bullet" idea two years ago and it was mainly a texturing exercise and a good opportunity to learn about UV mapping. Well, this is not a very complex scene and this is probably the main difficulty as I noticed that in such a simple environment, the details are probably the key to get a realistic result.
Modelling the box:
There is nothing special for the bullet, just a cylinder and a stretched hemisphere. The back of the bullet should be a bit more elaborated to reproduce the primer. As I will texture the bullet based on an UV map, I’ve defined seams to help during the creation of the UV face layout and to get a much more uniform map. Metal shaders will then be applied over that UV map.
Modelling the plastic containers:
The plastic container should hold 16 bullets, so I started with a single plane and I divided it based on the size of the bullets. I also add the subdivisions needed to split each cell. These splitting areas will be filled and bumped with dotted lines during the texturing.
I used the subsurf modifier to get a smooth round volume and moved up the vertex corresponding to each cell. I also moved the splitting areas a little bit to make them more evident. I finally extruded the mesh to give some thickness to the plastic.
These 2 elements (plastic + metallic sheet) will then be duplicated to create the second container on top of the first one. This container should be modified as two bullets have been extracted from it. Once again, before changing the geometry of the metallic sheet mesh, I generated the UV map. Firstly the 2 empty cells are deformed as if they were pressed to expulse the bullets. Secondly the metallic part corresponding to the opened cells is torn and deformed. As the metallic sheet will be on top and will be the visible part of the container, I applied a fractal subdivision to get a less smooth surface.
Last but not least, I modelled the notice. I added a plane and subdivided it into 8 vertical bands and 2 horizontal bands. Based on this mesh I created the UV map.
And now it’s time to reveal the subject. Thanks to the UV maps I generated previously I can prepare the image textures and create the shaders for:
No need to fill all the faces of the box, I only drew the visible faces. The outside part of the box has 3 textures, the UV colour map, a noise texture to add some grain and a cloud texture to produce some irregularities on the paper surface, both are used as bump textures.
The bullet projectile and the primer are simple glossy grey metal with IOR=20 and a noise texture bump.
The lighting is a single HDRI angular map and nothing else.
Yaf(a)ray provides 4 materials types: glass, glossy, coated glossy and shinydiffuse. I mainly used shinydiffuse for non reflective materials like paper, glass for the transparent plastic and coated glossy for the metal shaders.
For the rendering I used the Revision 175 of Yaf(a)ray. As it is not yet fully integrated with Blender, the parameters should be set in both Blender and Yaf(a)ray. The lights, the materials and the rendering settings should be defined through the Yaf(a)ray script whereas the camera, the image textures (colour and bump) and the HDRI image are defined in the Blender UI.
The Post Processing
I used Photoshop for the post processing; I loaded the 2 rendered images into separate layers. Playing with the eraser over the image rendered with the Path tracing method I let appear the image rendered with the Direct lighting method in the shadowed regions to make them more contrasted. I then created the DOF using the Gaussian Blur filter. Yaf(a)ray, as well as Yafray can produce the DOF, but it increases the rendering time and I had a better control on the DOF during the post processing.