Capturing textures is a relatively easy and straightforward process, once it has been done a few times and provided one has the right equipment. There are, however, quite a few details in the process that might easily be overlooked and in most cases this can result in poor texture acquisition. Here you will find a complete and detailed guide with all the Dos and Don'ts that you need to keep in mind when photographing textures.
Before you go out and start taking your own textures, it's quite important to understand how are they going to be used.
Most of the times, textures are shot to be used in 3D packages and for re-creating real world materials. In render engines, material characteristics are split and most of them can be controlled with texture maps or textures. Color (called diffuse or albedo texture), surface roughness (called roughness or glossiness texture) and surface displacement are a few examples of these. Apart from the texture that dictates the objects' colour, most of the other textures are "technical" - they help the algorithm of the rendering engine calculate the physical properties of a surface/material. In that sense, in the real world we can only see the colour or diffuse of a material and our eyes are not capable of perceiving any of the technical information needed to re-create a material in 3D.
Primarily, photography doesn't record more than what our eyes can see. However, depending on the technique used to photograph a texture, we can extract more information than we can simply see.
This is how textures have been captured since the dawn of CGI and is still the most used method. Why? It's simple and it's fast. However, it's not the best by far (and by far I mean very far).
Pros:
Simple - it doesn't require fiddling with much equipment/technical details. A camera with manual exposure control can do the trick for you.
Fast - because it's so simple it's also the fastest way possible to photograph textures.
Cheap - again, as it doesn't require a lot of equipment, it can also be quite cheap.
Cons:
Not enough information - even using the best equipment doesn't produce enough information. At best, one can get a fairly decent diffuse texture. This texture will then require further processing to be usable in a render engine and all other textures necessary for re-creating the physical properties of a material will be derived from this diffuse texture. Even though there are quite a few automated software solutions that can extract different textures only from a diffuse texture, the results don't look very convincing when rendered.
More or less limited to rougher surfaces - smoother surfaces gave clear reflections and no matter what the lighting is, these reflections will appear in the diffuse texture. Removing them can sometimes be done manually in an image editing software, however, the results are most of the times quite bad. That's why this method is more reliable for rough surfaces.
Even though it might seem that this technique is very unreliable, good results can also be achieved. It really depends on how well the texture is captured and on the artist who is processing the texture (usually it's best when the same person does the acquisition and processing) but it requires a lot of experience and very good understanding of the material that one is dealing with. After all, this is how things have been done for quite a long time.
When light hits a surface some of it is directly reflected back towards the camera/eye and some is absorbed. The absorbed light (diffuse light) is then emitted back filtered through the surface and dictates the colour or the diffuse of the surface. The light that is directly reflected (specular light), on the other hand, dictates the specular of the surface.
When we capture textures, ultimately we want to extract the diffuse (the pure colour). When using the plain and simple method mentioned above we get both the diffuse and specular in one texture and it's simply impossible to separate them. That's why the plain and simple method is more appropriate for rough surfaces. However, rough surfaces also reflect specular light. You might not be able to see your own reflection when you stand in front of a brick wall the same way you would when you look into a mirror, however that doesn't mean that it's not there - it's just very diffused. Even though this might seem negligible when we talk about rough surfaces versus smooth surfaces, separating the diffuse from the specular is as important.
The cool thing is that light can be polarized using a filter. You can learn more about it from wikipedia. Additionally, specular light retains its incoming polarization but diffuse light doesn't. Since diffuse light is re-transmitted in random directions with random polarization, we can say that it is unpolarized.
So what is Cross Polarization and how does it work?
Cross Polarization is a technique we use to selectively filter out light in order to control highlights or more precisely specular reflections. In other words, we can use it in order to remove all of the specular reflections off a surface (filter the specular light) and end up with a clean diffuse albedo texture. This video explains the whole concept quite well:
Essentially, this technique gives us better and more information. We can get a pure diffuse texture and if we extract the specular information, we can use it to create glossiness/roughness textures.
Pros:
More precise and complete texture information - you can capture/extract diffuse and glossiness textures.
Great for extracting diffuse textures from smooth/glossy surfaces as it filters out the specular reflections.
A tad more expensive than the previous method but still very cheap and affordable.
Cons:
Hard to extract glossiness textures from glossy surfaces. More appropriate for rough surfaces.
A bit more time consuming as you need to use a tripod and you need to capture two images
A few more things to keep in mind when dealing with polarization.
Still not a full solution - you cannot extract true relief information with this method and no matter how elaborate the lighting setup is, you will have to manually remove lighting information from textures.
This is the most advanced and current method for texture acquisition. It can potentially scan all needed textures for re-creating believable materials. This method, however, requires much more equipment and time. Solutions vary from DIY setups to fully automated machines sold for thousands of gold coins. Texture scanning is a little bit different than the previously illustrated methods and requires it's own article. Here are the pros and cons:
Pros:
Depending on the setup, the device can automatically capture diffuse, glossiness, displacement textures which are enough for re-creating believable materials.
Automation can make this process quite fast and painless.
There are both static and portable solutions.
Cons:
Most solutions on the market have limits on surface size.
Pre-build solutions are crazy expensive.
DIY solutions require a serious amount of R&D but can be adapted to different types of workflows.
Basic understanding of how materials are built in 3D helps in capturing better textures
Shooting with the simplest technique possible, if done well, can produce good but still limited results
Cross Polarization is the best technique for shooting textures if you don't have a dedicated texture scanning setup
We can capture textures with a smartphone - amazing isn't it? However, when we are striving for the highest quality possible, we also need to use the best tools possible for the job. Here is a comprehensive list of the bare minimum of equipment needed for capturing high-quality textures:
Camera: A full-frame DSLR is a must. The minimum resolution of the camera must be a least 21 megapixels - this means that we can effectively capture 4K textures.
Lens: A prime lens is advisable as it delivers better image sharpness and is bound to have less defects. Good focal lengths lie between 24-50mm (35mm is a nice mid-point). Wider focal lengths introduce too much distortion especially on surfaces with more depth, while longer focal lengths require the camera to be far from the surface and thus can be problematic when you have to shoot in tighter spaces.
Flash: Lighting is very important - we wan't the flattest lighting possible for our textures. While flashes are great for rough surfaces they can be a bit problematic when shooting shiny surfaces unless Cross Polarization is used. It's quite important to diffuse the flash in order to avoid sharp shadows on deeper surfaces.
Tripod: When using a flash for lighting, the light is strong enough to shoot handheld. A tripod is necessary if you don't have a flash and can occasionally shoot in dark environments or you want to use Cross Polarization and extract both diffuse and specular textures (as this requires taking two shots from the exact same location). In any case, stabilizing your camera with a tripod will inevitably help producing better results.
Remote trigger (if using a tripod): As said, if using a tripod you would also want not to touch the camera between shots as you might shake it and introduce blurring or even move it slightly which will be enough for two shots not to match.
ColorChecker: One of the most important tools of the texture artist. A ColorChecker is used to achieve accurate colour representation as well as accurate brightness of the surface. As an example you can check the Color Checker Passport by X-Rite.
This is the additional equipment if you would like to use Cross Polarization on your textures:
Circular polarizing filter for the lens: Highest quality filter possible. The filter will reduce some of the incoming light and will darken images, therefore strong lighting/a tripod are quite essential when using a polarizing filter on your camera so you can shoot with the best settings possible. Lower quality filters tend to produce strong colour tints that can make white balancing a bit harder.
Linear polarizing film for the light source.
Camera settings:
Shoot in RAW: This is one of the most important things that you need to remember. It's pointless to have a very expensive and powerful car and only drive it in first gear. Shoot in RAW, always! JPG conversion doesn't leave any room for image manipulation, renders poor white balance, introduces artifacts and embeds all camera corrections into the image - it is unusable for high quality work. If you're using shared equipment, always be sure to check if someone hasn't switched your cameras image quality to JPG.
Shoot in Manual: Always shoot in manual mode, never let the camera dictate the rules, you are the master. Here is some advice on the settings:
Aperture: Different lenses show their best performance at different apertures. The thing we want to focus on here is image sharpness. It's well known, that the smaller the aperture, the sharper the image. However, apertures above F11 tend to emphasize lens diffraction a bit too much, resulting worse quality images. We are shooting flat surfaces here, so it's quite safe to shoot between F5.6-8 - this is where most lenses perform best in terms if image sharpness at the focus point (when our surface is relatively flat, naturally everything will be in focus even if we use F1.8). Bigger apertures can actually produce even better results, however if we have a surface with a bit more depth (like a brick wall) we can get slight blurring in the grout for example if we have focused on the front of the bricks. Adapt to the situation.
Shutter Speed: There is a simple rule for shutter speed when shooting handheld - it must be reciprocal to the focal length you're using. So if you're using 50mm lens, your shutter speed should not go below 1/50 and if you shoot 300mm lens, your shutter speed shouldn't go below 1/300. This mentioned, even if you're using a wider lens, i.e. 24 mm, you should avoid going below 1/50. Following this rule will avoid getting blurry pictures from camera shake. When you shoot on a tripod, still try to avoid long exposure times as there is always the chance that the camera might move (if you move around it on a wooden floor for example, if you're outside and there is some wind, etc.) and you can also get long exposure noise, which occurs when the sensor gets warm after a few seconds.
ISO: The lowest possible, the better. Depending on the quality of the camera, in some cases you can go to 1600 ISO and still have decent results. However, if you need to shoot anything above the lowest possible (50-100 depending on the camera), it means that you simply need to invest in a better lighting solution.
Set camera profile to Faithful: You don't want any added contrast and saturation adjustments to your images.
Set white balance to Custom: Photograph your ColorCheckers' grey target to set your white balance in camera. Even though you're shooting in RAW and you can adjust white balance in post, it's been proven that setting the white balance as close as possible in camera prior to shooting will produce better results.
Tip: When shooting on a tripod, consider disabling automatic stabilization on your lens. Some lenses can create artificial shake while desperately trying to stabilize the camera, when in fact it has already been stabilized by the tripod.
Tip: When shooting on a tripod, consider enabling Mirror Lock-Up. The mirror of the camera goes up just before taking a shot. This can introduce a vibration if using an unstable tripod/tripod head. In such cases you can enable Mirror Lock-Up function on the camera and wait 1-2 seconds after the mirror has moved up to take the actual shot. This can be used in conjunction with the 2 second self-timer to automate the process.
Shooting advice:
Use the build-in camera Histogram: Make a test shot of the surface to set up appropriate exposure. Check the histogram to make sure that no highlights/shadows will get clipped.
Aim your camera perpendicular to the surface you're shooting. Also try to make sure that logical lines/patterns on the surface are aligned with the frame borders. For example, if you have some wooden planks, grout lines should run parallel to either top/bottom or left/right borders of the image.
Use Auto Focus whenever possible. Be mindful, however, that auto focus is not almighty and can struggle a lot with surfaces that do not have contrast in their diffuse (for example white cloth). In such cases, if you have a tripod, switch to manual focus. Use the display to zoom in on the surface as much as possible and then adjust your focus manually. This will give you the best results even if the surface has good enough detail for auto focus to work.
Lighting is one of the most important factors that needs to be taken into account when capturing textures. There are two main scenarios when it comes to lighting - controlled or uncontrolled conditions.
1. Controlled conditions - this means we have a controllable lighting solution available. This can be a strobe light, a speedlight or a ring flash. In any case, these lights should have stronger intensity than the environment lighting surrounding our subject for them to be effective. If they are not, we can try to block environment lighting, for example by putting cardboard sheets in front of the windows or around our subject (if shot outside for example), turning off interior lighting. etc. It is important that our lighting will be as soft as possible so we can limit shadows on our surface. Use flash diffusers or softboxes for your lights.
If we are using only one light, it should be coming behind the camera (usually this will be a flash light) as any other position will introduce a gradient over the surface. This can produce problems when we are dealing with glossy surfaces as the reflection of the light will be directly visible in the middle of the surface. In such cases we either need to use Cross Polarization or to use a dual-light setup.
If we use two lights, we can position them on both sides of the surface at an angle which can vary depending on the lights and setup. The ideal scenario is using two large softboxes - they will still be reflected in the surface, but provided they are put as close as possible to the camera lens (there only needs to be a small gap between them to fit the camera lens through), the reflection will be quite uniform and there won't be any hot spots. Another option is to move them far enough so they don't produce direct reflections on the surface (more appropriate if using two flashes). The setup will vary based on the situation and the available equipment.
2. Uncontrolled conditions - these are all other conditions that we don't have dedicated lighting at our disposal. For shooting outdoors, we must aim for overcast weather. For shooting indoors we should avoid any directional/gradient lighting (light coming from the side of the surface). We cannot always move the surface, so we can use something white to bounce off light and equalize the lighting as much as possible.
As simple as it may seem, it's important to know how to use the ColorChecker:
Settings. Be sure to photograph the ColorChecker with the exact same camera settings as you're using for the final capture of your texture.
Size. For highest profile quality the ColorChecker should comprise at least 10% of a 10 megapixel image. If it is too small within the image, the color patches may not contain enough pixels to sample accurately and profile quality may suffer.
Rotation. The ColorChecker may be rotated within the image, but it should be placed parallel to both the plane of the lens and the surface. Try not to tilt the target towards or away from the camera.
Distortion. Avoid placing the ColorChecker in images where its shape will be distorted. If it is necessary to place it in an image containing distortion, such as a shot taken with a fisheye lens, place the ColorChecker in the least distorted part of the image. Do not cover or shade patches, and make sure the chart doesn’t fill the frame. Some lenses may vignette around the edges, so it may be helpful to bracket the target.
Focus. The ColorChecker should be in focus. If the focus is too soft the auto-location feature may have difficulty recognizing the edges of the target.
Exposure. The ColorChecker should be properly exposed in the image. If color channels are clipped you will not be able to make a profile with the image. When creating a profile, correct exposure in the camera is necessary. Using your software to correct bad exposure will not make it usable.
Lighting. The lighting of the ColorChecker should match the lighting of the subject of the image. This is especially useful for unusual and mixed light sources. Even lighting is important. When you set up the target, make sure there are not any strong shadows or reflections on it.
Position. The ColorChecker should be as close as possible and as parallel as possible to the surface you're photographing. If you're photographing something lying on the ground, just lay the Checker on top of it. If you're shooting a wall, just hold the checker in front of it, parallel to the surface. The important factor here, as mentioned, is having the exact same light hitting your ColorChecker and the surface that you will be photographing.
Know what you're working with. If you're using an X-Rite ColorChecker, for example, these have two versions - one manufactured before and one after Nov 2014. The plastic they are made of is different and therefore the colors of the targets are different. You should know which one you have, so you know how to handle the processing of the photographs later on.
Tip. Only the Color Targets part of the ColorChecker are important for the texture artist - the other part is used for "creative enhancements".
Tip. Correct exposure is not necessary for the Grey Card reference shot.
Positioning Options
Self-Standing
The Creative Enhancement and Classic targets can be positioned inline with each other. Use the back page to stand the targets and adjust the angle with respect to the surface and camera.
Self-Standing v.2
The Passport case can be articulated so that either target is exactly facing the lens. When positioning the target, be careful to not rest patches straight down on a surface where they could become soiled.
Horizontal
When shooting at 90º to the subject is required, use the back page to support the target
Hand Holding
The passport is small and rigid enough to be easily held by its edges in the scene in plane with the camera. Be careful to not cover any of the patches with your fingers.
For a few more tips and information, you can check out the ColorChecker User Manual.
If we want to capture high quality textures we must also be mindful of resolution. As mentioned, if we use a 21 megapixel camera, the most we can get out of it is a 4K texture.
Let's take a 200x200cm brick wall as an example. If we only take one shot of this wall, we will get a 200x200cm texture at 4K. We then use this texture in our scene and have a close-up shot of a setting close to the wall. The visible part of the wall is 50x50cm but our final render is at 6K resolution. This means that we will effectively try to enlarge our texture 6x times which will produce very poor results.
This is why we need to limit ourselves. A good texture size that we should be aiming for lies between 25cm and 50cm square. Anything below 25cm is very detailed but generally unneeded as we won't get so close in 99% of the times and anything above 50cm will be low-res for close-ups.
So all of this is fine when we have repetitive patterns that are between 25-50cm. What happens, however, if we have a pattern that repeats every 200cm? What happens if we have that brick wall that has no apparent pattern repetition - if we tile a 50x50cm texture we will notice the repetition immediately?
When we need to photograph bigger textures than 50x50cm we simply need to make multiple shots and stitch them together resulting in a bigger resolution. For the stitching to work nicely we also need to have some overlapping between the individual patches of a texture - this needs to be between 10-20%. Lest's go back to our brick wall and take it as an example. Let's use 20% for the overlapping, which would mean that for every shot taken of a 50x50cm patch we need to move the camera 40cm in either the X or Y axis of the surface. This will result in 5 shots top to bottom/left to right or 25 shots overall. Combining these 25 shots in a single texture will result in a 16K texture instead of the 4K texture we would get if we only take a single shot for the whole surface of 200x200cm.
Having this texture and going back to our brick wall 3D scene. We will still be lacking in resolution - a 50x50cm patch from our wall will be 4K and we will try to render it out at 6K. We will be enlarging it 1.5x times. In fact, enlarging our textures up to 2x times while rendering still produces decent results and no obvious pixelization will be visible. This is why we can get away with only shooting 25 patches at 50x50cm instead of 100 at 25x25cm - it's a good balance between quality, time and precision.
As an additional note: make sure to note down the size of the area you have captured. This will immensely help artists who setup materials as they will have real-world physical size to work with and will result in the closest possible representation of the material. Size is as important for us as is for our clients.
This image can act as a visual representation of how one should approach a multi-patch texture acquisition. One of the most important things is, as mentioned before, for the camera to move parallel to the surface so everything aligns as close as possible when stitching.
For surfaces up to 50x50cm
Step 1. Check camera settings - make sure you're using the correct camera settings, especially if you use shared equipment. Check if image quality is set to RAW, check if camera profile is set to Faithful, put the camera in Manual mode.
Step 2. If you have a dedicated lighting solution, make sure everything is set up correctly. If you do not have one, make sure you choose a place where lighting will fall as evenly as possible on your surface, or make sure that you equalize it by any other means. Check if you have enough power/batteries for your shoot.
Step 3. Set appropriate aperture. Choose between F5.6-F8 depending on surface depth and best camera lens performance.
Step 4.1. Set white balance to Auto. Take a shot of the Grey Reference card of your ColorChecker (try to position it in the center of the frame). Set white balance to Custom and use your Grey Reference to set it up. If you don't have time to set custom WB, use the same WB across all your shots. You can set it to 5600 Kelvin.
Tip: When using Cross Polarization, you will probably have a very good lighting solution which will remove all ambient light. In this case, White Balancing can be done only once per session as lighting conditions will remain the same. Furthermore, you can always keep a photograph of the Grey Reference card with this setup on your memory card, so whenever you are shooting cross polarized photos again, you can use it to get the correct White Balance.
Step 5. Decide on appropriate focal length (if your lens allows) depending on the surface and environment. Does the surface have a lot of depth (brick wall does, cloth usually doesn't)? If yes, go for longer lens. Do you have enough space to go far away from the surface to take a shot? If no, go for wider lens.
Step 6. Position your camera. If you have a tripod make sure it's leveled and camera is attached tightly (camera weight can help unscrew the camera from tripod mounting plate in certain conditions - even the slightest camera move can ruin your shot and you might not even realize it before you're back home). Make sure your camera is aimed perpendicular to the surface.
Step 7. Focus using either auto or manual focus depending on the situation.
Step 8. Adjust exposure. Make a test shot, check out the histogram and adjust the shutter speed until histogram shows no obvious clipping of shadows or highlights. Make sure your ISO is the lowest possible based on your shutter speed.
Step 9 Take the shot.
Step 10 Position your ColorChecker with the Color Reference targets visible parallel to the surface and take a shot.
Tip: Steps 9-10 When using Cross Polarization:
Take one of the shots (either diffuse or specular) - use a trigger remote or at least a self timer in order not to move the camera in between shots. Avoid moving yourself as well.
Position your ColorChecker with the Color Reference targets visible parallel to the surface and take a shot. The ColorChecker must be static - in other words not handheld.
Rotate filter 90° and take another shot of your ColorChecker.
Remove the ColorChecker and take the final shot.
Tip: Make a 5th shot (this shot needs to be made only once per certain lighting setup and camera combination) with the ColorChecker returned in position and removing filters from both the camera and light source. Make sure to lower the exposure as removing the filters will lighten the image (either by lowering the power of your light source or closing the aperture more). This step will help later on for better color calibration.
Step 11. Note down the size of the texture you have just captured.
Step 12. Go trough the shots to make sure everything looks good - there is no motion blur, everything is perfectly in focus, etc. If it's not, start over.
Step 13. You're done. For the next texture you can start over from Step 2.
For surfaces larger than 50x50cm
The same steps are valid with some additions to:
Step 10. Do this step after you have captured all patches. Make sure you position the Color Reference card in the middle of the surface. When using Cross Polarization, you can do the two shots of the ColorChecker either at the start or at the end of the session - again this only needs to be done once per session.
Step 13. For the next patch you can skip Steps 1-5,8,11. As mentioned Step 10 is done at the very end.
Make sure you do not change any of these settings in between taking the shots of the individual patches: focal length, exposure (aperture, shutter speed, ISO) and white balance.
A simple diagram that illustrates the individual steps of the process. Can be handy to have as a cheat sheet when doing texture work.
Shoot in Manual mode for maximum control
Always shoot in RAW for best possible image quality
When shooting textures, the lighting needs to be as flat as possible
Use a ColorChecker for color and luminance calibration
Depending on the texture size, multiple shots might need to be produced and then stitched together