 Okay, I haven't had any graphic tool here installed, so I had to be creative. So welcome at my presentation. My name is Miroslav Horvat and I'm going to talk about virtual terrain. So with Blender Terrain Tools, which is Blender add-on, I've been working probably already for eight years and it's still not released. But let's talk about it a little bit later. So let me introduce myself first. I work as a technical environment artist and now I do quite a lot of things, stuff for R&D, for a new engine we are working on at Bohemia Interactive. So that's my company. Is there anyone who knows this company or plays the games? Okay, thank you. Actually, so I'm wearing this daisy t-shirt. So there are two more. There are some key rings, so just if you want to check it, it's ER, it's for free. So this company is actually well-known for titles, game titles like original Operation Flashpoint, Arma series, all of these are like military shooter games in a really, well, let's say, big environment. There are some more titles like Take On Helicopters, which is kind of like a helicopter game, Take On Mars, that's a simulator of astronaut being on Mars and doing some tasks. There are actually a few more, but just check on our websites. I just quickly have to turn my notes. Welcome to you. So I guess I don't need this for a while. Let's step to the showcases, actually. So one more note, Bohemia Interactive has their studios in Czech Republic. There are three studios, one in Bratislava at Slovakia, and there's another one in Thailand and really newly opened one here in Amsterdam. So if you will stay till the end, I will have some job offers for you. And now let's start with the tool itself. So let's have a look at the tool. I have it already enabled as an add-on. So what this tool is actually about is my thesis is to create landscapes or environments for the games. When I came to the company and started working with the tools, I find out that there are some gaps in the development or in the pipeline of the creation of environments. And I've been already playing with Blender for maybe four years back then. So I saw quite a lot of opportunities to take advantage of existing features, but it just needed kind of like chaining them together and make an automation. So let's say sculpting, painting, there's quite a lot of there. Some modifiers can be really used for development of believable environments for the games. At the beginning, I was really new to Blender API, but after all those years, at the first place, I just wanted to fill those gaps in the development of the maps. But then after eight years, I get very familiar with the API, and right now, this tool can really replace our internal tools. But I have to still kind of use the original one for baking the data and so on. Okay, so what I'm going to do right now, I'm going to import terrain with satellite imagery, which we use to texture it or as a reference. So first of all, I need, let's say here, call it intro. I use GDAL, I'm not sure if you're aware of this. Actually, my long background is in GIS, so this is the Geo tool, let's call it for processing Geo data. Of course, we work quite a lot with this data. And import satellite imagery, let's import elevation, okay, and so now I'm going to the Blender or the tool creating just a preview of the area. This is the map from ARMA to Operation Arrowhead called Pakistan, it's a fictional map based on real data somewhere in Afghanistan, Yakovlan province, I guess. Okay, so right now I have a preview of the area of the data and I can now import it. Let me just quickly change the DPI, very small, I guess you can see it actually, right? The text is fine, right? Or you need it a little bit bigger? Okay, so once again, let's import this area. Oh, let's call it Wally. So basically this is the initial step I needed to work with the terrain. So it's there, you can basically fly over with the camera. So basically right now I can use, let's say, the sculpting mode to add some details. Right away I can just export it back. There are a few more features. I'm going to show right now. One good point actually is, so when I import the piece of land, I create a new scene. So I'm actually then allowed to, lovely, okay. Why did that happen? Okay, so I have all of these as a kind of layers, okay, I'll put it again. So I can have more of these locations imported in one file. So I have just kind of like warning what was the previous one. So I won't import the same one. So I won't rewrite some sculpting or painting. So if I create a new one, location, show, yeah. One thing I really hate about this thing is that there's no possibility to lock the view in the top ortho. I'm not sure if you have an experience. I've been looking in the API, but I haven't found anything. So sometimes maybe an experienced user just starts doing this and actually the picking location works only from a top down view. So I always have to just do this. But as I said, I have no way so far to lock it in this view. Yeah, yeah, actually that's my typical setup one. Okay, I'll try that. Thank you. Yeah, actually that was, I had that in mind, but there was something else later in the development why I had to still stick into 3D. But we'll see in the future. Thanks. So was there, yeah. So as you can see, there are quite a lot of panels here. Basically, I'm going to just show you some quick shading, which is for me at least very valuable. So basically, this is the textured one. I can have this smooth and then, well, this is the settings you usually can find in the UI. But I like to have it, you know, in one place. So typical matcap, you can pick the shading directly from here. You don't have to go here. And I also like to have a tessellation sometimes so I know where the cracks will be on a terrain. Oops, it was too much. Yeah, so I have the terrain triangulated the way that it is really in the engine. So it's really one to one export and import. Okay, there's also this surface painter, which basically as you may know from Unreal or Unity Engine, you can paint the quite detailed textures like grass, rocks, sand, directly on the terrain. I don't have any file here set up for that, but I'll show you a video, at least one. So this is the version of the Blender Terrain tools. In these videos, a little bit older, it doesn't have a UI, basically, or a really small UI. So this is one of the maps with the object imported. I will get to import the object a little bit later. So this tool allows us, as I said, to paint surfaces on the ground. As you can, you could see, I'll just find it. So each of these surfaces, as you can see, like soil, dirt, whatever, has its own color, which can be seen here, assigned, and this one will be painted on a terrain and later exported as an image and imported to our engine, which can make all the calculation and proper placement of the correct textures. But in this demo, or in this video, there's just the colors, but it can be switched to also visualize the exact tiled textures. The reason why I made this is because we don't have these functions in our tools for the terrains. Now, with the new engine, it's already implemented. When we need it to paint these textures or surfaces, we usually use Photoshop, which is 2D, and we have kind of a possibility to export bounding boxes of the buildings or all the objects in the map. But the problem is that these are just bounding boxes. So for example, if I wanted to draw nice pathwalk to the doors from the road, I didn't know where the doors are. So that's why I make it available to import also the objects, as you can see. So the objects were imported here, and now whoever was working on this area could just ride in the pathway directly to the doors. I guess there are anything special? OK. Yeah, this is basically the exported texture, which then is imported into our tools and prepared for use. Another showcase, it's from, well, it's not really a showcase. It's from Take On Helicopters, where we had these huge maps. There was a Seattle map. Oh, there's a really small picture, whatever. So there was two maps. One was the Seattle. There was an area 60 by 60 kilometers around the downtown. And the other one, there was even bigger. There was 120 kilometers big. It was kind of a South Asia, it was called actually South Asia, South Asia map. And we had to actually do quite a lot of sculpting. I guess there are more screenshots. So this is the downtown Seattle. Yeah, and the biggest problem on this map was that usually when you download or get GIS data, especially elevation, the areas where the sea or oceans is, it's flat. So it's at zero elevation. So I had to basically do quite a lot of sculpting to get the seabed properly done. I could use, I don't know, a work machine or other similar tools. But the problem was that I needed to know how the objects react, because they could be floating or maybe sunk in the terrain. So I had the chance to fix it right away, not having to import something, check it, and vice versa, that would be really time consuming. I guess I have just a small import here of the terrain. Yeah, so this is actually the sculpted one. So if I shrink this one, so maybe it's not really seen, but there is already a seabed. So if I scale these, so there's really so this black plane represents the sea level. Just recently for Daisy, oh, actually I haven't mentioned Daisy. That's actually our current top seller, I would say. It's a game which already, I guess, sold over 3.5 million copies. And there's quite a lot of people playing it on the servers. So it's basically a survival game with lots of zombies. And Daisy kind of started this era of zombie games, I guess, two years ago. Yeah. And I've been asked to create some tool for forest creation. So this map used at Daisy game, it's from Arma II called Charnaros, which is a post Soviet fictional land, 15 by 15 kilometers big. And so the map was already prepared. But back then when I was working on it, I guess, seven years ago, the performance was too poor, not that bad. But we had really dense forest, we eventually had to chop down the density. But now we can do some more magic. So I've been asked to create a new tool to place those trees and make kind of like a prototyping tool for that. So this is basically Charnaros. And it's all beauty. And these polygons, they represent the shapes of the forest, as well as each of these has a custom attribute which or these polygons were actually imported from S3 shapefiles, where each polygon has its own identifier in the attribute table, which basically says what kind of forest should be generated. So we can see it here. So if I place the 3D cursor and press F, yeah, so there's supposed to be a spruce forest with some settings. OK, this one is not defined yet, but let's check. This is the pine forest with all the trees, three types, which will be or three species will really generate it in there with their settings of density, size, and rotation randomization. And so for this presentation, I made a little showcase how it looks like. But usually, I was also doing some kind of prototyping. So I'm allowed to generate those trees only in the selected forest, basically selected polygon, or to do just batch processing, which is quite fast. And it will be saved into a text file, which can be then imported into our engine or our tools. So let's find that location. So this is the spruce forest. The problem is with this camera that I work in real world units, so I have to really scroll to make the camera moving. Actually, that's weird. It doesn't work, whatever. So this is the preview of the generated forest. It's basically the first prototype of settings, but our designers already made quite a lot new forest types and species and combination randomization files. But there's actually another preview. So the algorithm works the way that it can also randomize, but it can also generate kind of like orchards, like shapes for the forest. OK, I guess that's it for tree generation, trees placement. So actually, one way how to generate those trees is to have already some kind of polygons to place them in. But just recently, I had to make a script or a new tool for my other projects, where the creation of those polygons is sometimes really time consuming. So we have to click when you are tracing the shape of the forest. And to me, it's really more natural when I use especially a pen and tablet to make a sketch. So we make a really simple tool. I don't have UI for it right now, but it works the way that I can really just sketch the simple shape here. And when I press F, it makes the polygon. Also, if I make a mistake and let's say something like this, I can go back to delete it and finish it. And there's also a possibility, as you can see, for example, in this case, there are some holes in the forest. So I can designate it right now, like pressing a short key, that this will be, it's usually called an island basic shape. So I can designate the island and one, let's say here. And it creates those holes, so the trees won't be generated here. And I actually plan to do it a little bit more advanced. So to connect that forest directly to this, so once I'm done sketching right after the trees can be generated into, let's say, text files. So the prototyping is much more streamlined and fast. OK, as a technical environment artist, sometimes I'm asked to do some voodoo for the designers. And OK, I guess I don't have the file here, but I can show you later. Another voodoo was for the designers, which actually wanted to see whole channels in a quick preview in an application that they can basically download somewhere. And it's for free, like Blender. So they don't have to fire up a whole engine. If they're, let's say, at home, they just can load it in Blender. So this is generous. That's the map, which is used in the Taze and Arma 2. So basically, there's terrain import. Actually, this material can be used, I guess, real time, because it has no tier. The terrain is actually really, really big. I mean, there's 8.4 million triangles. So it will take a while once it's selected. So basically, you can see here the shader. So if any change is done to the map, they just import it once again. And the coloration is changed in real time. They also wanted to see some previews of selected data. For example, the satellite imagery. It's actually a really huge file. I guess 600 megabytes. So it takes a while. They can quickly preview all the places. Also, these names of the cities and villages can be dynamically changed if they make a change into some config files. And there, I guess, it's one more layer. I'm not sure what these tiers are, but it should be something like for spawning some loot and stuff. And basically, they just draw it and can visualize it in 3D. OK, I have another video. So there's actually one more Bohemia interactive. And it's a simulation part, which does quite a lot of only simulation for military. I've been working there for four years. And basically, it uses the same engine, the same tools, with the same problems. So I also use these tools there. So I'm going to quickly show you. For a promo video, or we made a promo video to promote a new product called VBS3, which stands for Virtual Battle Space. It's being used by many militaries all over the world. I just quickly jump. So there's quite a lot of new features for rendering quite huge terrains. But I will jump quickly to the one I want to showcase. And basically, which we post on in Blender. So this great technology. So we basically needed to model a creek. I'm placing it on the map. But we don't have a possibility to export terrain from our tool to modeling tool so artists can take it. But through my Blender tarantulas, I just imported the terrain, exported it into artis, and maybe also design it, designating some shape of the creek. So they can too take it, model it, and give it to me so I can place it into the map. But there was, so the tool we use pretends to be really clever. So when you place object, it is always snapped to the terrain. So you don't have to position it like in Unreal Engine, for example. But you can also move it up and down and saving the relative distance from the terrain. But the problem was that when I was sculpting terrain in our tool, every time I placed the creek into the correct position. And I sculpted the terrain around to hide all of the sketch. The model gets moved or shifted. So that's why I just, again, fired up Blender and just positioned it, did all the sculpting all around the location of the model and exported the terrain into the file, and put it into our engine. And as well, just exported the position of the model. There was actually quite a lot of prototyping as a part of my responsibilities and prototyping for new features like bridges and tunnels. So there was also a nice task for Blender and terrain tools. So here we have a tunnel. There's the, I actually can fly through quickly. So with the use of splines and some shapes, I could basically quickly create a few models, have them placed in the landscape. And a tool, basically, which is not part of the Blender terrain tools, took the models here from its absolute world position, split it into smaller pieces so the colliders can be done a little bit easier. And it was converted into the P3D file, which is our internal format. There's actually also exported and imported to Blender. So the ARMA community basically can use it for the model creation. And it was then, again, placed in the engine and ready for testing. There's another thing, but I don't have files. I have just a few screenshots. So this was another technology we had to test. It was a river technology. And I basically needed quickly to create some map with some slopes. So this is actually the screenshot from the VBS engine, from its editor. It's a nice slide. And it was basically done really quickly in Blender. So I basically imported the terrain, did a shape of the water. And other terrain was basically snapped with the shrink wrap modifier to this shape and also exported into the engine. Yeah, I guess this is all for the BI sim. And just recently, I started working with Unreal Engine for my personal projects. And as you may know, there's quite nice tools for landscape, creation, sculpting, surfaces painting, or trees placement. But there are still something that I miss. And I, again, made a tool, which is, it takes some of the features from Blender Turn Tool. It has really, really long names. So it's called Blender Landscape Tools for Unreal Engine 4. But let me quickly just install it. And I'll show you what it is about. So yeah, in short, it's basically BLT4UE4. Yes, please. It basically does the same, like import the terrain. You can do the same stuff. But it's more related to Unreal Engine and the structures the terrain has. OK, so as I have a background in GIS, I also have some friends at it's called Institute for Planning and Development of Prague City, where I live. And they recently released really high-risk geodata and opened them actually for everyone to use. So I decided to play with them. So I just want to blindly follow some tutorials. So I really needed a solid project and solid terrain. So I just quickly show you how it looks like. So these data, they include the geodata. I include really high-risk one-meter terrain, satellite imagery in 10 centimeters resolution, 3D buildings, and quite a lot of data for automated placement. So as you will see, I can create roads or generate roads with the help of Blender. I can also place street lamps. And there's definitely much more, even manholes. So for now, I don't know if the result of this will be a game. It will be an application. Let's see. I'm actually still stuck in Unreal Engine. So this is the location of 4 by 4 kilometers around my home, where I actually moved a few months ago. So I live here, here in the middle. It's a really nice place location. I really like it. So this is the Vltava River, the main river, which flows through Prague. So basically, this is it. This is the data. There are 3D buildings here. There are roads. There are even trees. But that was just made quickly for this presentation. As you can see, there are also kind of like a flat mask, which defines where the grass will be, where the different textures will be rendered. And there's also some kind of a shader, which basically makes the set line imagery in the distance with the detailed surfaces on the ground. It's a typical shader in the other games. So as I mentioned, there are roads. There are street lamps, which basically, as I said, was placed based on this geodata. And now back to Blender. So let's quickly create a new, oh, actually, I already have their project. Yeah. So the import basically works the same way as I showed you with the Blender Terrain tools. So there's a preview. I can pick a location and import it. But actually, I forgot to mention one, the essential feature. And that is basically the conversion of the models, which I can basically convert into blend files and import them into the map. And during this project, I was actually really struggling. So I'm not sure if anyone, is there actually anyone here using Unreal Engine? And OK. And do export models? Do you need LODs for the models? So as you may know, there is no way to export LODs into FBX import. Well, it is basically, but then you have to do all the setting up of the LODs manually in the Unreal Engine 4. But there's a kind of quick way. I'm not saying it's safe way, but for me, it's just the work so I kind of like improve the FBX export, which actually basically set up all of the models, even the collision meshes, export it into FBX. And it really works when you drag and drop it into the library or then into the viewport. It really basically starts working. And eventually, I would be really glad that that could be a part of original script, which is bundled with Blender. So I already have a few models converted. This is one of the Bushes, Bush models. Let's ops now this one, not Cycles. Let's go into Blender game and let's give it a sphere. So it's all textured. It has already LODs set up. So it changes, as you may see. As I take advantage of LODs also in my project. And as you can see, also I can just, in a batch mode, I can convert all of these to Blend files and also to FBX. So I can work with the Blend files in my project and with the FBX in the Unreal Engine. So the way how to get, I can close this one and back to the main project. So let's quickly import some location. And so once I'm done with the conversion of the models, I can easily create a library from the set of models. So for example, this library creation is actually part of the tool. So it's here. So I can basically point it to the folder and it set up or import all of those models, set up into grids. So it's easier to have a preview of the models in that library. So let's import it into the project, which is here, import. And it appears here as another scene. It actually automatically opens another window. So I have the two monitor set up. So I have this one on another screen. It's here. So let's actually import another one so I can show you. So right now, basically, if I want to, let's open window. It's a little bit harsh right now, but I have just one monitor. OK, let's switch to our location. And now if I want to place an object, there are actually many possibilities how to do it properly. But I can basically just pick the object and press paste from library. But usually I have it mapped on the P button, but I have not set up it here. I can also place more object at once from the library. So it's placed here. Just to quickly import the trees library so I can. So I've been figuring out how can I improve this to have it done a better way. Let's import it. So there's quite a lot of trees, I guess, in the library. So it's here. So this is the library, sorry, the trees library. And so I've been thinking how to improve this. And I come to select the better way. So I can have these pop up window. Every time I press, let's say, L, L button, and I can then easily just basically pick one of the trees I need to place or bushes or trees or whatever objects I have in my libraries. OK, so what else? Oh, actually, there's one thing I really miss in Unreal Engine. And that's what I actually already mentioned that when you place objects in the viewport, every time you change the terrain, like you sculpt it, the objects won't snap to the terrain. And that's what I've been really missing. And that's what really works here. So even so I can select more. And it's really being snapped to the terrain as I move with them or rotate this way, that way. Or as well as I select the terrain to go into sculpt mode. So yeah, so it's also snapped when I'm sculpting objects. So I don't have to reposition them after sculpting. So right now I can export terrain. So this landscape, it's based off this multi-tile or multi-world technology. So you can have quite a lot of these terrain tiles. And so my tool basically allows me to export the whole scene, this one, into tiles. I just basically need to tell him how many of these tiles, like four by four, it needs to export. It can also, so when I place all these objects, it can export. So for example, if I pick this one, it can write file which Unreal Engine can read. It's basically really easy. So this is the, there are the positions and rotation of the objects. So this is basically the format which I've taken and made it to export all of the objects I have in the viewport. OK, so running out of time. And that's actually, oh, OK, one last thing. So as I was trying to fly, this is actually weird. OK, it works. So regarding the improvements, I would be really glad if we could have this flying, let's say, if I change, I heard about this workflow's feature in a new blender. And it would be nice to have, let's say, if I'm in my tool workflow to have this camera movement instantly, exactly as I have in Unreal Engine. So I don't have to press Shift-F and then fly around. And the, sorry for that, but really stupid thing is that I have to confirm it. Because I usually just press the right button and I'm back in the location where I was. But anyway, I love this feature. And also kind of a problem I have sometimes with bigger locations. And when there's quite a lot of trees, it's, of course, performance. So we'll see what new viewport project brings us. And yeah, and basically those workflows. So sometimes it's for a new base, it's really hard to find things when they actually want to just work with this landscape tool or terrain tool. So the rest for them is really distracting. So that's actually why I have, right now, I have all of the features just right here and not hidden, let's say, in the Objects menu, Objects tab or somewhere else. OK, so I guess that's it. So I have also, so as I mentioned, just bear with me. I just need, again, my presentation file to render last slide. Bear with me. So as I mentioned, so we opened a new office here in Amsterdam. And we are really looking for a technical artist here in Amsterdam office. Here's the address. Or basically, if you go to our site, there's a carriers or job offers section. We don't really mind if you work in the Maya Max or Blender. There's already quite a lot of guys in our company using Blender and TLIME there. You can be sure that there will be still some exports and importers for Blender. Also some, as you can see, some tools to work with Blender and our engine. So here's the contact. If you have any questions, suggestions, whatever, just bump to me. I have this T-shirt. My name is Miro. Maybe there will be some more guys with this T-shirt. I'm Miro. And I guess that's it. Thank you for watching. Thank you.