Documentation

How to Create Concrete Textures

Focusing on the fundamentals of using Poly tools, this guide will demonstrate how to create concreate textures for use in 3D rendering.

📌 Textures used: Poly Concrete Texture Collection

I’m Victor Gonzalez, a Venezuelan 3D artist specializing in texturing and look development. I have a lot of experience in the 3D animation and visual effects industry, and I’m passionate about computer graphics and technology and their use in storytelling and entertainment.

My ultimate goal is to be a great artist and storyteller with a good sense of production needs, to be versatile enough to move my artistic skills to any software that’s required, and to never stop learning.

In this guide, I’ll be outlining the fundamental steps for using Poly to create high-quality concrete textures, as well as sharing some tips and tricks.

Step 1: Finding Your Reference Images

Before you start, search for images and other examples of concrete textures. This will help you break down the material into small patterns that can be used as elements of the final texture. It will also help you determine the prompts you need to give to Poly’s AI.

📌 Tip: If you’re not sure where to start, think about the story that you want to tell — where the asset would be, whether it’s old or new, what kind of environment it exists in, who interacts with it, and so on. Thinking about this will help you make sense of the weather patterns, color variations, and other elements that help you tell your story.

I’ve gathered three images. The first will work well for determining the seams between panels, as well as cracks and discoloration. The second and third will provide more detail — for instance, the air pockets in the third image.

Image 1: Concrete reference image.

Image 1: Concrete reference image.

Image 2: Concrete reference image.

Image 2: Concrete reference image.

Image 3: Concrete reference image.

Image 3: Concrete reference image.

After collecting all your image references, you’re ready to jump into Poly and use their tools to generate iterations of the concrete texture.

Step 2: Opening the Poly Texture Editor

Image 4: Poly’s welcome screen.

Image 4: Poly’s welcome screen.

When you go to the Poly site, you can click on the Explore The New Poly Editor button or click on the Gallery menu and then select Texture Editor. You can also access the editor by choosing My Library] and then Texture.

Image 5: Select Gallery and then Texture Editor.

Image 5: Select Gallery and then Texture Editor.

Image 6: Select Library and then Texture.

Image 6: Select Library and then Texture.

Below is the Texture Editor’s primary interface. In general, I don't use the Quick Generate tool. I like to follow the next four steps so I have more control over the final result.

Image 7: The Texture Editor’s primary interface.

Image 7: The Texture Editor’s primary interface.

Step 3: Making Patches

Click on the Make Patches icon in the side menu.

Image 8: The Make Patches icon.

Image 8: The Make Patches icon.

I started by adding the word “concrete” And then clicked on Generate Patches. After that, I started adding specific details such as “vertical large thick rectangular pattern” and clicking on Generate Patches again. Repeat this process until you feel satisfied with the results. It’s worth mentioning that for fast iteration, Poly has set the resolution to 512 pixels and gives you four options to pick from.

In my case, after a few tries, I got a result I liked, so I saved the low-res images to use as seed images for further generation. This is an important concept; it allows the software to iterate without losing the global pattern that you previously generated.

First Prompt: “concrete cast in vertical large thick rectangular pattern”

concrete cast in vertical large thick rectangular pattern

Second Prompt: “polish concrete cast in vertical large thick rectangular pattern, low contrast”

📌 Tip: I used image seeding from the previous result in this try, which allowed me to maintain the overall pattern of the texture and work on top of it.

polish concrete cast in vertical large thick rectangular pattern, low contrast

Third Prompt: “polish concrete cast in vertical large thick rectangular pattern, low contrast, vertical construction lines pattern, add gravel rocks coming out”

polish concrete cast in vertical large thick rectangular pattern, low contrast, vertical construction lines pattern, add gravel rocks coming out

📌 Tip: I like to get a first clean texture if possible and then seed the image to add damage on top of it. Alternatively, you can generate multiple iterations and mix them using Photoshop or any image-editing software, and then seed the redesigned image to get closer to the look you’re after.

Fourth Prompt: “polish concrete cast in vertical large thick rectangular pattern, low contrast, vertical construction lines pattern, add gravel rocks coming out, damaged and cracked”

polish concrete cast in vertical large thick rectangular pattern, low contrast, vertical construction lines pattern, add gravel rocks coming out, damaged and cracked

Great! I got an iteration that I really liked. It’s showing potential and character. It has a strong damage pattern that might make a seamless pattern difficult; however, during the next step, the Poly AI will generate extra detail at image edges, and you’ll be able to try different settings to remove features that are interfering with the illusion of seamlessness.

📌 Tip: Before you move on, make sure of the following:

  1. Your texture has a pattern that will be easy to repeat but has enough variation that the repetition will not be easy to spot.
  2. It has a color palette that matches your reference — avoid hue shifting the base color in lookdev; this can be tricky and hard to control without the right masks.
  3. It has enough value and color variation — in other words, enough range to play with in lookdev if necessary.

Step 4: Make Seamless

Creating a seamless effect for your texture can be a key step in the texture creation process. If you are planning to use this texture as tileable, it needs to be able to repeat itself without doing so obviously. Poly is able to utilize AI to achieve this, but you may sometimes find yourself going back to the previous step to find a better patch for a seamless texture.

Image 13: The Make Seamless tool in Poly. The icon is selected on the left side of the screen.

Image 13: The Make Seamless tool in Poly. The icon is selected on the left side of the screen.

Click on the Make Seamless icon located on the left side of the screen to access the Make Seamless tool. By default the slider is set at 80% — I recommend running the default value first and making adjustments based on what you get. If you’re getting artifacts or unwanted patterns, you might need to go back (using the back arrow) and try another value.

📌 Tip: Remember to enable the Seamless Canvas option. Sometimes making a seamless texture can be challenging, but the more you do it, the more you recognize the textures that have the potential to become great tileable textures.

Image 14: The Seamless Canvas option.

Image 14: The Seamless Canvas option.

A general rule of thumb is that the lower the patch scale is, the more content AI will generate around the original patch (50% scale example below). On the other hand, the higher the value is, the more AI will crop from the original patch to make it tileable (150% scale example below). The prompt (optional) section is filled up automatically with your original prompt. AI uses this prompt to generate additional content as it converts existing texture patch to tileable.

Image 15: The Poly sidebar menu interface: Make Seamless - Patch scale 50%.

Image 15: The Poly sidebar menu interface: Make Seamless - Patch scale 50%.

Image 16: Poly sidebar menu interface: Make Seamless - Patch scale 150%.

Image 16: Poly sidebar menu interface: Make Seamless - Patch scale 150%.

It's worth noticing that at this point, it will create a new texture that will be your final color output.

Now that I am happy with the result, I can move into the next step.

Step 5: Upscale Texture

Image 17: Poly sidebar menu interface: Upscale Texture - 2k x 2k.

Image 17: Poly sidebar menu interface: Upscale Texture - 2k x 2k.

Here is where we upscale the texture from 512px to 2k using AI. In general, I like to do 1K first and then upscale to 2k. Once it’s done, you can confirm by looking at the bottom tray located at the bottom of the interface

Image 18: Poly Dock: after upscaling to 2k.

Image 18: Poly Dock: after upscaling to 2k.

Step 6: Generate PBR Maps

As you can see, generating an interesting and seamless texture that meets the needs of your project will take up most of your time. In this step, we will generate the rest of PBR maps: roughness, normal, height, AO, and metalness.

Image 19: Poly sidebar menu interface: Generate PBR Maps

Image 19: Poly sidebar menu interface: Generate PBR Maps

📌 Tip: Poly tends to modify the color if you leave it checked, so I like to uncheck the color (albedo) and generate the rest of the maps.

The right option under Material Type will depend on the effect you’re going for. Often, selecting General gives you a good range. But in this case, I chose Matte, which seems to describe the qualities of concrete. I paid special attention to the height map that has been generated. If you want an extreme height map, you can choose Dramatic, Diverse, or Organic.

📌 Tip: Choosing a material will change your pre-existing set of maps, so if you want to mix and match different types, you’ll have to download one first and then select a new material type, re-generate it, and download it again.

After you’re happy with the generated maps, you can proceed to export the maps using the Export function at the top right of the interface. I usually download both the JPG and EXR files for a richer range.

Using Poly’s AI to Generate Textures

Using Poly’s AI to generate textures is quite fun; with it, you can create incredible details in a short amount of time — not only by using prompts but also by image seeding techniques. Poly gives you a great starting point for conceptualizing texture and shaders for computer graphics. On the other hand, creating or matching an exact reference can be quite challenging. However, through the use of different techniques combined with practice, I believe that this challenge can be overcome.

It’s worth mentioning that the natural derivative product of AI creation can be super helpful in discarding possible directions and narrowing down creative paths. That way, you can spend more time working on exactly the direction you want to go in instead of spending dozens of hours in development and exploration.

I hope you all enjoy this tutorial; I leave you with the renders I did using Poly and Maya/Arnold.

Image 20: Poly Render number 1: final concrete material rendered in Maya/Arnold.

Image 20: Poly Render number 1: final concrete material rendered in Maya/Arnold.

Image 21: Poly concrete PBR Maps, in order from top to bottom: albedo, roughness, displacement, normal, AO.

Image 21: Poly concrete PBR Maps, in order from top to bottom: albedo, roughness, displacement, normal, AO.

Additionally here are some other concrete textures I generated using the technique outlined in this tutorial.

Image 22: Poly Render number 2, final concrete material rendered in Maya/Arnold.

Image 22: Poly Render number 2, final concrete material rendered in Maya/Arnold.

Image 23: Poly Render number 3, final concrete material rendered in Maya/Arnold.

Image 23: Poly Render number 3, final concrete material rendered in Maya/Arnold.

Image 24: Poly Render number 4, final concrete material rendered in Maya/Arnold.

Image 24: Poly Render number 4, final concrete material rendered in Maya/Arnold.