[Free Demo!] PBR textures generator from photo/image

Hi all!

I’m glad to announce that I have been working on a tool to generate PBR textures from photos. All powered by Unreal, but will be distributed as a standalone software. An easy and fast software, and all results shown inside Unreal, so you can get exactly what you see. Being only a “mysterious” early reveal, no more words, but a video (I’m quite happy with the result :o ):

PBR generator guide (the commercial name is still under NDA)

This guide has been made using the demo version of the tool, without the watermark (it’s the only limitation of the Demo version vs the Retail one).

When opening, you will face up some options, like the top-central one, regarding loading a color texture. This texture will be the source one. Clearly defined images and colors, and soft lighting, are always important factors.

After loading a file, one of the common issues you may encounter, is that your texture is “flipped”, depending of the colors of your image. If it happens, you will need to invert the Height map*, checking the corresponding checkbox. In addition, you will probably need to invert the Normals map* too, checking the option (advice: check and uncheck some consecutive times to visually notice if it needs to be inverted or not. Or disable the Color and Heightmap, unchecking those middle-top-right checkboxes to clearly see normals’ “shadows”).

"Flipped" source image

Inverted Height map

Inverted Normals map too

Starting from the beginning of the parameters list, you will find:

  • Sun intensity: to control the intensity of a “sun” light, being able to turn it on/off.

  • Point light intensity: to control the intensity of a “bulb” light, being able to turn it on/off.

  • Point light Z location: to control the height location of the “bulb” light from the red grid plane.

  • Preview quality: to select the quality of the generated textures on the viewport preview. It can be useful to low it if your PC is slow when applying new changes. Anyway, exported textures will be independent from this value.

  • Rotating sun: if Sun intensity is higher than 0, so it’s enabled and lighting, this option will make it rotate over the central point of the scene, so you will be able to see some different lighting situations and angles.

  • Hide origin coordinates grid: if enabled, the red grid plane will be invisible. This plane represents the initial and actual location of the mesh, before applying Tessellation/Displacement*.

  • Preview with: here you can uncheck some checkboxes, to disable Base Color, Height, Normals or Roughness maps on the previewing plane mesh. It can be useful to spot or notice certain atributes or changes.

    Only Color

Only Height

Only Normals

Only Roughness

  • Displacement smoothness: it applies a “blurry” effect over the generated black/white image, as usually made when using Height maps, due to some reasons. You can increase or decrease the blurry effect, to keep more micro-details, or to ignore them.

  • Displacement amount: it controls the intensity of your Tessellation/Displacement, but it’s only for previewing purposes, as the generated Height map will be still the same. It can help you to know which amount value you could apply into your renderer software.

  • Displacement peaks (contrast): it controls the contrast of the Height map so, white areas will become brighter. It can generate a “ceil” effect, when raising white areas to the very top, as pure white will represent the most high points.

  • Displacement flattening: it’s designed to produce a controlled “ceil” effect, like pushing the displaced 3D geometry with another plane that comes from the top, making peaks more flatten.

    Without displacement flattening
    With some displacement flattening applied

  • Displacement origin plane offset: to control the lowest displaced areas. This is useful to keep our “visually displaced” geometry near the “actual” geometry, instead of floating one of them over the other one.

  • Invert HeightMap: if checked, it will invert the generated black/white image.

  • Main Normals intensity: to control the intensity of the main (big) generated Normals. Main Normals are generated based on the Height map options too, to perfectly fit and combine Normals and Heights.

  • Main Normals offset: to control the “length” of generated Normals. Useful to increase or decrease the depth of the effect.

  • Main Normals peaks (contrast): to control the contrast of the relief, as if it was a black/white image, making “higher” areas become even “higher”.

  • Fine Normals smoothness: these Normals bring small relief details onto the surface. Fine Normals are generated independently of the Height map parameters so, here, you can apply a “blurry” amount over the fine Normals

  • Fine Normals intensity: to control the intensity of the fine (small) generated Normals.

  • Fine Normals offset: to control the “length” of generated Normals. Useful to increase or decrease the depth of the effect.

  • Fine Normals peaks (contrast): to control the contrast of the relief, as if it was a black/white image, making “higher” areas become even “higher”.

  • Invert NormalMap: to invert the relief effect, so, casting shadows to one direction or to the opposite one.

  • Roughness intensity: to control the intensity of Roughness effect. It’s the opposite of the known as Glossy. Black (0) areas of the generated B&W texture will represent highly reflective areas, while White (1) areas will be non-reflective areas.

  • Roughness contrast: as a black/white image, this will control the contrast between darker and lighter zones.

  • Output files resolution: to select the (square) resolution to save the generated textures. From 512x512 pixels up to 8192x8192.

  • Output files basename: the base-name or prefix of the generated textures. For example: gen_text

  • Output files suffixes: the suffixes of the generated textures, to be placed after the basename. For example: gen_text_A

And, finally, you will find, at the central-bottom area of the viewport, the Output folder selection, to choose where to find your generated textures, and the Export and Exit buttons. The Export button will directly save the generated textures into the desired folder, but it will ask you for Overwrite if it’s detects an already existing file on that folder with the same name, while the Exit button will ask you to confirm about being sure to exit, when pressed.

What’s that?

  • Base Color map: it’s the source texture or photo you uploaded into the software.

  • Height map: it’s a generated black/white image, to apply displacement onto your 3D model.

  • Normals map: it’s a generated RGB image, to apply relief effects to your surfaces.

  • Roughness map: it’s a generated black/white image, to apply reflective properties to your surfaces.

  • Tessellation/Displacement: it applies real 3D displacement of your mesh and it’s vertices and faces, so it’s like “automatically modelling” your 3D model from a black/white texture information.

  • Normals: it creates the illusion of 3D displacement of your mesh, creating some fake shadows, depending on the light sources locations.

C&C are always welcome! And if you want, as demonstrations, you can post here a highres color texture (better above 2048px or even 4096px) and I will show you how it can look after 1-2 minutes using my software and will share on this post the result, generating those PBR maps for you and for free.

Thank you and best regards!

That’s amazing!!! It looks so simple, overall, yet has deep capabilities. Is it going to be in the marketplace or for free?

Hi @presto423 !

Thank you!!

It’s thoguht to be sold as an independent piece of software, so I’m not sure if Epic could put it into the Marketplace, but I will talk with them to try it, at least as an external link. But the software will be executed as an standalone game, without the need of having installed Unreal, for example.

I’m sharing with all of you, here, a 4k PBR material generated with my tool (and converted to jpg, to be able to upload it into the internet), if you want to try it and even share your result, to confirm that it works well, please (To obtain the same result, you will need to multiply the heightmap by the amount shown in the picture when creating your material: 50):

Link with the four generated maps: Imgur: The magic of the Internet

Thank you and best regards!

Hi!,

Demo is almost coming… so I’m sharing here a little guide about the functioning of the software, with some quick examples (updated the first post with this new info):

PBR generator guide (the commercial name is still under NDA)

This guide has been made using the demo version of the tool, without the watermark (it’s the only limitation of the Demo version vs the Retail one).

When opening, you will face up some options, like the top-central one, regarding loading a color texture. This texture will be the source one. Clearly defined images and colors, and soft lighting, are always important factors.

After loading a file, one of the common issues you may encounter, is that your texture is “flipped”, depending of the colors of your image. If it happens, you will need to invert the Height map*, checking the corresponding checkbox. In addition, you will probably need to invert the Normals map* too, checking the option (advice: check and uncheck some consecutive times to visually notice if it needs to be inverted or not. Or disable the Color and Heightmap, unchecking those middle-top-right checkboxes to clearly see normals’ “shadows”).

“Flipped” source image

Inverted Height map

Inverted Normals map too

Starting from the beginning of the parameters list, you will find:

  • Sun intensity: to control the intensity of a “sun” light, being able to turn it on/off.

  • Point light intensity: to control the intensity of a “bulb” light, being able to turn it on/off.

  • Point light Z location: to control the height location of the “bulb” light from the red grid plane.

  • Preview quality: to select the quality of the generated textures on the viewport preview. It can be useful to low it if your PC is slow when applying new changes. Anyway, exported textures will be independent from this value.

  • Rotating sun: if Sun intensity is higher than 0, so it’s enabled and lighting, this option will make it rotate over the central point of the scene, so you will be able to see some different lighting situations and angles.

  • Hide origin coordinates grid: if enabled, the red grid plane will be invisible. This plane represents the initial and actual location of the mesh, before applying Tessellation/Displacement*.

  • Preview with: here you can uncheck some checkboxes, to disable Base Color, Height, Normals or Roughness maps on the previewing plane mesh. It can be useful to spot or notice certain atributes or changes.

    Only Color

Only Height

Only Normals

Only Roughness

  • Displacement smoothness: it applies a “blurry” effect over the generated black/white image, as usually made when using Height maps, due to some reasons. You can increase or decrease the blurry effect, to keep more micro-details, or to ignore them.

  • Displacement amount: it controls the intensity of your Tessellation/Displacement, but it’s only for previewing purposes, as the generated Height map will be still the same. It can help you to know which amount value you could apply into your renderer software.

  • Displacement peaks (contrast): it controls the contrast of the Height map so, white areas will become brighter. It can generate a “ceil” effect, when raising white areas to the very top, as pure white will represent the most high points.

  • Displacement flattening: it’s designed to produce a controlled “ceil” effect, like pushing the displaced 3D geometry with another plane that comes from the top, making peaks more flatten.

    Without displacement flattening
    With some displacement flattening applied

  • Displacement origin plane offset: to control the lowest displaced areas. This is useful to keep our “visually displaced” geometry near the “actual” geometry, instead of floating one of them over the other one.

  • Invert HeightMap: if checked, it will invert the generated black/white image.

  • Main Normals intensity: to control the intensity of the main (big) generated Normals. Main Normals are generated based on the Height map options too, to perfectly fit and combine Normals and Heights.

  • Main Normals offset: to control the “length” of generated Normals. Useful to increase or decrease the depth of the effect.

  • Main Normals peaks (contrast): to control the contrast of the relief, as if it was a black/white image, making “higher” areas become even “higher”.

  • Fine Normals smoothness: these Normals bring small relief details onto the surface. Fine Normals are generated independently of the Height map parameters so, here, you can apply a “blurry” amount over the fine Normals

  • Fine Normals intensity: to control the intensity of the fine (small) generated Normals.

  • Fine Normals offset: to control the “length” of generated Normals. Useful to increase or decrease the depth of the effect.

  • Fine Normals peaks (contrast): to control the contrast of the relief, as if it was a black/white image, making “higher” areas become even “higher”.

  • Invert NormalMap: to invert the relief effect, so, casting shadows to one direction or to the opposite one.

  • Roughness intensity: to control the intensity of Roughness effect. It’s the opposite of the known as Glossy. Black (0) areas of the generated B&W texture will represent highly reflective areas, while White (1) areas will be non-reflective areas.

  • Roughness contrast: as a black/white image, this will control the contrast between darker and lighter zones.

  • Output files resolution: to select the (square) resolution to save the generated textures. From 512x512 pixels up to 8192x8192.

  • Output files basename: the base-name or prefix of the generated textures. For example: gen_text

  • Output files suffixes: the suffixes of the generated textures, to be placed after the basename. For example: gen_text_A

And, finally, you will find, at the central-bottom area of the viewport, the Output folder selection, to choose where to find your generated textures, and the Export and Exit buttons. The Export button will directly save the generated textures into the desired folder, but it will ask you for Overwrite if it’s detects an already existing file on that folder with the same name, while the Exit button will ask you to confirm about being sure to exit, when pressed.

What’s that?

  • Base Color map: it’s the source texture or photo you uploaded into the software.

  • Height map: it’s a generated black/white image, to apply displacement onto your 3D model.

  • Normals map: it’s a generated RGB image, to apply relief effects to your surfaces.

  • Roughness map: it’s a generated black/white image, to apply reflective properties to your surfaces.

  • Tessellation/Displacement: it applies real 3D displacement of your mesh and it’s vertices and faces, so it’s like “automatically modelling” your 3D model from a black/white texture information.

  • Normals: it creates the illusion of 3D displacement of your mesh, creating some fake shadows, depending on the light sources locations.

Already released the Demo (fully functional, but watermarked) version of my upcoming PBR textures generator tool! Try it today! PBR textures generator demo by MARvizer