Join Aaron F. Ross for an in-depth discussion in this video Render a Point Cloud object, part of 3ds Max: Tips, Tricks and Techniques.
- [Instructor] A point cloud object is just what it sounds like, a collection of raw points. It's not a mesh object, it has no surface, only points. This is a 3D data format common to scanners of various types, such as Lidar. 3ds Max 2018 can load and render point clouds that have already been processed and converted into the proprietary Autodesk ReCap format. I've already done that part of the exercise in the ReCap Pro application.
Instead of scanned data, I'm using an algorithmically generated point cloud. It's a mathematical object known as the Mandelbulb, and I exported it from a free program called Mandelbulb 3D. Let's create the point cloud object in the create panel, under geometry, choose from the pull-down list, point cloud objects. Click the point cloud button, and create it in the top view port, and click right on the pedestal, so we can center it on that pedestal, and then right-click to exit creation mode.
The point cloud is still selected, and I can tell because I can see an axis tripod. But if you need to, you can open up the scene explorer, and just make certain that point cloud 001 is selected, then go into the modify panel, and you see point cloud source, scan file, and then a button, load point cloud. Click on that button, and we're taken to the scenes folder by default, and it's going to try to open up a ReCap document. So there are two formats, RCS is actually the one we want.
RCS is really the object itself, and RCP is more of a scene file definition. I've placed my point cloud into the scene assets folder because that's really the best place for it. I'll go up one level into scene assets, and I created a custom folder called point clouds, go in there, and here is the RCS document. Once again it's the Mandelbulb, and it's exported at a resolution of 1024 points on a side, so that's 1024 points to the power of three, and that's why it has a size of over 250 megabytes.
Go ahead and open that. And it will actually load, but it doesn't always display immediately in the view port. And to sort of force it to display, you can play around with this level of detail setting. And in performance mode, it's going to attempt to call out points in order to improve the view port performance. And in quality mode, it's going to display all of the points. Let's put it in performance mode, and back out in the perspective view with Control + Alt + Middle Mouse, and we can see that it's actually quite large.
It needs to be scaled down quite a lot in order to fit onto that pedestal. With it still selected, choose the select and uniform scale tool, and down at the bottom in the transform type in area, type in a value of 0.5 in the x-axis. And now it's scaled down to 1/2 of 1% in all three axes. Okay, so we can just position that, I'll close the scene explorer, grab the move tool, and get in closer in that perspective view, move that up, and then check it in the left view, get it close there and just position it so that it's just sitting directly on that pedestal.
Back in the modify panel, let's take a look at some of these parameters. We have point display, we can render as a pixel, or as a measurement in real-world size, or scale. And the default is as pixel with a display of one pixel. I can increase that, and we can see that each one of those points is going to become a square. Alright, I'll set that back down to a value of one. To render in Arnold, currently we can't use this as pixel parameter, we have to render with a real-world scale.
So I'll turn on real-world scale. It's got a default value of 0.001 meters, or one millimeter, and we can see that the points are very very small in the view port. To render in Arnold, we also need to pay attention to the rendering level of detail. If the performance slider is all the way over to the left, then we probably won't get any points when we render in Arnold. You should turn on fixed in rendering and control the level of detail manually.
And the level of detail parameter ranges from one to 100, which might lead you to believe that if you set the value to 100%, that you will get 100% of all the points, and if you set it to 50%, you will get half of all the points. But in my experience, that's not how level of detail works at all. The valid range here is actually somewhere between one, and maybe five or six. I'm going to set it to a value of two, and with the default real-world scale of one millimeter, we'll do an active shape rendering.
And it doesn't look like anything. We don't get any points visible, and that's because those points are actually not one millimeter in size. Real-world scale is accurate in the view port, but not in the renderer. To make these points larger, I'm going to increase the real-world scale, to 0.075 meters, and that's 7.5 centimeters on a side. And that's what we see here in the view ports, the points all became very large squares.
Here in the Arnold ActiveShade window, they're just large enough to render as a pixel. So the real-world scale is off by at least an order of magnitude in the renderer. And once we can see that, we can also see that it's got some holes in it. Let's increase the level of detail up to a value of five, and that will fill in all of the gaps. Notice that we have point color in the view ports. The point cloud actually has color data on each point, and that's not showing up in our Arnold rendering yet.
So let's set up a material for that. Scrolling back up near the top of the modify panel, we just need to make sure that the color channel is displaying true color. And open up the material editor. If we wanted to use a point cloud scan as a background, as an environment or architecture, we could assign a matte material to the object, and that would render flat colors, and ignore the scene lighting. But in this case, the point cloud is a foreground object that will receive lighting, so let's apply an Arnold standard surface material, drag that over into the view, double-click it, and rename it point cloud STSF.
With the object still selected, we can go ahead and assign this material. Click on assign material to selection, and it turns white. Let's change up these parameters here. Reflections aren't really going to work on points, so turn the reflection general amount down to zero, and set the base color up to a value of one. And to get those colors on there, we need an Arnold user data node. It's going to be a map, found in maps, Arnold, user data, and it's RGBA.
Drag that user data RGBA node over into the view, double-click it, and in the attribute name, type in the word colors, lowercase C-O-L-O-R-S. And we can also copy that and paste it into the node name up here. And then connect that to the base color of the material. And now we've got the colors from the original point cloud rendering in Arnold. That's a basic introduction to importing and rendering point clouds in 3ds Max.