Hey guys. Like a lot of people here I'm posting my real first portfolio WIP.
Be gentle haha. It's just the start, but I've had my fair share of issues. Definitely learning though. The blue pieces are merely what I'm instancing from.
You really seem to have gone overboard with the number of cap segments in the floor. I can't see anything on either deck that needs any additional polygons.
If anyone has any suggestions on how to sculpt hair or get smoother results I'm all ears. I tried using Lazy mouse but it didn't always work.
I've learned a lot so far just in these past few weeks. Instancing is a life saver! When you're building your mesh from a cylinder you can do something that will make your life much easier. For the carousel I need to place steps perfectly in alignment. I also wanted to instance a portion of the carousel floor so I wasn't working on the entire thing. In order to keep the stairs perfectly aligned the carousel floor needed to be in aligned straight on in the front viewport. *The blue portion floor of the carousel is the instance part.
To get the section of your cylindrical based mesh to line up in the front viewport just requires a little math. You divide 360 degrees by the total amount of sides of the cylinder you started with. Mine has 64 sides so I divided that into 360 degrees to get 5.625. This number is crucial and plays a vital role in this working correctly. The other crucial step is when you select the portion of the overall mesh you'd like to have as an instance. Unfortunately, you can't just select a random amount of faces. For example, the blue instance is comprised of 8 faces, from one edge of the instanced shape to the other. Again math is involved. Luckily it's by no means calculus. Similar to how we started, you just divide the amount of sides in your cylinder by 2 until you've reached a number you want to work with. Then you select that many faces going horizontally. Now you can rotate your mesh by that 360degrees/cylinder sides. Voala!
As a side note you may eventually notice 5.625 is a multiple of 45. This is why you're able to get that perfect view.
Hopefully someone finds that useful. Thanks for any feedback!
Here's another update. Boy this took way too long to get the hp built. I'm really gaining more confidence though, which is what it's all about in the end. Next will be the lp for everything, followed by unwrapping and baking.
I'm thinking of combining these separate bakes into one normal map to save texture memory.
They're instanced to create the carousel
I'm already using a 2048x2048 texture sheet for their separate bakes. Will I end up with a lower res normal map by combining the uvs into one 2048 sheet?
You should really make the details a lot larger as it is already quite hard to see the patterns on the full render. If this were in a game and I'd just step a few metres backward the patterns wouldn't be visible at all. You need to consider that the model will be viewed from different distances and make the highpoly details chunkier, it might not be as realistic but in the end it'll look better. Besides if you scale the details up you'll not need as highres a texture to represent them.
I know :-/ I'm just running out of time cause I'm going to be working on a game real soon. I guess it wouldn't take much time to just beef up the hp elements cause I do see what you're saying. I like the idea of not having to use aa high of a res map. This being my first project was all about learning but if I'm using it in my portfolio I should make it as good as possible. Ill beef up the hp parts more and rebake. Should I triangulate before I bake as well?
Yes, you should. The risk is otherwise that the bake mesh gets triangulated differently in xNormal than it does in UDK or whatever you have which would ´then mess upp the normals. If possible set it up so that the model gets triangulated upon export so you can easily go back to the un-triangulated model if something need to be changed.
Yeah, triangulating upon export should be fine as long as the same mesh is used in the engine. If you've got any non-planar polygons you should triangulate those manually so they get triangulated in the desired direction, but otherwise the automatic triangulation should work fine.
I'm not a Max user but this is how I do it in Blender at least.
Oh boy I'm in trouble with this thing. My estimated tri count was 30k and I have WAY over shot that. The poles inside the interior of the carousel alone are 117k and that's as optimized as I could get them to maintain a reasonable silhouette. Obviously I'm doing something wrong here. Without those poles the carousel is at 42k tris, but that's before the light bulbs, horse, chair, stairs, aforementioned poles, and a few other props like a bench and flower pots. I haven't the slightest clue how to get this to 30k from where I have it currently. I think that's a pipe dream because any edits I apply will make this thing look even more lp then it already does. Maybe I've been looking at this too long, but I don't see anywhere I could remove quads in place of triangles.
With the normal map applied. They look pretty lp individually, but because there's so many in the scene it's a give and take scenario. One pole is 800 tris.
Plus I think I'm trying to squish too much into as few texture sheets as I can when in reality I need to probably use one or two more then what I have. I did lose a bit of resolution when combining assets of this scene. These are just two of the normal maps and they're quite packed. I have one other sheet that still requires more packing, but there's not a lot of space to go around in that one. My goal for texturing was to only have 7 textures. 3 for the carousel, 2 for the horse and chair, and 2 that were tiling.
Some meshes I'm only using the normal map so I have good smoothing on the lp. That's what I was recommended to do.
Unfortunately I don't have the time to go back and make the details pop as they should, but you live and learn. Any help on optimizing this tri count please!!!!
I think it looks like you could get away with using alphamapped planes as the poles are very thin and therefore would not need a lot of depth. It will of course not look as good, but it's still a possibility. Also it might be questionable if you'd actually get any performance boosts with lots of triangles vs alphamapping, but I'm no expert so I won't comment on that further.
Otherwise you'd need to either make simpler shapes for the highpoly or make the lowpoly more angular. The poles look like they'll small so I don't think it'd be all that noticeable if the poles were less smooth. I made a quick attempt at the lower poly LPs and ended up with 264 tris per pole (hexagonal base):
If you were to animate the carousel I don't think anyone would be able to tell that these small poles aren't completely smooth.
I would go with alpha maps to.
And I think most of the carousel could be made with tiling textures, then you would have higher resolution textures and it would be easier to unwrap and texture everything.
Thanks for the replies guys! I appreciate the suggestions. I'm gonna go with just making the lp even more angular cause I'm not sure I know exactly how this alpha method would work. I know it'd be completely texture based, but not sure how I'd get around making it look round without actually modeling the pole on accident. Might you have any advice for my texel issue? I didn't think about it when I was uving.
They wouldn't have any depth or actually be round that would be the compromise. I think it could work as the details are rather small. You could fake some depth to them by duplicating the flat alpha-planes once or twice and scaling them up or down along the normals in addition to the normalmapping.
I was making progress til I ran into unequal texel density. I'm having issues getting every mesh normalized without having too small of uv chunks as well as having to break apart uvs that are too large. I've done enough bakes with varying uv sizes to know what is too small and won't result in good enough resolution. That means I can't combine as many meshes into a texture sheet as I'd like. I was trying to be as cost efficient as possible.
Here's the current texel density
Here they are individually so you can see the uv breakdown
The pole's uvs were too long so I had to break them apart. I still have some messed up texel density if you ask me. I can't scale the uvs down any more then they are because the normal map resolution, no matter how high, is never enough. This is my test for uv size before it's just too small.
If I didn't have this issue I could pack more uvs into a texture sheet and normalize the uvs better. If it's not one thing it's always another. I just want to get this project done!
The last picture is too small to be able to tell for sure, but it looks like you need to make the pattern chunkier and/or make the sides of the swirls less perpendicular to the surface underneath, like in this example from the wiki. Doing that should make the pattern a lot more readable at lower resolutions.
Thus is happening with every mesh's uvs when I shrink them way down. I definitely understand what you're saying but that wohld mean all the other hp meshes are suffering from the same thing when trying to view them at a lower res. I don't have time to redo them now. Do you know how I can equalize the denisty with what I have or am I stuck with having seki normalized uvs? Thanks for the consistent feedback! It's been great
Yeah, no problem. I don't think there is much that can be done to fix this. Either you'll need to make the pattern chunkier like I said or you'll need very high-res textures. If you look at the example you can see that if the left texture was just scaled down once or twice the 1px bevel would disappear completely and that looks to be the same proble as you have.
You could use multiple textures and/or non-quadratic textures. That could help you in using the space more efficiently, but it would not really solve the issue at hand.
If I used a 4096x2048 texture I could have more room to scale the uvs higher but you're right. I can't see fixing my pixel density in the most efficient way with the hp's the way i have them. Right now i have 5 texture sheets that are 2048x2048. I could eliminate 2 of them by using a 2x1 resolution. Im using a multi sub obj to combine to textures so maybe its a mutd point. Either way this carousel will be one draw call unless theres a benefit to using less textures in a multi sub obj.
The only reason the top mesh is so unequal is because I'm baking a hp for it. I just learned that you can still bake a hp and use a tiling diffuse at the same time. Maybe that's how I can best fix the density between that and everything else. Then things will at least be as close as they could in their current state. How I would do this is use 2 map channels for the top mesh. Map channel 1's uvs will be for the bake so I don't need to change anything. Map channel 2 will be used for the tiling diffuse. Then I'm free to scale the uvs outside the uv space which has been my issue. The texel density would still be off for map channel 1, but does that matter since the only thing I'm getting from the bake is the hp's smoothness? Plus how are you suppose to match texel density when using a tiling texture anyway? When you scale the uvs you're messing with the density. Maybe you need the tiling to be a certain amount but that amount means a greater difference in texel density.
Replies
I've learned a lot so far just in these past few weeks. Instancing is a life saver! When you're building your mesh from a cylinder you can do something that will make your life much easier. For the carousel I need to place steps perfectly in alignment. I also wanted to instance a portion of the carousel floor so I wasn't working on the entire thing. In order to keep the stairs perfectly aligned the carousel floor needed to be in aligned straight on in the front viewport. *The blue portion floor of the carousel is the instance part.
To get the section of your cylindrical based mesh to line up in the front viewport just requires a little math. You divide 360 degrees by the total amount of sides of the cylinder you started with. Mine has 64 sides so I divided that into 360 degrees to get 5.625. This number is crucial and plays a vital role in this working correctly. The other crucial step is when you select the portion of the overall mesh you'd like to have as an instance. Unfortunately, you can't just select a random amount of faces. For example, the blue instance is comprised of 8 faces, from one edge of the instanced shape to the other. Again math is involved. Luckily it's by no means calculus. Similar to how we started, you just divide the amount of sides in your cylinder by 2 until you've reached a number you want to work with. Then you select that many faces going horizontally. Now you can rotate your mesh by that 360degrees/cylinder sides. Voala!
As a side note you may eventually notice 5.625 is a multiple of 45. This is why you're able to get that perfect view.
Hopefully someone finds that useful. Thanks for any feedback!
They're instanced to create the carousel
I'm already using a 2048x2048 texture sheet for their separate bakes. Will I end up with a lower res normal map by combining the uvs into one 2048 sheet?
I'm not a Max user but this is how I do it in Blender at least.
Here's one way I decided to go about it
With the normal map applied. They look pretty lp individually, but because there's so many in the scene it's a give and take scenario. One pole is 800 tris.
Plus I think I'm trying to squish too much into as few texture sheets as I can when in reality I need to probably use one or two more then what I have. I did lose a bit of resolution when combining assets of this scene. These are just two of the normal maps and they're quite packed. I have one other sheet that still requires more packing, but there's not a lot of space to go around in that one. My goal for texturing was to only have 7 textures. 3 for the carousel, 2 for the horse and chair, and 2 that were tiling.
Some meshes I'm only using the normal map so I have good smoothing on the lp. That's what I was recommended to do.
Unfortunately I don't have the time to go back and make the details pop as they should, but you live and learn. Any help on optimizing this tri count please!!!!
Otherwise you'd need to either make simpler shapes for the highpoly or make the lowpoly more angular. The poles look like they'll small so I don't think it'd be all that noticeable if the poles were less smooth. I made a quick attempt at the lower poly LPs and ended up with 264 tris per pole (hexagonal base):
If you were to animate the carousel I don't think anyone would be able to tell that these small poles aren't completely smooth.
And I think most of the carousel could be made with tiling textures, then you would have higher resolution textures and it would be easier to unwrap and texture everything.
Here's the current texel density
Here they are individually so you can see the uv breakdown
The pole's uvs were too long so I had to break them apart. I still have some messed up texel density if you ask me. I can't scale the uvs down any more then they are because the normal map resolution, no matter how high, is never enough. This is my test for uv size before it's just too small.
If I didn't have this issue I could pack more uvs into a texture sheet and normalize the uvs better. If it's not one thing it's always another. I just want to get this project done!
You could use multiple textures and/or non-quadratic textures. That could help you in using the space more efficiently, but it would not really solve the issue at hand.
The only reason the top mesh is so unequal is because I'm baking a hp for it. I just learned that you can still bake a hp and use a tiling diffuse at the same time. Maybe that's how I can best fix the density between that and everything else. Then things will at least be as close as they could in their current state. How I would do this is use 2 map channels for the top mesh. Map channel 1's uvs will be for the bake so I don't need to change anything. Map channel 2 will be used for the tiling diffuse. Then I'm free to scale the uvs outside the uv space which has been my issue. The texel density would still be off for map channel 1, but does that matter since the only thing I'm getting from the bake is the hp's smoothness? Plus how are you suppose to match texel density when using a tiling texture anyway? When you scale the uvs you're messing with the density. Maybe you need the tiling to be a certain amount but that amount means a greater difference in texel density.