 Hello, are you enjoying Glendercron so far? Yeah, I get it. It's the third day. It's Energy is running low smell is getting worse plus. There's other people But it's fine. Let's get started I'm gonna talk about cat that optimization for and methods and tools for HMI at BMW But first things first Who am I? I'm Tom. I'm working for a company called paradox cat in Munich since December 21 I'm a 3d artist there and I break tools So if you happen to be an add-on developer or a blender developer and need someone to tell you what you've done wrong I'm the guy Quick about who we are we were founded in 2009 as a game company but took on contracts for the automotive industry and Notice, well, there's a lot more stable work there to be made and money and stuff So we've been doing that after and we've been growing steadily since We have about a hundred employees and we're located in Ingolstadt and Munich in Germany and in Bucharest in Romania And they have a very nice office So what do we do? Well, we specifically work on the Out on the infotainment system inside the car Which means behind the steering wheel you have these two giant screens and there's a 3d representation of that car That shows you if the doors are open if everybody has put on the seat belts And whatnot and that hardware in there is automotive grade, which means it runs like a potato, but it's very robust and So some technical overviews, so we use Windows as our operating system SVN for version control Blender, of course and for some custom add-ons a tool called insalot a little bit Later, of course Photoshop runs this composer, which is the editor for our engine That will then integrate it into Android and we use fbx as an exchange format and gltf for the engine and Everything has to fit into 15 megabytes of space So why do we use blender? Well because it's open source and Because BMW is very much in favor of open source and the engine that we're using was also developed by them and this open source as well That's it. That's why we use blender So quick overview over what I will be talking about today The car that I will show you is the latest version of the BMW X1 Internally known as the u11 So if I say you 11 of X1, it's the same car It's just so into the internal designation that I often don't know the official one So I will tell you about the data preparation data processing then The optimization of the car itself then the cleanup Then how then I will show way how it's integrated into the engine and then eventually on the deaf hardware So data preparation where we create raw files for us to work on so we have different variants or trim lines as we call it and they come in as complete cars So what we have to do first is delete a whole bunch of redundant parts that are repeated throughout each trim line They can have up to 90 million polygons each They come in as FVX files and they can take up to 40 minutes or so to import into blender And those files can range between a 500 megabytes to 1.5 gigabytes Which can result in blend files that go up to eight or even ten gigabytes so please turn off auto safe if you have ever to do something like this and Just to illustrate these are the trim line relevant parts. So everything in white is Standard in every car everything that's colored here can vary and then the Customer can decide what kind of car they want to have and just a quick example here. We have the base model and the sports model and There are many more but I reduce it to two for the stock So what do we do first thing is first? We apply all the trends forms and lead the key frames We have to consolidate materials because we don't care something is clear plastic or glass There they look the same We don't care if it's This kind of plastic or that kind of plastic if they look similar enough they will be consolidated and We have to restructure the data that we get in order to be able to work with it And we cut meshes and half where we need them so we can mirror them over in the engine So the hood for example, we only work on the left side. So that will be then mirrored over and Just to give you a quick overview of how this will look like we are using on the collection system in blender a lot for this and Just to keep everything in order so our automated tools can then process everything So we have tools for automated Imports some automated sorting of parts and assignment of meta data They basically look like this on the sidebar super exciting. I know so let's move on But one thing I will show you is meta data Basically, we're using blender's custom properties system to assign additional data That we need for the car. For example, what was the original material? Where will the pivot be located is it mirrored or not and also to kind of circumvent blender's 63 character limit on a mesh item because We exceed that easily and this is one way to get around that and Then once the data prep has been done We have a master file with only 40 million polygons after data prep and looks nice and pristine and the structure Kind of looks like this. I'm totally gonna let that scroll through twice Now just kidding. Let's move on So data processing. This is where I come in and you can tell I'm loving my job very much and Yeah, here we go. We the car has been split into different resource groups So it can be distributed among different artists. So One person can work on the hood the others on the front doors the next one on on the exterior parts and We separate the car into exterior interior mix parts and the rims rims are a whole other topic In and of itself and after that is done We also add in some light effects and various helper measures to fill in a gap here or to guide reflections over there and These are the parts that the individual artists can work on so we have Front doors back doors charging flaps, but for the sake of this talk, I will focus only on the front door Or else we would be here all day So this is the front door of the 11 or the x1 This is what it looks like This is what one part of it looks like so first things first We have to get rid of everything that will not be visible everything that you can see inside of there This is the topology that we have to work with If you're lucky then Things are merged if you're unlucky then every face will be by itself So it's a lot of cleanup that we have to do Fortunately, we have custom tools to help us with that For example, we have one tool that lets us bake ambient occlusion into the mesh and then we can just paint in and out Manually where the mesh will be visible and we're not and if we're done with that we hit apply and then that part gets lead it and that has also been realized using Geometry nodes, which I hear you guys like to hear so yeah geometry nodes and Once everything is done and cleaned up it kind of looks like this So all the holes have been deleted every mesh that cannot be seen will be deleted every polygon That's not seen is deleted And that was the exterior part for the interior part which looks like this we have a totally different approach because we bake that down and Just to show you an example. This is all geometry. There are no textures in there and if you get speakers like this internally we call them cheese graders and Unfortunately, they also need to be cleaned up, but not to the same extent as the exterior so Late optimization or as we call it crunch and just to clarify Crunch refers to crunching the data itself so it can fit into where it needs to it doesn't mean we're Having lots of overtime. We're not an animation studio So and we don't do this in blender But in such we're doing it in a tool called the insalot And the reason for that is because insalot is just graded what it does It does one thing and one thing only and that is polygon optimization while keeping normals intact On occasion. We also use the decimate modifier, but it only gets you so far And yeah, we use it for the polygonic reduction for the exterior and for baking down the parts for the interior Kind of looks like this. It's a very basic UI. I'm not gonna tell you too much about this tool But just as an example, you can see this door right here with the topology that we have and right now we're at around 23,000 vertices Once we hit one or two magic buttons it goes down to around 700 and it Retains most of the normal data Excuse me as for the interior as you can see we have around 300,000 polygons and this is the Topology that we're having here so you can see it's the wire frame is so dense. It's basically the entire mesh and Once we're done with it. This is the topology that we get out of it It looks totally horrible, but it's does exactly what it's supposed to do and it's down to Around 3600 Polygons, so yeah, if you like clean topology, this is the wrong talk for you because Everything you ever known about 3d and topology and making it look nice. Yeah, forget about it. This is not what we do And of course, this is how it looks when Texas are baked down to it. So of course we have to clean that part up as well because Yes, the mesh the remeshing is very good And almost usable but it for what we do it. It's not quite perfect so as you can see There's lots of broken geometry all over the place and we have to clean it up and Yeah, they did that's just no way around it. We have to do it. So yeah front side back sides Yeah Sometimes this is also Part of the 3d artist job, but everything can be sunshine and rapes but then of course comes the fun part because Even though most of the normal data is Contained some normals get broken and we have to fix them and Unfortunately blender's normal tools are not quite up to the task But we also found a workaround that I'm going to tell you about and in most cases for example When a normal is broken we can select the vertex Tell it to reset the vector that will fix it But then that will break the vertex next to it So you fix that and then it becomes a whack-a-mole and everything around is starting to break so in the past what we did is Remesh with a higher setting which gave us a crisper look but also increase the poly count Fortunately, we don't have to do that anymore because we now have tools for that and as an example for example, this edge right here was a little bit too hard, so we had to Adjust it a little bit. So we made a cut in there, but that breaks normals in the process and Yeah, as you can see these are Normal issues that we have so what we do instead We have an automated tool that lets us re-import the high-poly mesh and then re-project the normals onto the low-poly and using vertex groups we can tell it where to re-project and where not and You can do this by default in blender by applying the modifier, etc. etc, but we have a tool for that that basically makes it into one or two clicks and And that way we don't have to constantly go back and forth between blender and install it and Up for the next up is texturing for the For the interior part So we bake the curvature the ambient occlusion and the object space normal And we do that to fake lighting. So here we have the curvature Here we have the ambient occlusion and Here we have the object space normal of which we only use the green channel So we can fake light coming from top to bottom and then we multiply that in Photoshop to layer it on top of each other and Then we use a gamma correction to make it dark because it's not super visible on the inside But it has to be there And of course we're automated that as well So we have a Photoshop action you press the button and then it will ask you for the Specific textures you hit a couple times. Okay, it will also apply the gamma correction by itself and That's basically how we get our automated texture It looks totally horrible. It's not supposed to be human readable or editable but it works and Then we're all set and done We have a door with around 32,000 or other 16,000 because this one is mirrored over Triangles compared to hundreds of thousands or even millions of polygons, but it's looks nice and crisp So run the vacation. What's that? Well, our engine is called the Ramzes engine and Tool have has a Naming convention that basically tells us okay make it ready for the Ramzes engine Which means we have to restructure the assets from a logical hierarchy into a material based hierarchy So everything that's is the same material But in a different mesh will be grouped together because upon export they will be merged down So we have as little draw calls as possible And that basically looks like this first we have a sanity checker the checks is everything all right With this assets are they textures that need to be deleted? Is there a second UV map? That's not supposed to be There and only one set of Sun we can click the around the fire button Which restructures the thing to what we need to and only then will also the export being abled and Just we've been over with these are the possible errors that can come up I would say about half of them I found The two developer was very happy that he got more work But in the process it made the whole thing very robust So what if we want to iterate? So let's say we have to We have exported everything. It's already but then Revere comes in. Hey, hey, you have to do redo this and that so here's a little cheat sheet We have a raw file we clean it up Then we process it for insulate clean it up Rumsify it then there's a review if that checks out everything goes on to the repository If not, then we use a tool called the blender fire Which reverses the whole process and then you iterate until everything is perfect. So that's where the blender fire comes on Which yeah, that is I just said reverses the thing. So basically we have this tool and You can get the lock directly inside the the SVN lock directly inside of Blender, so you don't edit things by accident and Then you select the part that you want hit a blender fire and that part gets automatically imported That's the edit mode We also have a review modes where you can just look at one or more parts individually And then basically have a look at the entire car if you like But then again, there's also the trim lines or the variants So we have a tool for that as well that lets you basically switch Between those different variants and you can see on the right-hand side that various collections get turned on and off So they don't overlap and we don't have to spread them out to be able to work on the parts so Quick overview of the Rumsys engine by the way that logo has been rendered in blender. Yay And it's basically a super lightweight open source For the editor for the Rumsys engine. It's all lower base. You have a little bit of Python support to automate Things and do not try to make games in it. I mean you're welcome to try but I highly want to discourage you Quick overview of how that looks it's I'm gonna get so much shit for that, but it's basically a retarded unity and You have an outliner you have a history you have your options. We don't have a free boop or yet, but that's coming soon and Yeah, it's basically you have open GL you have the Rumsys engine and then you have the editor on top So it's extremely lightweight. So it does one thing and one thing only and that doesn't worry about So what does the asset structure inside of Rumsys look like it's a little bit scary But basically it's nested scenes and nested scenes and nested scenes on the right hand side You have all the assets which then go into the logic structure Which then go into their individual cost structure and finally where when export layer on top So in every step people can Edit where it needs to and it's very non-destructive And when all is said and done, this is the final result. This is how it looks in the engine This is how it will appear later in the car All shiny and crisp and it has a round Less than 200 maybe 300,000 polygons. So the overall reduction is 99.8% something in that realm and The whole process it highly depends on the data can be done in two to three weeks or up to three months it really depends on how clean or unclean the data is and Once that is done it goes on to the def hardware, which we call the rack it's basically Giant clunky def kit, but it does exactly what it's supposed to do and once it It's running on there and everything works it goes into the car on the screen that you see here behind the steering wheel and That is basically. Thank you very much