Beschreibung
Wichtige Erkenntnisse
- Learn how to create simulation modeling data in InfraWorks from LIDAR and planimetric data
- Learn how to export your site model as an FBX, properly convert it, and import it for use in Stingray
- Learn how to create an interactive simulation of your civil site design using an Xbox controller
- Learn how to create a virtual reality simulation of your civil infrastructure design
Referent
- Andy CarterAndy Carter, PE received his BS in civil engineering from the University of Texas at Austin. As co‐founder of CivilE, LLC, Mr. Carter is an experienced land development and municipal project designer. He was named Young Engineer of the Year in 2007. His 4‐year old firm was selected as winner of the small project award of the 2015 Autodesk Excellence in Infrastructure Awards. Andy was invited to evaluate the functionality of the 2014 release of AutoCAD Civil 3D at Autodesk, Inc.’s, headquarters. His current passion is real‐time site pre‐visualization for civil engineering projects.
ANDY CARTER: I'm going to switch over to my machine. We will come back to that here in just a second. So we are at 3:31. You made it to the last class. I congratulate you for your vigilance. I'm excited that you're here. Laser Larry showed up. I'm excited about that.
My name is Andy Carter. I'm a civil engineer out of Austin, Texas. I co-own a company called CivilE. We're four years old. We're seven guys. And we're kicking ass and taking names. I don't know what else you need to know about me. I'm a registered professional engineer in the state of Texas. What I do for a living is probably what a lot of the other civil engineers and CAD technicians that worked for civil design firms do. I create plans. I cut plan and profile sheets. I lay out water utilities and storm drain lines, and all that good stuff-- for a living. That's what pays the bills. And I do that a lot.
But my life has sucked me into this weird tangent of just recent-- and I'm going to go through that today. This class is called Driving Austin. And I'm not going to give you the whole name. You've seen it. But what we're really doing is we're taking design data and trying to figure out a gymnastics trick to get spatially accurate data into a game engine. In this case, we're going to use 3D Studio Max Interactive, formerly known as Stingray. It's a mouthful. I like to call it MI. There's going to be some weird name that I'm sure we're all going to start nicknaming it, because we don't want to save 3ds Studio Max Interactive, whatever. It's going to change. But we'll see what happens.
I'm going to do a little bit of PowerPoint. But I try to not do a lot. I respectfully request that you hold all your questions to the end. That throws me off pace. If you can silence your phones now, that's also throws me off.
I'm not going to read what we're going to do. I'm going to actually show you the points. So we're going to take a simulation of real spatial data. We're going to use two data sets to start with. We're going to use LiDAR And that's not LiDAR that I've hired anybody to go fly. That's the stuff that we're getting from the local agency. A lot of the big cities have that kind of data.
And then we're going to use something that city of Austin actually is kind of special in having. They've got really good planimetric data for land coverage. And we're going to use that. We're going to export that. We're actually going bring all that stuff together through some gymnastics that I'm going to show. And we're to export that to 3d Studio Max Interactive, and we're going to create an interactive simulation, which some of you all saw before, but I'm about to show again.
And I'm also going to show you how to get that into VR. A lot of people don't really know is it even possible? Is it really hard? I'm a civil engineer. I don't have big budgets to play with VR. I just want to see if I can do it. And I want to do it fast. And a lot of times what I'm building is a one off instance. I'm building a model once, and I'm showing it to six people. And I can't afford to just spend an ungodly amount of time and money to do that, unless they're willing to pay me. And right now they just want to see where we're at and what we're doing. So that's really why we're doing what we're doing at this point. I'm going to go to the next slide.
This is me. We're doing some real time viz to export and belch out just conceptual images. That's kind of a byproduct of doing a model based design. If you're really good at grading in Civil 3D and all that kind of stuff, you can create renderings from real time that are decent. These are all from a real time system. And then I cleaned it up a tiny bit in Photoshop on some of them, but not much.
When I came out of school, and it's going to date me, my TI calculator was my best friend. And I still have it. And if you stole it from me I would be handcuffed, and I wouldn't be able to do my job any more. I'm like so relying upon that. My grandfather had his slide rule. Now it's starting to change a little bit. An Xbox controller is kind of starting to become something a little bit more intuitive into our workflow, which is strange. But think back, some of you, Christmas for me, 1982, I got an Atari 2600. And I was jazzed-- right. It had a joystick and a button. And I could drive a tank around. I could do all kinds of cool stuff.
Here I am, I'm an adult male. And everyone from about that point to now has been effectively born with one of these in their hands. This is a standard intuitive tool now. It's like a calculator. It's like a slide rule. People just know how to use these things. You hand it to a 12-year-old kid and he just knows how to do what he needs to do. 10 years from now, every one of your clients is going to know how to use one of these. It's coming, because we're all getting older. And as generations start back-filling, that's just the way it's going to be. And I'm holding up an Xbox controller for those that are watching later at home.
This is an experiment that we did on a site, a very small site, six acres. And we just tried to see if we could do it-- first person shooter. We did this with the same workflows. And this was our first go into it.
I was bragging at a conference in Dallas to an Autodesk desk employee. And I said, oh, this VR stuff is really easy. And he goes, yeah, BS. And he goes, prove it. And I go, OK. What do you want me to prove it on? And I was thinking five acre site. I've done it before. I could do it again. He goes, do a square mile. I go, oh, OK, we'll see if we can.
This is the limits that we did. We built it, delivered it to Autodesk. Andrew got in there, and went a little crazy. We were kind of excited to see that, that once it was built, he played with it, just to kind of get a feel as to what we were doing. Again, I'm a civil engineer. I'm not an Autodesk employee. I'm not a Max aficionado. I'm just a guy that's doing what a lot of you other guys are doing, right. I'm cranking out plans and building models. So Andrew liked it enough. Brother Bill Clinton got to play in it, which is kind of cool. It just really excited me. That happened four days ago or five days ago. It hasn't been that long.
I'm going to sit down and I'm going to start going crazy with workflow. And I apologize that if I disappear, everything you need to see is going to be on the screen. So two data sets-- I'm starting to Classified LiDAR LAS. Classified is the most important part. If it's not classified, you're going to fight it. Planimetric data-- that's again from the city of Austin. You can see that they've got coverages of where pavement, and grass, and sidewalk, and buildings, and all that stuff is. And then we're going to mesh those two together with a couple of extra things to create the model that you see on your right, which is a real time simulation. I'm going to switch over to that so we can record it for posterity.
This is the game that we built. I'm driving this with an Xbox controller. And those curbs are actually where they are. And that's coming from a gymnastics of some GIS data sets that we did. We can also detach from the car and get a large macro view of what we built. So again, we built one square mile. And we used a lot of Civil 3D data and a lot of InfraWorks data. And I'm going to show you how I did that. And the reason I'm going to do that is because I want you to go back and try to do it yourself. That's kind of why you're here at AU right. You want to see how people do their workflows.
The terrain is right. The trees are cheating a little bit. The real time map is working, and kind of tracking as we go. I'm going to kind of show you part of how I did that. It's a little more complicated and I really don't have time to show it. But I'm going to do the north arrow. If we've got time, we'll do that. And we're not going to build the whole model. We're going to build the area around the capitol, just for speed. But effectively, it's the same workflow.
So I'm going to switch back to my machine. Cool. Sit down and chain myself to the desk like I do most days. This is a workflow. We're going to start with SAGA GIS. Show of hands-- anybody ever heard of SAGA GIS? One guy, right. SAGA is an academic GIS type processing software. It's got a lot of really helpful algorithms. It's a little hard to use, because it is academic. It's not commercial.
But we're going to take the LiDAR DEM, break it down to the ground data, reverse it into a DEM. We're going to do this in a few minutes. And then we're going to go nuts with CAD, do some stuff for striping, and street lights, and curb limits. We're going barf all that stuff into InfraWorks, use that as a spatial aggregation. We're going to go to 3ds Max Interactive and bring all that data in and try to get a real time driving simulation.
At the very end of this class, I'm going to show you how to overcome one triviality to get VR to work. And it's a triviality. But it's buried. And if you don't know it's there, you're going to beat your head like I did for a few hours, just to get your VR stuff to work.
Live demo-- all right. Now it gets scary. I'm going to grab something behind me, which is my cheat sheet. Can I see a show of hands of people that have looked at the write up. A few-- good. There is an exhaustive 32 page bible right up of picks and clicks, and steps of everything that I've done. I'm just showing it to prove you that it's there. It's what I'm using as a reference for me. When we're done with this class, the data sets are there to replicate this. The write up as to how I did it is there. My idea behind this is this is a desk reference that you will keep if you want to try to do this again or try to do it on your own project. So it's well documented.
So I'm going to bring in that LiDAR data, which is an LAS file, classified LAS file. We're going to do an import, and we're going to import an LAS file. And when I bring that in-- I apologize. A lot of times I speak really fast and I go through things really fast. You're going to go back and watch this recording hopefully a couple of times, and it'll start to sink in. And you're going to pick up little tidbits here and there, and you might watch it a second time to get some more. That's just how I teach. I'm sorry. I'm a drinking from a fire hydrant type of guy. So here it comes.
I'm going to go to the class data. And that's the classified LAS that came from the local agency. I'm going to make sure that I bring in the classification data. That's important. I'm going to show you what I have, just really quick. And I'll pick the data-set. We'll say OK. Hopefully this comes up OK. So this is what I've got. And this is showing the classifications, where the ground is, where the buildings are. This is the capitol. You can see all the tree canopies, all that kind of stuff. But it is classified. And you can actually see the building outlines as well. We have this for hundreds of square miles throughout Texas and probably throughout the United States over most urbanized areas. I don't need to see that again.
So now that I brought it in, it's classified, I need to filter it down to just the ground data. And that's going to be under-- this is where I get a little hung up, so give me just a second. That is Shapes, Point Clouds, Reclassified subset extractor. It's going to ask which data set do you want, classification, extract. And I'm going to use two. That's the ground data per ASP-- something. Laser Larry, you might want to correct me if I'm wrong. I can't-- here it is. It's the Photogrammetry Society of the United States. It's their standard.
So now I've got the data. What I need to do now is I need to turn it into a grid, because I really don't want to carry all that point data when I'm processing and dragging it around. So I'm going to do a point cloud. And we're going to do a point cloud to grid. And once I do this one, I'll actually show you the data. I didn't really want to show you the point cloud data while I'm working on it. We will do-- I'm sorry. I'll make sure I do this right. Yup, I only want the Z-data. I don't all the attributes. And I can do the mean or the lowest.
I like the lowest, but that's the civil engineer in me that's always looking for the lowest around. Cell size matters, because that's going to really limit your speed. In this case, I'm going to do a 10 foot cell grid. And you're like, well, you're going to lose everything like curb lines. I know. I'm going to have to clean that up on the back end. So I am introducing inaccuracies when I do this, but I'm doing it for speed. So I'm going to say 10. And we'll say OK. And it's done. I mean you'd even see it process. That's how fast it works. I'm going to delete the data set it created, just so I don't get confused later.
There's-- the grid. What it's doing is it's missing-- it's mowing out the buildings. But since there's no ground data below the building data, it doesn't know what to do there. So you've got all these holes. I'm going to fill those. So I think that is under Grid tools, Close the gaps-- Yup, Close gaps. And it's going to ask what data set, and we're going to ignore the other values. I usually pick the default. Sorry, I didn't pick the grid. And I'll say OK. So I closed the holes.
Well, wait a minute, what did you just do Andy? That's pretty sweet. Yeah, it is. You want to know why? Because you could take Civil 3D data that has holes in it, and you can use this out, you turn into a DEM, and this algorithm and it will grade across the gaps. I've done it. It's pretty sweet. You can actually even smooth it out, which is even cooler. And there are algorithms, yes, in Civil 3D that does that, but this is an open source, academic, free piece of software and it's screamishly fast.
So now that I have it, I have a problem. If I put this into a game simulation, and I drive down it, I'm get this homunculus, wonky surface. It's bumpy. It's hard to drive on. I need to smooth that out to where it's not nearly as bad. So this is going to be the second to last step that we do in SAGA before we export the DEM. And I'm just checking time. I think I'm OK.
I'm going to do a-- where is that? It is a filter tool. And it is a mesh denoising. It's a smoothing algorithm. And I'm going to pick-- I think I picked the right grid. I did. And just trust me that these are the values that I'm using for this one. It's going to vary on your project. And we'll say OK. And done-- it's really fast. And we'll go find that denoised one, and we'll take a look at what that is. And it just smoothed out, right. It's just aggregating and averaging. So now that we have all that, we're going to extract it.
And then we're going to do an output-- Export GDAL OGR, export a GeoTIFF, because we need to keep the spatiality. And we will put that under-- I'll call this run09. We'll call this-- just keep me honest, because sometimes I lose files when I do run throughs. We'll call this DEM 10 foot smooth. All right. I think I got that right. And we'll say save and OK. We're done with SAGA. That's it, right.
So why did I do all of that? Because if I've got 19 LiDAR tiles, I can't really do that in Civil 3D without it just choking. But I can do it here. And it's a lot faster. It's just a processing algorithm. RJS does a lot of this as well, but I don't spend that kind of money per seat for something I don't use that much. Seven man man, seven man-- and limited budgets.
So where are we going now? I think we'll come back to InfraWorks. Let's jump into CAD first. And I'll show you some of the workflow that I did to get a couple of different things. So we're going to deal with pavement markings, which is striping. We're going to deal with street lights, which is a kind of physical object that's placed in a certain direction. And we're going to curb limits. Curb limits is going to be the one that if I do something live and I mess up, I'm going to mess that one up. So I'm a dancing with the devil there. So we'll see where we go.
Pavement markings I'm going to do first. And I'm going to explain how I did this. So I'm going to do a map image insert, just to prove to you that I'm in the right place. Now this data set does come with the walk through, but it's a low res. I'm just putting that to the back. So typically I would use a much higher aerial to figure out where striping is. I would do a bunch of array tools in AutoCAD. I do that kind of stuff. I just go nuts tracing. There are some automated algorithms that help you do this, but I found just doing it manually was better.
So I've broken it into layers. I'm going to do a layer isolate. And I'm going to pick all the white striping lines. I'm going to do a map export, which is one of my favorite commands of all time, because I use it all the time. And I'm going to put that under the run that I'm trying to do live, which is nine. We'll call that working. And I'm going to call this white line. And I always do ln for lines. I think that comes from FEMA. I just got used to it. And we'll say, OK. Boom, we're down with the white lines.
And I'm going to do a layer on to get back. And then I'm going to do the yellow lines. I like to do things three times. I kind of figure the first time you don't know what the heck I'm doing. And then the second time, you kind of start to get it. We're going to call this one yellow line. But I just totally messed it. We'll do yellow ln as a reshape file. We'll do lines. We'll select manually. I want those bad boys. We're done. I don't need to do a third time. I think you get the point.
I have a bunch of different stuff. I've got stop bars. I've got pavement markings. I've got all kinds of stuff that I like to add to the model to aggregate in. But that's where I'm at. So I would go through all of these. Again, you have this data set. You can do them all. And in the walk-through I recommend you doing them all. So I've got the white stripes. I've got the yellow stripes. I would go nuts and do the rest. I'm done with CAD. No, I'm not.
I've got two other things. They are actually relatively straightforward though. So what are these? These are street lights. These street lights have a positional direction. What I did was I created a bunch of blocks, went on in the aerial, and then rotated those blocks to be in a direction that the street light is. So we're going to do a map image insert. I'm going to bring in that aerial. I'm going to draw that to the back. And then you can see where they're at.
Again, a better aerial helps. I'm going to do a map export. And I'm going to call this street point, PT. And I'm going to create a bunch of-- I'm sorry, I want points. And under data, I want the rotation. That rotation is not in degrees. We'll come back to it. It's in radians. I'm going to pick them all. And we'll say OK.
OK, I got one data set that I still need to create. And I'm going to explain this one pretty quick. And this is the one that's hard to replicate, and was hard for me to write up. So I'll just explain what I did. I took the planimetric GIS data that the city of Austin provides for those coverages, the ones that I showed you earlier, and I boiled it down to stuff that was paving and not paving, classified it that way. And then I extracted the curb limits to what was the edge of paving, which may or may not be where curbs are. But that was effectively what I faked in as curves themselves.
There's a problem when we move this in InfraWorks. If you've got a 90 degree angle and it's not filleted, I'm going to end up applying a road style to get the curbs to work, where we'll do that next in a couple of steps. When I do that, if it's a PI at a 90 degree, it's going to go wanko, and lose its mind. So you fillet every line. And you're like, oh, my gosh, that's a lot of lines. There are automated ways to do it. You fillet every line and put a one foot radius on there. That's to force it to not go to AASHTO street standards as it's dropping roads for curbs. That was something that took me a while to figure out.
I'm going to export this one as well. And we'll call this curb line. There's your shape file. We're going to do Lines, select Manual. And we are done with AutoCAD. So we're done with the second step. SAGA-- get your DEM and smooth it out, done. AutoCAD-- get your striping line work, your curb line work, stuff that you need to create shape files to ingest into the model. So we're done with that.
I'm in InfraWorks. I'm going to add the raster that we created. And hopefully I pull the one that we actually just created. Let me make sure I find it in our right spot, which is run 9, working. That's the smooth one. I'm going to configure it. And I've mess this up once before. I want to make sure I get that right. So I picked a coordinate zone that I was on. And we're good. That's that smooth terrain. If you remember before, that's that little hole over by the capitol. But that's the terrain data that we've got.
So now I want to bring in the planimetric land covered stuff. So you're like, why Andy? Why don't you just use aerials? Aerials are better. And you're like, man, if you've ever been in VR on the surface of an aerial looking at it, it is muddy, muddy, muddy. You need to paint the ground with what's actually there in the real time viz, otherwise it is going to look bad. That's just a tip. Even if you've got three inch, it looks weird when you're standing on top of it. I'm going to add a shape file. And I'm going to cheat on this one, but I've already clipped it out of the city planimetric data, which is in the working files, which is civil planimetrics.
And this is kind of weird. And I'll explain it here in a second. This is going to be a coverage. It's geolocation. I'm fine with it. It has to be draped. The description is the feature. So that says that if it's pavement, or water, that kind of stuff. It's already labeled in the shape file. And we will close and refresh it. And you'll be like, all right, cool, all those coverages are in. But they're not the right color. Grass isn't grass, and all that kind of stuff. I know, there's a trick to that. And we'll get into that here just in a second.
So I'm going to correct all that stuff. And I need to go to the rule styles, which I don't know how many people use. They're really helpful. They're good stuff. I'm going to go to the coverage area. I'm just going to select them all and delete them. I'm going to say cool. And I'm going to import ones that I've already created. So this is a little canned. I apologize for that. It was going to take me too long to explain how I did it. But you'll see, it's a JSON file. I set it up in InfraWorks and saved it out.
Once I've done it once, now I can do it every time, anywhere in the city of Austin, because it's the same shape file with the same descriptions. You'd have to do it as your city varies, and your planimetrics do vary. You can create your own planimetrics. You can go nuts in AutoCAD and create your own planimetrics if you want from aerials. Or you can hire a vendor to go get you some good planimetrics. That's the easier way to do it. Good. Hopefully this works. Cross your fingers. Yeah. Done. I just put the right stuff in the right place, sidewalks, and all the asphalt. That stuff is done. I'm lazy. I don't want to do that. That takes forever. But now I'm done. Cool, right.
Next thing-- we're going to add some parking stripes. That's pretty basic. I'm only going to do one of the two shape files. I just don't want to tempt fate. But I will do the actual data that we just produced just to prove you that I am not baking this. We'll do the white lines, because there's more of them. And I'm going to configure that. And that is going to be a coverage as well. It's geolocation. That's on Texas Central State plane. It's draped. Under the table there's a buffer. I'm going to make them two inch thick. And I'll make them white, because I like white. Good, done. There are all those parking stripes. And you can tell, it's the right grade-ish. It's not perfect, because we smoothed it, mainly because we want to drive on it, and we don't want to wonky wiggle over the top of it.
The next data set that we need to bring in is going to be the street lights. And that is a shape file as well. That's the street point shape file that we created. I'm going to configure that bad boy. I'm going to make that city furniture this time. I'm going to make sure it's draped. Under its rotation-- remember I exported out the rotation value when I did a map export. There's the rotation, but you said it was in radians. Yeah, yeah, it's in radians. I need to convert it to degrees. So I'm going to do a times 57.2. And I also messed up my blocks, so I'm going to cheat and I'm going to subtract 90 degrees. That's just something I messed up.
Now what kind of something do I want to show there? I want a street light. Close and refresh. Boom. Done. They're all in there. Now granted they all say 9th Street. What I did in my actual model is I went in there and took there asset, and I took that street sign out just so every street wasn't 9th Street. It's not hard to do. It's a little bit of Max. And I'm trying to not do Max in this class. And I'm not a Max aficionado and I don't really want to get to heavy in there.
So I have everything except the buildings and the curbs. And I'm trying to avoid the curbs, because the curbs scare me, because it's hard. I came up with a really clever workflow. It's not real straightforward. And I'm going to use my little guide to cheat and explain how that's done. So I'm going to create a custom road that's just the curb. And you're like, well, that's cool, but I also need almost like in Civil 3D you've got conditional targets, slope catches on either side. I'm going to fake that. And I'm going to let it warp the ground to put that road in there with the curb in the right spot. This might not work and I'm just giving you a disclaimer that this might not work the way that I want, because I've run this through about 11 times, and it's done it every time except about twice. So keep me honest if I do something weird.
I'm going to go to the style palette and I'm going to create a custom roadway. And I need to find the roads. Boom. I'm going to start with the sidewalk one. I'm just going to copy it. And I'm going to rename it to AA curb only. You're like, why AA? So I can find it-- it'll be at the top of the list. And it's going to take a while to process, so we'll see. So now it's a top of the list.
And I'm going to edit it. And I'm going to maximize this. For those that are familiar with InfraWorks road editing, it's a little weird. It takes a little bit of getting used to. I don't want any lane markings. So that's gone. I don't need any sidewalk or green space, so I'm going to blow those away. And I actually want two sides. And I don't want it to be the same. So I'm going to copy them.
And this is where I'm going to get a little strange. So just ride with me for a few minutes while I do this. And then once I'm finished I'll explain what I did and how it works. On the left group I need a duplicate roadway. Sorry, on the left I need a curb and a roadway, in that order. So there's the curb. There's a roadway. And I need on the right group just a roadway.
So I'm going to copy-- well, let me edit these first. So for the left group I want 1.64 feet-- there's my decimal point not working, 1.64 feet. And the track width is going to be 0.5 feet. The track height is going to be 0.5 feet. The roadway-- I'm going to make that 0.75 feet. The track offset is going to be -0.65 feet. So we're good there.
Now I'm going to copy that roadway just so I can move it into the right group as well. Come out, let me copy you. Is that right? Yeah, cool. So I'm going to move him down. And I'm going to change him to be-- I think this is the last step. I feel pretty good-- 16.4. So what did I do? What the heck did he just do? I want the control, the assembly point, I want it at the top of curb not at the bottom of curb.
And the left group has a transitional distance of 1.64 feet. Don't ask me. I did this all in metric and I converted it over. So that's like a foot to work into the ground, to chase it on the back side of the curb. On the front side of the curb, we all know that roadways have crowns. So the middle of the road is higher than the gutter line of the road itself. And I want that to kind of warp up. Again, we're chasing that smooth LiDAR data that we created earlier. So we need it to work itself back into the terrain that we created. So that's what I'm doing there.
So I hope this works. It's worked for me before. So we're going to give it a shot. So I'm going to bring in that curb data, the shape file. And if this works, beer is on me. Figure-- we're going to call this a road style. And you're like, that is weird. Yes, I know. That's super weird. We're going to drape it, because it already knows the elevations that they need to be at-- sort of, like in the vicinity. And I'm going to pick a style that is curve only. And we will see if it works. Come on, baby. It's Vegas.
Look at that, man. That is sick . That is cool stuff. First time I did this, I was just so excited. I was like, I have curves everywhere, where they're supposed to be, and it's pretty much relatively accurate-- I mean accurate enough. And it's on the ground at the ground elevations they are supposed to be. You can do some gymnastics with road styles that aren't roads. You can do some weird stuff with roads. This is one of them. So we're cool, right?
Next one-- building. This is the last thing we've got to do in InfraWorks. And I'm going to tell you where these came from. This one I haven't created. I'm going to pull that from the class data. And that is-- that's not good, because I did something totally wrong. It's a 3D model. And I'm going to go to Class Data, Project Files, and I don't mind where I put it. Yeah-- InfraWorks. It's an FPX that I created intermediate.
There's a group they did all these buildings as masses. It's Cyber City. Show of hands-- anybody work with those guys before? They've got good models. I think what they're doing is they're taking the regional LAS data that I showed you earlier, and they're boiling it down into a polygonal building model. And then they give you a bunch of [INAUDIBLE] files, DAE files, and they give you a spatial location where it is. They gave me a script that works in InfraWorks that places the buildings as they go. And I know some people here have played with that. But it's a nice data set. They're not textured, unless you pay them more, but they are available, and they are spatially accurate at height and the right location. So, it's pretty cool.
I'm going to configure. And just trust me on this one. This one's a little bit of a leap of faith. I created a coordinate that I'm controlling the whole model against. And I've just kind of pre-canned that. And I'll explain that when I'm done here. And I want to make sure I get the right number-- one, two, three, and this is negative five. Close and refresh-- we'll see if that works. What is it? It is a building. And we'll close and refresh it. And we've got a little bit of spatial shift, because I'm canning this for a little bit of speed. But that's it. We just built the model.
I don't even know what time it is-- 5:06. I'm sorry, 4:06. I'm on central time still, which means we still have tons of time. So I'm in a good mood. That's it. We've done everything we need to do in InfraWorks.
So now the coup de gras-- I want to get it into Stingray. How do I do that? Show of hands, anybody deal with Stingray now 3ds Max Interactive? There's one-- not many, two, three, four, five, six. There's a few. It's really not a hard tool. I am not-- I'm a novice, moving into an intermediate range. I am not an expert. I wouldn't even say I'm an intermediate, heavy player. I don't get in this program a lot. That's the cool part of it. You just don't really need to know a lot to get this thing to work, which is pretty nice.
I played with some others, Unity Unreal. I struggled more. The learning curve is steeper for me. I felt that 3ds Max Interactive was just a cleaner way to go. That's me proselytizing. I'm not getting any endorsements from them. I'm just telling you that in my opinion that's where I'm at.
I'm going to export this model. I'm going to export as a 3D model. And I'm going to do the whole friggin model, use entire, same coordinate zone-- cool. Remember I had that canned user defined point, what am I doing there? 3ds Max, Revit, all those things, they've got a single precision or 32-bit deal, and everything that's out in state plane goes nutzo. It just loses its freaking mind. It doesn't know what to do, because it's so far away from the origin.
Back when I started, when I was young, just slick pup right out of college, the lower left corner of the world was 5,000, 5,000. In civil engineering, do you all remember that? We just picked a corner, and we just arbitrarily-- we're doing that in 3ds Max Interactive and Revit now. We've gone back in time to do that, because of this single precision issue that we've got. So I picked a coordinate that was round and even, that was in the lower left hand corner of the model, just to get everything close enough to the origin. That is 3113000 and this is 100072000.
And I want everything and I want the textures, yes, please. Merge all as the same object. Make sure that I put this in a place that we can get to it when we are in 3ds Max Interactive. That is run09. Let's call that working-- keep me honest, if I can't find it later. And I think we're OK. So now we're barfing out an FBX file with all the textures. And it's spatially accurate. It is true scale dimensional world stuff. We're done. I just did it. That's how fast it can be.
So I'm going to jump over into-- 3ds Max interactive is not loaded. So we are going to suffer for Andy loading 3D Studio Max-- sorry, Stingray. I've already loaded a project, so when you start it gives you a template of what you want to build. We're going to do a car one first. And it takes a few minutes to load all the assets in the default. Once you have done it once, it's a little faster to load.
So this is the standard 3D Studio Max Interactive, formerly known as Stingray Project for Driving Template. I'm going to delete everything in this template, except the basic floor number one, basic floor is fine. And I'm just highlighting and deleting. And I'm going to make sure if there's anything else that I need, get rid of that reflection probe. And we'll delete the wall. I think that's it. That's all we need.
So now I need to bring in that FDX file that I created, because I want to drive on it. I want to feel cool that I can drive around on it. I'm going to go to the content folder under Models. Organization matters a bunch in 3D Studio Max Interactive. And I'm going to create a folder. And we're going to call that AU2017, and say OK. That's where I'm going to import-- this Import button over here, at the bottom left. I'm going to import that FBX file, which I'm going to do the one we just created, just make sure that I'm being legit.
This window-- warning, danger, stop, drop everything, pay attention. This window will screw you up if you don't pay attention to it. I like to create a materials folder. I like to create a texture folder. I'm going to turn all of these off. I'm just going to import the tangents. That was the one that if you don't check it, you're going to be sad, because what it's going to do is it's going to break everything by texture. You want them all to come in as one bad boy. And we'll import it. This is going to be relatively fast. It's not a big model.
Notice you've got your materials in your texture folder. And now that IM export that we created is brought in. Obviously you'd want to name it something better. Drag it into the space. And over here on the translate, I'm just going to right click to 000. And then I'm going to double click to zoom to that unit. And by the way, navigation is a little weird. It's W-A-S-D and the right click to pan. And if you start moving in, and you're like, oh, my gosh, it's taking forever. It's super slow. Just roll the mouse forward, and it starts speeding up. And if you want to slow down, just roll it back. It's strange. It's not like anything you probably really used. It's takes a little while to get used to.
So now I want to drop a car on it. The car is preloaded in the standard drive template. It's already there. The physics is working. It's ready to go. But the engine-- let's call 3ds Max what it is, a game engine-- needs to know that you've got collisional physics. Everything can crash into, that you can drive on it. It needs to know that gravity applies and that it should intersect into it.
So I'm going to right click and say Open Unit Editor. And this might take a second to load. I don't even need to see it. It's going to try to show it to me. I'm right clicking and saying Create Physics Actor. So what is that doing? It's like shrink wrapping the mesh. And every polygon is now a physiced object, that you can step, on or drive across, or collide into. Game engines all have different terms for this, but they all do this. If you have computational speeds with size of mesh, you can do a level of detail calculation to simplify that mesh, but then you're only driving on what you've simplified. So you might ramp up the curb, because the poly mesh is a little simpler-- I won't get into it. But there are ways to do it.
Now I need to make sure that when I start the car, it starts in a place that is on my model, which is kind of a pain in the ass, because if you start right now, you're going to drop onto probably that ground one, that basic floor, and my model is 900 feet up in the air. And 5,000 feet that way. So I need to correct that. This is a pain in the butt. It's not hard. It's just something you're going to forget.
So under Scripts, lua-- now I'm going to get in a little bit of code. So if that scares anybody, I'm sorry. You just need to get in there and mess with it. There's not much you need to do. I'm under the player.lua file. And I'm going to go to line about 110-ish. So that's where it's starting the car. So world.span unit-- the car, put it there. That's a Cartesian coordinates, XYZ. So I'm going to place that car where I need to start, which is -825, -202.
And you're like, how in the heck Andy did you know that that is the right place? The easiest way is to create another object, just don't delete the cone or the cube or something that it loads in by default, and just place it on the model. And then write that coordinate down. And then add a foot or two vertically, because what happens is when that car loads, you want it to drop onto the surface. If it's right on the surface, it will drop right through, and you'll go meet the devil. You're going to go straight down. So we will save that.
And we will play it. Where are we at? 5:15-- we're only 45 minutes in. And I'm done. I'm kind of done. So what I'm doing is I'm using the mouse and the controls, but this is it. This is what we've just baked live. And we did all this stuff pretty much straight out of the box, and just did it. It is let me drive-- and the buildings. Let's see if I can go find one, and crash into it. Since the buildings are all part of the same mesh, they are also physics actors for collision. Do I need a driving simulation. No, not necessarily. But what I've found with real time--
I'm going to stand up and proselytize for a little bit, because I need to. Real time will do things with your clients that you have not seen yet if you haven't tried it. So I played with a couple of things. Show of hands-- who has shown a client a stereo pano that you've rendered out? There's a lot. I mean we've all tried it. And the first thing that they say, the first thing they say, and it pisses me off every time they say it, can it move. I want to go over there. I want to go over there. I want to go over there. And you're like, oh, I have to statically render that out.
It's an effective tool, and it's really lightweight, which is why we all do it, because we can put it on a Google Cardboard, and we can show people. But their next question is, I want to move. So why real time? You go show a developer client, whoever, your site that you just created in Civil3D that you just put coverages on, and you ran out, and you go to real time, and you show them, heck, you hand them an Xbox One controller. And you go, go nuts, go over there, look over here, you start having this very engaging conversation about sight, and sight lines, and wall heights, and curb limits, and utility conflicts, and fire hydrant locations, and inlet placement, and building sizes.
And all that stuff becomes much more engaging to them because they're not looking at a topo map. Some of my clients sadly can't read topo maps. They can't read plan and profiles. They don't understand what they're really getting. They're usually so consumed with the building, that the civil is of an afterthought. It's something that just has to be done, and it's a necessary evil to get my permit, until I put them in real time. So I like doing real time in a screen.
I think VR is slick and cool, and it actually has a very powerful use, but it's not interactive, unless we can all get in there together, and have that conversation, it's not necessarily the right way. AR I think is going to be more engaging. But the second I put that VR helmet on my client he kind of disappears into it and he's not as fluid with the conversation. And again, I'm not building the world's most highest res. I'm not going crazy doing light baking, and ambient inclusion maps, and level of detail. I could, if I had to, but I'm trying to do this one off and I'm trying to do it fast and effectively cheap. And I can do that with this.
But real time is more powerful than a rendering, and we all are starting to realize that. I think the right platform for real time right now is the screen. But what? Andy, I want to do VR. I came to this class because I want to do VR. That's really why I showed up. I don't know if that's true. I hope you're taking away the fact that VR is not necessarily the all that you need to do. You need to start understanding workflows to ingest into real time. That is the most important thing to understand right now, because you're going to ingest it into 16 different systems, some that haven't even been built yet. And if you can understand how to get your content to be more ingestible in real time, start thinking about poly counts, and draw calls, and batches, and those type of things. This is game speak.
And I apologize if those don't really quite understand what that is. Strangely, and sadly enough for civil engineers and architects that matters now. The game world has sucked us in. And we're now part of that. And they have spent hundreds of billions of dollars to figure out how to do this. So the AEC industry spends very little, and we get all the benefit, which is cool. We're a little late to the party, but we get all the benefit.
So Andy, I want to do VR. I think your driving simulation is cute, but I want to do VR. You can do the same thing in Stingray. Now I'm not going to be able to demo it, because I wasn't able to set up the lighthouse. We can do it after the class if anybody wants to try the model. But I'm going to have do that offline from the presentation. But I can show it to you. And I'm going to preface that with we did a couple of things-- well, we'll talk about that once we do it.
So VR in Stringray-- how in the heck do I do VR in Stingray? I'm going to open a new level. Nope, cancel-- I'm going to open a new project that I've already started. New project, Project manager-- I'm going to pick-- Juan, are you out there? 9b, right? We had some issues a minutes ago. And I don't even care if I say that. I've done it so many times.
There is one hidden feature that makes VR for first civil sites-- and you're like wait a minute, why did he preface it with civil rights, why does Stingray even know? I'm going to say a new level. And I'm going to go back down to Content and Models. And I'm going to create new folder. And I'm going to call that bad boy AU2017. And I'm going to say cool. And I'm going to import that same model that we did before. And yeah, it's going to get a little strange here. But remember this is the box that if you don't pay attention, you're going to be unhappy. I want to combine. I don't need cameras. I want to import it.
And I'm not going to be able to demo this, because I don't have the HDTV I've hooked up to it. That's not the point. The point is this-- we'll bring that bad boy in, zero it out, and we will go click, double click, zoom to it. Remember to roll your wheel mouse to get in there. And you're like, what in the heck is going on Andy? There's fog and all kinds of weird stuff in there. We'll talk about that in a second. I'm going to create a physics actor for that.
And you're like, why are you doing that in VR? Well, because you need to teleport to certain locations. In order for it to know where to teleport to, it's got to have a physiced target to be able to get on to. If you want to stand on the surface, it needs to have a physiced object. So we're going to open that in united editor like I did before. Let me make sure I do that. I feel like I'm missing something. No, that's right. Cool.
So we're going to create physics actors like that before. And this is where it gets a little strange. But we'll say OK. Sure, we're good. So I have physics actors. VR-- anybody put anything in VR and been happy about it? Happy with the results, unhappy with the results? Good, thumbs up. Good.
I wasn't when I started. I was very disappointed. I was very disappointed. VR, for those that haven't really done the math yet-- again, now I'm getting over to the game industry world. I'm getting out of the civil world, and putting on my game engine hat. VR needs 90 frames a second before you feel motion sick. Most video games operate at 30 frames a second. Some operate at 60 now-- but 30 hertz and 90 hertz. Why does that matter? Well, I can do with the same card about a third in VR that I can do on a screen when it's interactive, when you just do the math.
VR has got two screens not one. So now you're playing with that too. So in VR you cut your capabilities down dramatically by a third, sometimes less, of what you can do on a real screen. You've got to be mindful of that. You've got to start looking to the game engine write-ups. If you go look at the write-ups from the game developer conference, they have all kinds of papers about this stuff, about how VR works, and what your view frustrum is doing, and how you're culling. This all matters, because you're trying to render a frame every 11 milliseconds, over and over and over and over and over again.
So you have to start optimizing. And there's only certain things you can do. So I did a square mile of Austin-- not pretty, but spatially accurate and effective. You're in the right place. Everything looks good. It's not on the level of what a 3ds Max guy who'd go nuts and pretty up the buildings. The civil engineer in me just wants to get it effectively spatially accuracy and see what can be done cheap. How many man hours did I spent on this project? Like 45-- that's all I got paid-- 50 probably. If I had 500, yeah, we would go nuts. I didn't have that. I had to do it fast. I had to do it effective.
But now that I've got the VR model built, I need to teleport to specific locations. How in the heck do I do that? There is one flow node that needs to be replaced to allow teleportation and it seems weird, but that is true. And I'm going to explain what the heck that means. So you load your stuff into VR, and you want to teleport to a location, it is looking for a normal vector of a surface that is straight up. So if you take this flat ground, it is straight up in the air. And right now the default template out of 3ds Max Interactive says is the normal straight up? If it's not, I will not let you teleport to it.
And you're like that's BS, because I want to go to a road that's at a 2% grade, which is not flat. Everything in Civil 3D is not flat, except maybe you're building foundation slab. That's it. Everything else is sloped. But do I want to go to a vertical faced wall? I don't want to teleport into that wall. So where do you break that line off? Well, we've got to pick something. I like one to one, 45 degrees. Anything steeper than that, I ain't going to it. Anything flatter than that, I can. So that's where I draw the line. So the normal vector for teleportation is baked in by default to be straight up, that you can only go there if it's straight up, even if you get physics actors on your surface.
So you'll get frustrated if you do this, and don't do this one switch. Where is that? Oh man, it is buried. This is Oculus HTC vibe. It's going to be about the same. Is that right? I have this written down. So I'm going to cheat, and make sure I go to the right spot. It's under VR Oculus, Models, Controller, Functionality teleport, and I think that's it. Yeah, it's the flow of the unit for the teleportation itself. And let's make sure that opens. I hope that opens. Yeah, it opened. Cool, if I can get to it. There we go. And it's not playing nice, but that's fine.
What in the heck is all this? This is chaos. These are flow nodes. And this is kind of a graphical coding methodology in 3ds Max Interactive. It's a lot of stuff, so you don't have to write stuff yourself. It does look spaghettified a little bit, but once you really start to understand it, it matters. I don't expect anybody in this room that isn't initiated in this to really quite understand at this point. All you need to know is there is one box in here that needs to be replaced.
Which one? Let's zoom in. Check normal for spawn location. So it's trying to figure out if you can validly teleport to a location. And right now it says if it's equal to one you can go, and if it's not equal to one then you cannot. That's why you can only teleport right now out of the box to flat surfaces, which sucks. How do you fix that? So you're going to right click, and we're going to add one flow node. It's a math. It's a numeric. Again, this is all in the write up. Greater than or equal-- and you're like, greater than or equal to what? Well, remember I told you we're going to do one to one, 0.5. And I'm going to wire the z into that. And I'm going to add the value. It's going to go on the blue line. And I'm going to delete this equal one.
Now I can teleport anywhere that's physiced and it is 45 degrees or flatter. Pretty cool right? I mean it's so freakishly obvious once you see somebody do it. Poor Andy had to pull his hair out for about three hours trying to find this dang thing. It wasn't obvious to me. So you get that for nothing. You're welcome. My frustration is your benefit. So we've done all that.
Back to that optimization issue. There are certain things that we need to do. This shading-- the default. We'll let that do that. There are a lot of defaults on the global settings, cascade shadow mapping, fog. Fog is a load on VR. It's just another thing for it to calculate. You can turn that off.
Exposure-- that doesn't do anything as far as a calculation that I understand. Motion blur-- one of the old Stingray templates used to have motion blur turned on by default. And you'd move your head, and you would get this blurred sickness. So I had to turn that off all the time. You don't want that on. Lens bloom-- turn bloom off unless you really need it. A lot of this can be done with reflection probes and stuff. I'm getting way outside the scope of my class on this. But there are ways in 3D as Max to bake in lighting, to get reflections to work right. But a lot of that stuff you want to turn down. Again, that's back to that optimization.
Now what did we do with the Austin model to get it to work and did anybody-- show of hands, did anybody find it on the floor and try it? Just a few. It's in the back corner over by that drone cage. So it didn't get a lot of traffic. But they were showing it. I broke it into squares. So I took shape files, and just broke it up into grids, and you go to certain parts of the city, because I couldn't do the whole square mile. Again, that's back to that polygon optimization, and the fact that I didn't really go nuts trying to do LODs, and all that kind of stuff. I could have.
I do not know, and if there's anybody from Autodesk, they can answer this question later. I do not think, at this point, they do any terrain streaming. I know some of the other game engines are experimenting with that, meaning it loads as needed. A lot of people that play those big open world games, it is doing terrain streaming as well. So there's a little bit of makeup room there to be able to get really big terrain-ed models to work, or that's maybe just my ignorance that I'm not doing it the right way. There probably is a good clean way to do it. I don't know how much effort it takes.
So I'm going to jump back to-- not Tony Hawk. Let's go back and just talk about what we did. We did SAGA. We got that DEN. We smoothed it out. We did Civil 3D. We got markings on [INAUDIBLE]. We did curbs as roads. And we went nuts in InfraWorks and aggregated it. And you're like why InfraWorks? InfraWorks is a great product for data aggregation. I mean it excels at it. And it's spatial.
It is a GIS game engine. And that's how I explain it to people. They're like, what is InfraWorks? I'm like InfraWorks is a game engine. It does procedural creation of roadways. I mean it's like if you went to the 3ds Max Interactive, there's a bunch of tools that do things automated like create platforms, or things for games, or conveyor belts. That's what InfraWorks is. InfraWorks just says, create a road from here to here, and follow the terrain. Go. And it does it.
So we did all that in InfraWorks and we barfed it out as an FBX file. We put that into 3ds Max Interactive. We created the physics actors. We moved the location. We could drive on it. To go to VR, we moved that over, and got the normal vectors to work. It doesn't seem that hard. Here we are at 4:30. I don't really need 90 minutes to do this. And we're getting to the end. So we did all this stuff.
So here's my wrap up. And we can go back and look at other stuff, if anybody's interested. But I just want to make this obvious and direct. This isn't that hard. It scares people to death, because you go talk to a firm that does VR development, maybe for a game company, and they pretend like it's this huge deal. And 3ds Max Interactive, formerly known as Stingray, has made this super easy for civil engineers and architects, which is a niche of that game engine, which is cool.
This teleport mechanic works on the HTC Vibe. It works on an Oculus. If I had a preference and a bias, I like the Vibe better. I foolishly bought an Oculus early, kind of wish I hadn't. But they both work. The room scale for HTC Vibe just works a little cleaner. The next generation of stuff that comes out behind it is going to do inside out mapping. That's what your new iPhones are doing. It's building the point cloud on the fly. But you don't need the trackers. Maybe you will, but I think those will start falling away a bit too.
That's kind of it guys. I just want to tell you the stuff that I'm supposed to tell you. If you like the class, fill out your survey. If you hated the class, don't fill out your survey. And hopefully they recorded this, and there is a bitchin' write up that is a freaking book that you can do all this stuff on your own, step by step. And I encourage you to try. If you've got questions, please you can ask them now.
But if you've got questions a week from now, trying to figure out what the heck did Andy do, call me, email me. I'm available. I might not be daily responsive. But I can respond. I've got a business to run just like everybody else, and clients that like to scream too. But between the screaming clients, I might just need to feel good about myself and answer a question about something that's a little bit more fun.
That's it guys. I will take questions from the floor. There's one in the back.
AUDIENCE: The north arrow-- you said you [INAUDIBLE]
ANDY CARTER: Ah, you want to see the north arrow. Does anybody else want to see the north arrow?
AUDIENCE: [INAUDIBLE]
ANDY CARTER: I will do that. And I will do that fast, as fast as I can. We will open a level. I cut that out, because I just thought I wasn't going to be able to get to it. I don't want a level, I want I project.
Let's go back to car 9. We'll pick that level. And sure, it's just whatever-- cancel. We're going back to the car template and we're going to put that north arrow in. This is also in the write up. The resource files are provided. It says bonus in the write up, like you can skip it if you don't want to do it. It is not required. I'm going to go to Content. And we're going to go to a UI, which is user interface. And we're going to do this HUD, this template heads up display, S2D. And you're like, what in the heck is that? I think that's right.
It is going to launch a program called Scaleform, which is part of the install footprint of 3ds Max Interactive. I do not know how much longer it's going to live there. There might be something better coming down the pike. I don't know. But right now this is where it's at. I'm going to import a file, which is a SVG, Scalable Vector Graphic file, because those look cool-- better than a PNG or JPG. It's an actual vectorized image. We will pick Class, Project Files, Stingray, compass.svg. We'll drag it into the space. Now we have that compass. Save project, close it, hit play.
I'll show you what it does. Right now all it's doing is putting SVG on the overlay. It's not rotating in real time as you go. So how do we solve that? Two steps-- one, we're going to do something in Flow. Two is we're going to do something in Lua to code it and connect the two. I'm going to go to flow first. And I didn't do this, because it scares a lot of people. There's just a lot of weird coding for engineers and stuff, civil engineers, not software engineers. I'm going to go grab a file that I have pre-canned.
And you're like where in the heck does this come from? You can do all this in Flow. I copied it out, just so I could copy it in. So we'll do that one. And I'm going to do a copy-paste. And you're like, what is this? This is flow. Every level update, I'm going to run it. So 30 hertz, 30 times a second. And it's got to figure out what the active camera is, figure out the rotation of the camera, get the rotation components of the z-vector vector of the camera effectively as it's watching. That's actually wrong. I'll change that to zero. That comes out as a number. And then it's going to turn it into a string.
And then I've got to concatenate that string as a colon delimited value, rotation angle colon, whatever the value is, and it's going to pulse that back to Stingray at 30 times a second. I'm at this rotation. I'm at this rotation. I'm at this rotation. Nothing's built yet to receive that. And we're going to do that in the Lua code to receive it, and be able to process and rotate that SVG file in real time as we go. But that's what that Scaleform dispatch is. It's effectively a broadcaster that's just sending back a colon delimited. And you can send 40 of these, and it will filter them down. The more you send, the more it's calculating. I want get into that.
The main .lua of that same place-- I've got to do two things. One is I've got to instantiate the variable that will allow the rotation of the north arrow. And the other one is I actually have to parse and receive those colon delimited values to be able to do something. It's a two-step process. I've got to find the code that I wrote, because I'm not going to write that on the fly. That would be tough. Let's see if I can go find it. That is under D, Class data, Project files, Stingray.
All these files you have. It's on the resource deal. You can download them after the class. You can download them now I think.
Rotation-- nope, that's the flow. That's the code. The first one is the instantiation, which I'm going to put right here. So that's going to say local compass image equals scale form.container dot component actor by name, children. And then that's that SVG file that we brought in, that 4_1. I named that file that way. And in scale form actor set reference point put it move it to the center so we can rotate it around the center. Those are the two lines of code there.
The rest of this is the parser. And I'm going to put that down here. And I hate how it puts all those in there as I copy them in. That's OK. So is this doing? Like I said, it's parsing, and looking for that colon delimited text. And then it says, T1-- remember it says, rotation angle, colon, and the value. So the first one in the array is the rotation value. If it is that, then take that compass image and rotate it by the second one in the field, which is T2. This will work for any broadcast. I do this for the map that you saw in the previous one as well, as I do the world to map vectors as I port around.
That's it. So we'll save that. And now that I've pretended like I did this really well, it probably won't work, but we'll see. Yeah, right. There you go. So that's beyond a beginner's trick in Stingray, to be honest with you. It's not an advanced. I mean it's somewhere between the two. But you have all that code if you want to try it yourself. And you can start expanding that to other things.
So a lot of games in the industry-- let's see if I can do this. This is an interesting case study. I tried to pick something that showed a lot of outside. I mean the game world has a lot of heads up displays now, with where are you at, what direction are you looking. We all remember Halo that had a little map in the bottom corner that said which way was north. And you can get lost in your models if they're really big. And some heads up display stuff does help. Does that answer that question? I know that's a long answer, but that's how that north arrow works.
It's again, a little bit more advanced for somebody that's just getting their feet wet in the 3ds Max Interactive, my personal opinion. But if you want it, you can do it that way. And if you noticed earlier when we were driving down the streets, and the street names came up, I had boxes that are trigger boxes, a bunch of them running east-west, and a bunch of them running north-south, and as you drove over them, it pulses back the name of the street that you crossed into. I don't know if you'll remember that, there were two at the top. Any other questions? Hard ones?
AUDIENCE: You can add and maybe display the elevation on your model.
ANDY CARTER: Absolutely.
AUDIENCE: So that'd [INAUDIBLE].
ANDY CARTER: Yeah, I mean the car itself will have an elevation. You'd have to query the unit of the car, and pulse that back at 30 frames a second to actually have-- or whatever. I mean it can be the camera that you're flying around, however you're wanting to do it. The camera itself obviously might sit above the ground. And if you get into a free mode, you're floating way up in space. You can even do a ray projection down of the ground from the camera itself, and figure out where it hits and figure-- Yes. The short answer is that yes, you could easily do that. Is it possible.
AUDIENCE: [INAUDIBLE]
ANDY CARTER: So not many people tried the city of Austin model. I have four or five textured buildings that I stole from some online source, because I wasn't going to model buildings. And the 3ds Max Interactive guys created a really cool script that was a laser pointer. And I turned one of the Vibe controllers into a laser pointer. And you'd point at that building, and when the physics of the laser hits the building, it goes, ah, that one. And it brings up contextual information in front of you as to what building it is. So you're like, all right, well, what can I do with that? You could have a wastewater line and poop the manhole, and just point at it, and it goes, that is manhole 5728, and do you want to see the plans? You could. I don't know if you should. But you could.
AUDIENCE: [INAUDIBLE]
ANDY CARTER: I have a transparency mechanic on one of the triggers are the HTC Vibe. You can turn it, and see, oop, there's the utilities. You turn it off and it goes opaque, just as a of back forth deal. There are a lot of tricks that you can do. I mean, it's a game engine. You can do whatever you want. It's just a matter of time, and money, and effort, and knowledge. Go ahead.
AUDIENCE: [INAUDIBLE]
ANDY CARTER: You can do it either way. For me it was easier to-- so the question was, can you bring the buildings in directly into 3ds Max Interactive? And the answer is, yes, you can. And can you bring them in to InfraWorks? Yes, you can. For me, I'd have to physics every building individually, if I brought them in individually. And I didn't really want to do that. I wanted to skip that step, because I'm lazy, and I didn't have a lot of time. But yeah, you could. So the textured buildings that I brought in, that you can hit a laser on individually, I did have to bring those in separate, so it knew which one was which when it was hitting it. But all the rest of them on a macro level, I didn't. So both workflows do work.
AUDIENCE: [INAUDIBLE]
ANDY CARTER: I mean if you want to bring it in, you can bring it in however you want, an FBX, on its own, it doesn't have to be through InfraWorks. You can bring it in. If you want physics colliders, it's an extra step. Just turn them on. And you know, sometimes those Revit buildings might have so many polygons, you might not want that. But it's really cool to just stand in VR, and point a laser up a building. It's kind of neat, just as you're talking about stuff, and your client is in there, and you're trying to proxy next to them, and you're like no, no point a little higher, that one, what we're talking about. So if that helps-- Go ahead, sir.
AUDIENCE: [INAUDIBLE] bridges [INAUDIBLE].
ANDY CARTER: The bridges were a trick. So originally when the Autodesk team challenged me, I was like, oh OK, well, I'll just use the bridge modeler. Anybody use the bridge modeler in InfraWorks? A few. It's not bad. It's actually a cool program really. I'm not a structural engineer, so I probably don't appreciate it on a level I should. The problem with it is it generates a gillion polygons. You get every bearing pad and bearing plate, and you're never going to see it. From an FBX perspective, do you really want all that? And my answer is, probably not.
So what I did was I actually started there and I ended up just drafting it in CAD, just 3D CAD, extrudes, pushes, sweeps and lofts, and all kinds of stuff. And it was cleaner and a lot lighter. But I learned that one the hard way, because I thought oh, this bridge is going to be easy with the bridge builder. And it is. But it's super fat. I mean it was like half a million poly's for each bridge or something. It was a joke. Like I said, you need all that if you're designing it. You don't if you're visualizing it. And that's where you get back into that level of detail in the optimization. That's a good question.
AUDIENCE: [INAUDIBLE]
ANDY CARTER: Cyber City. I don't know. I think they're out of New York, maybe. I might be getting that wrong. They have a subscription model service. I think you can get a city for a year. And I don't know what it costs. I know they've been experimenting with that. They've also been trying to partner with InfraWorks to have an ingestion platform where you can do like with Model Builder and sample an area. They're saying, well, if we had a bunch of buildings, I could sample the buildings. And they've got Vegas, and New York, and Boston. And every couple of weeks I see them post something like we now have Paris, or something will come online that they didn't have before. It's a good service. Sir?
AUDIENCE: [INAUDIBLE]
ANDY CARTER: The 3ds Max Interactive will use an Xbox out-of-the-box without any kind of finagling. And then at some point I would compile it into an EXE that would be a Windows EXE. And it would still use and it still uses the Xbox controller. The Sony PlayStation 4 controller I think also works. I don't own one, so I haven't tried. But sorry, I'm going to do this, because it's going to be fun. Anybody want to drive while I'm talking? Raise a hand. Yeah, back there.
AUDIENCE: [INAUDIBLE]
ANDY CARTER: OK, go ahead.
AUDIENCE: [INAUDIBLE]
ANDY CARTER: I haven't tried that, but I understand that you can do that. Everything that I've ported has been to a Windows EXE straight up. The machine that I'm running this on is hefty. It's an Alienware. It's got a 1070, GTX 1070. It's a beast of a mobile graphics card right now. I can run it on my machine, and I don't even know what graphics card. That machine is probably two or three years old. And it runs, but it chokes. So it's back to that hardware optimization issue. Sweet. Anybody want to drive, because at least they'll record it while I'm talking so people at home can watch. Somebody?
There you go Larry. Hit A to start. But yes, it will do that natively. The hardware to do the VR stuff, if anybody is curious, is probably-- so I've got a hardware box that's a VR system-- if you want to try to do the same thing on your own. It's about-- it drops every day-- $3,000s. It's in the ballpark right now, for a really good mobile graphics card, a portable case, and all the equipment to run it. So it's not cheap, but it's not obscene either at this point. Yes, sir?
AUDIENCE: [INAUDIBLE]
ANDY CARTER: Do you know how InfraWorks water is working?
AUDIENCE: [INAUDIBLE]
ANDY CARTER: It's a gimmick that's been done by that billion dollar game industry. It's a panner shader, so you-- you flip it? Ahh. I knew he was trying.
So it's two materials that are kind of continuously moving across each other. And I do not think that that water-- that that shader in InfraWorks is cleanly translating from InfraWorks 3ds Max Interactive. I do not think that that translates. So what I had to do in mine was I had to build a brand new shader in 3D Studio Max Interactive to get that panner shader to work right. It's the same type of thing, but I don't know if the shader ingestion is just something I don't understand well enough, and I'm missing something, or if it just can't read in the first place. I don't know.
AUDIENCE: [INAUDIBLE]
ANDY CARTER: Ah, see, we've got somebody that has the right answer. He says you can download the water shader. And it's an online asset that you can pull across.
AUDIENCE: [INAUDIBLE]
ANDY CARTER: No, the trees are not randomized. And I'm very proud to say that they're not. There is a Russian guy that's figured out-- I know. I'll get over that. You cannot drive off the edge of the planet. There's an invisible wall there that you're crashing in to. The trees-- there's a Russian write up, a GIS write up, that takes the classified LiDAR data, and starts running smoothed bell curved hills off of the trees. And we'll reverse those into points on the top of each tree. And you get a shape file of where those trees are actually located.
AUDIENCE: [INAUDIBLE]
ANDY CARTER: No, that's something buried online that I found that is just a workflow. You can do all that with SAGA. What he's telling you to do, you can do with SAGA or ArcGIS or whatever. It's just a workflow. You create a DEM of a non-mode surface and a DEM of a mode surface, and you start running subtractive algorithms, and it's like a 12-step process. I was not going to go through that here. If you can get a really good level of detailed tree, the guys at Stingray, now 3ds Max Interactive, have come up with-- they actually wrote it for me at my request. It's really just a routine that will place an object at a specific coordinate.
So you do some gymnastics with the shape file that you exported the trees. And you place that same tree over and over again on those shape file points, instead of trying to bring it all in with InfraWorks, which if you do that you are going to cry. It will not work well. You really want to instantiate that tree, the same tree, over and over and over again for speed. It's back to that optimization game. Any other questions? These are great questions. Sir?
AUDIENCE: [INAUDIBLE]
ANDY CARTER: I don't know. Again, it's back to texture drawcalls, how many textures you have. Game engines like binary textures, 512 by 512, 1024 by 1024, it tends to be faster than they have to be. How many and how they're mapped, and UVW mapping and wrapping, and all that stuff. Yes, you can. It's time consuming. Or you find a service that provides it. It's one or the other. Larry, are you still trying to flip my-- You can. You can drive right on top of the water. You don't go down. It's just a surface. It's flat.
Now it opens my mind to possibilities. And I'm not sure where to take this to be honest with you. There are some cool things you can do. And I hope that somebody in here just blows the doors off of what I've done, and just impresses the crap out of the rest of us, because I think it's an opportunity. It's this it's lost world that we don't really quite know where to play it.
Yeah, it's an amphibious craft. The trees kind of float. It's back to that error, because we smoothed the ground, especially around the-- one of the things that I've thought on the shoreline, which is interesting that you all are there-- is specifically in VR, and game engines in general, VR likes to do-- if you take an InfraWorks building, and you push the facade all the way to the roof, I went the the best facade that I can get. One of the guys my office calls them facades. We make fun of him. [LAUGHTER] But he's a good guy.
So you push the facade all the way to the highest detail. And you export that into 3ds Max Interactive You get Z-fighting. And you're like, what the heck is Z-fighting? Z-fighting are two materials so close to each other that it doesn't know which one to render, and you get this flickering. So it just goes nuts. The building styles coming out in InfraWorks, even the really detailed high end ones, have Z-fighting issues. And you can get some really cool textured buildings, but they've got some cleanup that needs to be done. I've talked to the guys at the infrastructure group about that. It's on the list. We'll see if they get to it. But if not, you've got to go into Max and start cleaning. And it's tedious.
Or you just find a building style that's a little better, and not have any Z-fighting issues. There are a few. Some of them are good, some of them aren't. You just have to test to figure out which ones are working. But on the water we had the same problem, because right on the edge of the shore where I had the water, it was Z-fighting. So I went into Civil 3D and graded the lake down to nothing, and then pasted it back in, and then exported the surface out. So I faked it to be a little bit more severe on the banks than it actually was. It seemed to help. So great questions.
Nobody is asking about the grass. It is a shader. The grass is a shader. It's a fir shader. I mean it's for fur on a monster for Monsters Incorporated That's what it is. But that's how you get grass to work. That's all it's doing.
AUDIENCE: [INAUDIBLE]
ANDY CARTER: I'm sorry, say that again.
AUDIENCE: [INAUDIBLE]
ANDY CARTER: This is one of those questions that I don't like to answer. Why did I not use Model Builder from the ground? As a civil engineer I like to control the data that I have. And I'd like to know exactly where it's coming from with the accuracy. I like to know the docs and the specs of vertical and horizontal. I like to know that it's classified, just where it comes from.
The data that I get from my regional agency is well documented. I know exactly where it's coming from and how accurate it is. And I just like it better. It doesn't mean that I couldn't use Model Builder for this workflow. I absolutely could. I mean there's just no doubt that it would work. I just don't like using it, to be honest with you. It's just too black box for me. I'd like to know what I have, and how I did it. So any other questions? None?
AUDIENCE: [INAUDIBLE]
ANDY CARTER: Yes, sir, shape files for curves.
AUDIENCE: [INAUDIBLE]
ANDY CARTER: It's the interface between-- so the question was, is the curbs that I extracted face of curb, back of curb, edge of curb, gutter. It is the planimetric interface between pavement and not pavement. So I'm guessing it's back of curb, but I could be wrong. So the city of Austin sends me a bill every month that is based upon the impervious cover in my parcel. So they need really, really good planimetric data to know what's impervious cover within my parcel, and that's where those data are coming from.
AUDIENCE: [INAUDIBLE]
ANDY CARTER: Yes it is. How I extracted it is not. So that's a little bit of GIS gymnastics to get that to work. Any other questions?
AUDIENCE: [INAUDIBLE]
ANDY CARTER: I did. So the question was, how did I get the white lines, yellow lines, and curb lines? I got a really good aerial and I spent a brutal day tracing.
AUDIENCE: [INAUDIBLE]
ANDY CARTER: And arrays-- I mean I didn't draw every one of them. I drew an array of lines for dashes and stuff.
AUDIENCE: [INAUDIBLE]
ANDY CARTER: The dash lines-- correct. The question was, the dash lines are individual lines? Everything is an individual line. And that's because it's got to be GISy. And every once in a while, you'll drive around on the model, and you'll find a curb stripe or a stripe line that's in a weird spot. That's because I did a bad job of drafting them.
Any other questions? Have I answered everything? You are now all experts and can do this successfully on your projects? Right? Sweet. That's awesome. I know who to call now when I need it done. It's everybody here. I appreciate you coming here. Fill out your survey.
[APPLAUSE]
And we'll go from here.
Downloads
Tags
Produkt | |
Branchen | |
Themen |