Blog Post | Building Complex Roads

In Virtual CRASH you can create complex road geometries using the plane object. In this post, we will create a highway interchange ramp. The final result can be seen in this ad video:

We will use the following aerial photo for this example: 

The Google Earth image can be downloaded here.

First we’ll import the photo into Virtual CRASH and use the scale procedure

Next we want to begin working on the ramp. Switch to top-down orthographic view, and use the curve tool to draw a curve that along the center of the ramp. 

Here we’ll also go ahead and insert a plane for the highway overpass. Elevate this plane by 20 feet.

Create another plane for the ramp. Note the arrow runs along the plane’s longitudinal axis, so create the plane to run lengthwise along this axis. 

With the ramp plane selected, left click on “pick node” in the left side control panel in the path menu, then left click on the curve drawn at the start of the exercise.

You’ll notice that the plane object is now forced to conform to the shape of the curve path. The curve remains the parent for the plane’s shape, so if you modify the curve, you’ll note the plane’s shape will update.

Next, note the position-local x and y values for the curve. Set the ramp’s position-local to the exact same x and y values. Doing this will cause the ramp to sit directly ontop of the parent curve.

Next adjust the number of length segments to 100, which gives a more rounded appearance. You can adjust the width segments as well. Because we’re going to use a superelevation for the curved portion of the ramp, we’ll just use 1 width segment. You can use more length segments to create more complex crown designs. 

Note as you make adjustments to the curve tool, the ramp plane object’s shape will adjust in real time.

Next, we’re going to adjust the cross section of our ramp. Left click on the box next to “lateral slope” and select “intervals”. In the pop-up menu select “use: length+angle”. Set count to 1, set length to the needed value (note this is in meters), and set the angle to the road’s superelevation. Here we use 2 degrees.

In the side orthographic view, adjust the ramp so the lowest edges are at about z = 0 feet in elevation.

Next we’ll adjust the height of the road along the longitudinal axis. Left-click on the box next to “longitudinal slope” and select “intervals”. Set the interval type to “length + height”. Here we’ll have two intervals. The first interval will rise from z = 0 to about z = 20 feet, and the second interval will stay constant as it represents the length of road that merges with our overpass plane. 

Now we need to fine-tune our vertices. To do this, we’ll need to convert our ramp object to a mesh.

Since our ramp transitioned from a flat (no superelevation) segment to a curved segment with 2 degree superelevation, we will want to adjust the vertices on the elevated portion of the flat road segment to remove the superelevation. Lasso the vertices on the left side of the ramp, go into side orthographic view, and adjust the z-positions so that they are at the same elevations as those on the right side.  You’ll note that doing this still preserves the incline on both sides of the road. 

Adjust the individual left side vertices in the transition zone from no superelevation to 2 degree superelevation to ensure a gradual transition.  

Finally, adjust the vertices at the top of the ramp, where the ramp merges with the overpass, and ensure the vertices are at the same height as the overpass plane on each side.

Select both plane objects and group them. Then convert the group into a terrain object.

Select the plane objects in the group, and enable “receive projection” to show the color map from the aerial photo.

Because you grouped together the planes before converting to terrain, you have the option to make a single optimized height map which can be useful for smoothing over poorly merged polygons of adjacent planes. 

Hide the optimization height map, and you’re ready to simulate! 

We’re going to do a little more work on our environment. In the next few steps, we’ll create a plane, convert it to a mesh object, and adjust the heights of the vertices to create a tree canopy. We’ll also add another plane to meet up with our overpass so our simulated tractor-trailer can drive from a great distance away to our area of impact which is elevated above the x-y plane by 20 feet.  

Note when you adjust the heights of your vertices, using proportional editing is a nice way to create smooth and gradual height variations from selected to unselected vertices. The mouse scroll wheel controls the width of transition.  

Here we added variations to the canopy. We also added road barriers, as well as another plane to create the pond. After conversion to a mesh object, the polygons of the pond plane object were set to cab material type to make a reflective surface. 

The overall accuracy can be improved by incorporating total station measurements of your subject roadway and adjusting the polygon heights to your measured points using the vertices. A simple example of this process is shown in Chapter 17 of the User’s Guide