View Full Version : Low-poly Lego!
Sastrei 02-25-2008, 07:15 PM Hi all,
Not too impressive maybe, but these are the results of my first tests with normal maps and seeing how much of a texture i can bake from high poly elements. The low poly element is a simple cube, and the hi poly lego pieces are imported ldraw models that have been cleaned up and subdiv'd. Looking forward to seeing what you guys think!
Texture on the low poly consists of
-cavity map derived from normal map
-baked ambient occlusion pass from hipoly
-baked color pass from hipoly
-specular map derived from cavity map
-normal map derived from hipoly
http://www.maj.com/gallery/sastrei/BrickSpace2/brick_render_01.jpg
http://www.maj.com/gallery/sastrei/BrickSpace2/brick_render_02.jpg (http://www.maj.com/gallery/sastrei/BrickSpace2/brick_render_02.jpg)
http://www.maj.com/gallery/sastrei/BrickSpace2/brick_render_06.jpg (http://www.maj.com/gallery/sastrei/BrickSpace2/brick_render_06.jpg)
-Stefan-
| |
PredatorGSR
02-26-2008, 02:38 AM
Well, for something like legos, you wouldn't use a normal map, you'd model the geometry.
RmachucaA
02-26-2008, 03:46 AM
if anything, a displacement map.
Sastrei
02-26-2008, 06:26 AM
It's for game assets, so I'm hoping to reduce the polycount by as much as possible, hence the normal maps. Does it so need the depth as to warrant modeling all that understructure? At the very least, wouldn't normal maps be needed or desirable for the seams that can be seen between joined pieces of Lego? Studs are a different matter, they stand so high off and are such a poly-intensive item by their sheer quantity that they simply cannot be included. By the same token, I thought displacement maps required a large amount of geometry to produce suitable results.
Here's an example of the type of model these textures would be used on.
http://farm2.static.flickr.com/1392/638902802_1b13c2fdfb.jpg
http://farm2.static.flickr.com/1405/638902940_494add7666.jpg
-Stefan-
PharCyde
02-26-2008, 01:38 PM
A LEGO mod for Homeworld 2? Awesome.
I actually just started playing through it again. So good.
Brain Trepaning
02-26-2008, 05:28 PM
Lego is very difficult to make, don't let the naysayers convince you otherwise. I have a couple Lego projects underway also (http://www.gameartisans.org/forums/showthread.php?t=1931)
I look forward to seeing what you do with yours!
JuddWack
02-27-2008, 09:44 PM
The closer the lego gets to the camera, the more apparent the normal map is going to become... and your shots are VERY close. At this distance you just won't be able to make the bumps on the top of the lego look believable.
But if you are going to continue on with this I think your high poly model needs to be tweaked a bit. Only the beveled edges are showing up in your low poly model with the map displayed and not the actual bumps or indents. This is because you have too many 90 degree angles and the cage can't actually see some of the faces.
Imagine creating a cube with an intersecting cylinder. Now imagine viewing this from an orthographic angle so that all you see is a cap from the cylinder and a face from cube. Although the faces connecting the 2 caps on the cylinder exist, you can't actually see them. This is similar to what your cage sees when you are baking from a low poly lego (a box) to a high poly lego (a beveled box with 2 cylindars).
Sastrei
02-28-2008, 01:47 AM
Thanks for the detailed feedback! I knew the height is too significant to pull off for the studs, but still, short of modeling them it's the only method I know of. It's for an RTS, so I'm hoping that like you say, the camera will usually be far enough away that it will at least give the model more surface "texture" that it would otherwise have.
Alrighty, now as to what you're saying about the cage not seeing some of the faces, if I follow you right, you're talking about the problem illustrated here, correct?
http://www.gameartisans.org/gamecon/tutorials/images/joao_5.jpg
The geometry is currently the same general dimensions as the actual Lego pieces, so should I alter the depressions on the underside and the studs on the top and scale in those sections so that the cage can see the sides? Seems like it would make it look very odd. I will try some tests regardless.
Thanks again for the feedback so far, everyone!
-Stefan-
JuddWack
02-28-2008, 02:13 AM
Sorry I couldn't give a better description, I don't have Photoshop or any 3D apps at my work. Yea your image seems to show what I'm describing. You're right, it probably would look pretty odd.......... but since it's not showing at all currently it may be worth a try?
Keep in mind the normal map is just to give the illusion of detail, it's not actually making it. So if the silhouette of the high poly isn't very close to the low poly, it's going to be hard to pull it off.
As Rmachuca said, you may be better off with displacement maps. I haven't actually used one so I can't say, but I know what they do and I know what normal maps don't do, so it's worth a try.
BTW, is there a problem with actually modeling this detail? It's only shown on the lego at the top of the stack and the game wouldn't need to crunch numbers to render the textures. I imagine you can have different LODs set up so the radial divisions of the lego bump decrease drastically as the camera moves farther away.
Sastrei
02-29-2008, 03:18 AM
As for modeling the geometry, I've thought about it for the studs, but this picture hopefully at least conveys an idea of why it may be impossible at a game-compatible polycount. That ship is one of the ones I mean to model, so it can be taken as a literal example.
http://www.brickshelf.com/gallery/KimT/Space/928/galaxy013.jpg
Here it is in an earlier game model incarnation, for comparison.
http://www.maj.com/gallery/sastrei/BrickSpace2/ge_final02.jpg
Note the rows and rows of tubes underneath. Also, if I had to bake AO into the texture, would it even be possible for something with so many polys? I should think only baking the vertex colors into the mesh would suffice at that point (ok, I just realized I could drop all those down into the same uv coordinates, but there are other subtleties that would be lost). I don't know if I've ever actually thought about decreasing the radial subdivisions, that may be something I'll want to look at. Also, I will try a displacement map.
I did try scaling areas of it. This was just to get a sense of what it'd look like, more than the amount of scaling needed. Though I do like the way the outer edge turned out (though definitely gonna tone it down), the ring in the center is way off in the looks department. Suggestions?
http://www.maj.com/gallery/sastrei/BrickSpace2/brick_render_07.jpg
Oh, ignore the round thing off at the end of the row, it has no cage subdivisions to keep it's corners in place. :)
I think it's time to start on one of the simple rocket models, and use it for a guinea pig. They just released a new Blender SVN revision that has adjustable beveling.
-Stefan-
Brain Trepaning
02-29-2008, 07:14 AM
I can have a couple hundred pieces of moveable props in a scene and they're all fully modeled, no normal maps. Blast them with weapions and they fly all around, with no FPS hit.
http://www.trepaning.com/blt/021708-02.jpg
JuddWack
03-01-2008, 08:46 PM
Brain, I don't think that scene compares very well to what Sastrei is going for. The lighting can use a lot of work. Having decent lighting is going to dramaticaly increase the render time. And you don't really have anything else in the scene. If the scene will be decorated as well then that will also result in more number crunching.
Sastrie, you may be able to get away with a tileing texture using ao and normal for the underside, and use geometry for the bumps. If you choose not to I'd decrease the amount you scaled everything out by just a little bit, and then rerender your maps. I understand you want to model the ship in the photo but it still doesn't get so close to the camera. Render from a bit farther away and you may be happier with the results.
Brain Trepaning
03-02-2008, 06:33 AM
The room is just a test room, not designed or lit for beauty shots. Proper lighting opitmized for the game engine choice (a piece of information missing from Sastrei's crit request) would not affect the FPS one way or the other.
There are at least a half dozen ways to achieve what is being asked for here, but without info like what game engine it's for, whether or not the ship will be in close view and what other polycount will be in a scene, there is nothing to go on for suggestions with respects to construction. As it is, we have to assume there is to be only one ship in a shot and that is it.
CGTalk Moderation
03-02-2008, 06:33 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.
vBulletin v3.0.5, Copyright ©2000-2009, Jelsoft Enterprises Ltd.