New Workstation and Forest Ground Photogrammetry + Tutorial

General / 04 March 2018
Already 3 weeks into my internship and I have totally forgotten to keep up with the blog... :(
Hi again, now that I feel just a little settled with all the new stuff going on I feel I can continue my artistic journey and what better way to start than learning Substance Designer! :D

Just a quick recap. I have moved into a room in Copenhagen where I now spend pretty much all my time when I'm not at work, which is as an environment artist intern at IO Interactive. I promised a picture so here is a very delayed view of my new workstation:

Yes, that is a sculpture of agent 47. Apparently, IO gives them to new employees :D


With the aim of creating a general purpose material library, I have started with forest ground textures. My first one is from a pine tree area captured in the forest where I lived on campus at 3D College. The photogrammetry part is done in Reality Capture utilizing the 'Ortho Projection' capture which I will give a tutorial on further down this post. I wanted to play a bit with Substance Designer while at it, so I made a version with a little bit of snow and water puddles as well. :D

I was told the pinecones looked like mites. I suppose it's true...
Combining photogrammetry with procedural water puddles and snow works quite well I think. 

Orthographic Projection Tutorial

In Reality Capture there's a feature that will immensely speed up the texture creation workflow compared to baking down the height information. It's a tool called 'Ortho Projection' and can be found under 'Reconstruction' -> 'Tools' -> 'Ortho Projection'.

When executed you should see a box drawn around your component/mesh. It is important to mention that for this technique to work you will need to have reconstructed the object and have it colourized. This is vital as the diffuse/ colour texture will be created from the vertex colours.
You can do some quick math to figure out what texture resolution you are able to generate since we want at least the same amount of vertices to generate from as there are pixels in the final texture. If you click on your model it says how many vertices there are. In my case, I have 82.7 mil. In an 8k texture there are 8192x8192 pixels, that's 67.108.864 pixels. That means I have enough vertices to generate an 8k texture. :)

Next step is to set up the projection. On each corner, there are displayed a red arrow pointing downwards. This is the direction of the projection, so it's simply a matter of rotating, moving and scaling the box to aim directly flat down on your surface. It is also a good idea to roughly scale the box to be a square. Once aligned it should look something like this:

Then in the info box, you will see a Width and Height, as well as an 'Estimate' button. I just press the estimate to see if the two values are close to eachother. I move the box around until they are relatively equal which means my texture will be almost square, then I type in 10k into one of the boxes and hit render. If you want a very specific resolution, you can type it in here. Keep in mind it's always better to have a higher resolution to have the option to crop later on. 

In the 2d tab if you press the 'Blue' cursor the result will be displayed. Here you can export your 'Ortho Projection' and 'Digital Surface Model'. The ortho projection is just the colour information. The Digital Surface Model is a complicated format to save landscape height information and I won't pretend to know anything about it. I recommend saving in TIFF format without compression. 

You will have to import the Digital Surface Model into an image software like Photoshop and do some tweaks to it. At first glance, it might seem completely white but the information is hidden in there. 

At this point, it is a good idea to scale down both textures to a reasonable resolution like 8192x8192. 20k might be a bit laggy ;) If you wanna crop the textures remember to import both textures into the same file so that you are sure they will be cropped identically.

EDIT: To get the information from the DSM file I just convert the image in Photoshop to 16 bit and a prompt pops up giving me multiple options. Here use 'Equalize Histogram' and it will cramp all the information in there to fill out the entire histogram. Super handy!:

I'm sorry for the ridiculous resolution, but no trickery here. PS magic all the way!
That's it! You now have both your base colour and heightmap in 16 bit without ever touching a retopo baking software. YAA!

Hope that's some useful knowledge right there. Feel free to poke me if you have any questions and of course suggestions to further improvements. See ya and happy arting! :D