I figured I should start up a thread to document my own progress as well as get feedback from other polycount users on what I can do better.
A brief intro: This is the first environment I've attempted. I am about halfway through school and decided I would like to try environment design this summer before group projects/classes begin in the fall.
I want to create a near-future industrial candy store inside of UDK for this project.
My goal is to create an efficient workflow for creating future environments. During this process, I hope to develop good high poly - low poly modeling techniques, modular assets for the environment, a broad understanding of different mapping techniques, texturing, pleasing color throughout the environment, lighting, and UDK.
Here are some early concepts:
Pipes on top will be industrial sized and will hold m&m sized candy. The pipes will curve and end on the first floor where they will dispense candy. The colors on top will represent the colors. The windows will be all glass. One of the windows on the bottom left will be a glass door.
Color pallete is on the bottom right.
Maya blockouts:
Replies
A few notes:
Large flat planes on my high poly ended up giving weird normal artifacts so I threw in a couple edges loops which solved the problem. Originally, I thought that my low poly was causing the problems but it was fine.. I also found that triangulating the mesh before running xNormal helped a lot.
For some reason UDK wasn't flipping my green channel even with the option enabled for the .fbx import. I had to flip the green channel in photoshop to fix the problem.
In terms of UV mapping, I tried stacking the UVs as much as possible; however, it created problems in my AO bake (brackets over the glass in different locations, stairs next to support beams). For UV mapping, someone on polycount suggested a great UV unwrapping tool (Nightshade UV) in a technical talk thread. Here's the link http://www.creativecrash.com/maya/downloads/scripts-plugins/texturing/c/nightshade-uv-editor
As of now, I feel that my stairs don't have enough going on visually. They feel kind of boring.
Anyways, images.
(2328 tris, 2K maps).
i dont think your stairs are lacking something geometry-wise, they fit quite nicely to the style of the concept. add details and areas of interest in the texture.
about stacking uv-islands: did you move the stacked islands out of the 0-1 box? having them stacked while baking causes artifacts. you should be easily able to stack a lot of those parts and save texture space or gain resolution.
keep going!
@snow - I'm going to give your method a shot for the stairs as well as the rest of the railings. I didn't think of creating a singular texture sheet for multiple assets. Thanks.
Actual update soon..
Edit: Finished up the low poly assets for the stairs/railings. Debating whether or not to try to include the walls and the glass/rails on the front of the building.
Threads I've been looking at to solve the problem if anyone is running into similar issues:
http://www.polycount.com/forum/showthread.php?t=93063
http://www.polycount.com/forum/showthread.php?p=1498164
I think my texturing could use more work but for now I want to get the staircase in UDK and learn how to create a good glass shader so I can get a better idea of what it will look like outside of Maya.
Mirrored UV Seams
1024x1024 texture map. Each texture is 512x256 so far.
UVs on top of texture
Edit: Update
Didn't want to make a new post for this small update. Un-mirrored the UVs and tried to line everything up. Came out much better. Also laid out the UV maps for the lightmap. They're not very optimized; however, they look fine at 64x64 so I'm going to keep them for now.
Here are some images. The railing is supposed to be stainless steel and the base is concrete. Any critiques are welcome on what to improve with the textures.
Lightmap UV
NOW onto glass shaders. Another update soon..
Oh also for the stainless steel I'm going to try Anisotropic Lighting.
http://udn.epicgames.com/Three/AnisotropicLighting.html
Even if you don't want to use trim sheets you can still make the same normal map super easily and fast with nDo.
Leave bakes for the props/big pieces that really need them!
@Minos - I started off with baked maps but Snow suggested that I use tiling textures in an earlier post. For the staircase and handrails I added supporting geometry and smoothed the normals. Right now the stainless steel is 512x256 (although not all of it is being used) and the concrete is 512x256.
So I agree with Snow here.
Do something like this instead to save time and be more efficient with your texture space. It does cost more polys however but then again it's something you have to decide on. Whether you want to spend time on baking out lots of complex shapes or do stuff quicker by just modeling the necessary things you need. Polys are polys, easier to just remove bevels in later LODs anyways.
But! It's very interesting to see where this is going, good work :thumbup:
Thank you. I've changed my low poly model and included bevels. A few posts up are my new textures that I've attempted.
I'm working on creating a good glass shader as well as one for the stainless steel. Anistropic lighting for the railings looks okay but it's hard to see how it will look like in the environment. I think I may take a step back and create the wall/ceiling/floor textures in UDK so I can get a better idea where the light will be coming from. As of now I'm just placing the staircase on a flat BSP floor with spot lighting.
that beveling will give you pillowing normals with smooth faces.
@fab-camp - What are pillowing/pillowed normals? Tried to search and came up with very little.
From PredatorGSR on http://www.polycount.com/forum/showthread.php?t=78728&highlight=pillowed
I don't think i'm seeing the pillowed normals in UDK on my model. Could you give an example?
1. When doing reflections for the stainless steel, my normal map was causing my specular to become pixaleted. After a bit of research I re-imported (actually importing it again if that makes sense) and used Normal Map Uncompressed settings. That fixed that issue.
2. MLM_Anistropic works well for stainless steel reflection
3. A high specular power for metal reflections
4. I plugged in my normal map into anistropic direction and it just made everything super reflective. I may give that another try on another material. For the stainless steel it seems to be fine.
5. Right now I am using 2 materials for 1 texture(?). One is the concrete which uses a phong shader and the other which uses a anistropic shader. They use the same texture samples though (diffuse, spec, normal, etc). I looked at material instancing a bit and the benefits of reducing drawcalls for performance. For now I may ignore that and focus on getting more of the project finished so I can show something else besides this staircase..
Overall my stainless steel texture still needs more work but here it is so far. By the way for those who suggested using tilable textures for my assets THANK YOU. It will be nice to be able to apply one material to all of my stainless steel railings / stairs / anything else that uses the material.
My notes are kind of hit or miss. They're more for myself to keep track of what my main findings are so please correct anything you think is wrong.
made a test in max and udk to clarify.
what I mean is that your normals do bend around your whole surface the way try to make the edges smoother.
you get a gradient on the flat surfaces of the chamfered cube (right one)
( I dont got time to explain my point more detailed now, sorry)
For your stainless steel, are you going for a smoother look or one with a little bit of a brushed texture? Right now, it's hard to tell because it's very soft. Also, I think your specularity is a little off. You should try increasing the constant for the specular(you might have to adjust the spec power afterwards) and try incorporating the cube map into the specular as well. Stainless steel is really reflective, but not so much that it's like a mirror. It just reflects back more of the colors from the environment. You can see that in this picture.
And one last thing, whether you're going for a smooth/brushed surface, try playing around with a normal map with long streaks. It will probably have to be pretty weak, but enough to effect the specular highlight. You could just use your existing normal map and adjust the UV coordinates so it stretches along one axis.
as the the "chamfer"-tool in 3dsmax is the equivalent of the "bevel"-tool in Maya.
(I´ll use the maya-meaning of "bevel" below)
so I was curious about how these two techniques mentioned (adding edgeloops on the one hand and beveling on the other) to round off edges work with cubemap-reflections.
I made another test with a pillar resembling yours on the stairways.
and I think adding edgeloops in (left pillar) works way better here.
also I would think you could get rid of these narrow diagonal highlights on your handrails that way.
although adding edgeloops is quite more expensive on the polycount-side - to me it seems worth it.
any opinions on that?
I hope that is of some help.
@Chilly - I re-did the UVs for the lightmap. There's a lot less wasted space now.
@fab-camp - Thanks for all the visual guides. I have added the extra edge loops to both the railings and the concrete part on the bottom. They look much better already.
@leleuxart - I'm attempting to do a brushed stainless steel. While I was out today I spent some time focusing on what you said in terms of reflecting both light and the world.
Hopefully I'll have another image update by tonight or tomorrow afternoon.
Edit: The stainless steel normal map is hard to do with a 512x256 texture. I'm going to play around with it a bit more.
This time around I decided to import my textures separate of my mesh in order to change them easier when I wanted to alter something.
Edit: Hmm well I re-imported it by connecting all the inputs through maya and exporting as an FBX. I would have rather done it manually but for now I'll stick with this.
Okay I figure it out. Notes so far.
To manually assign textures to a object after it has been exported, new materials have to be created. Beforehand, this was my process.
1. Assign blank phong materials in maya (stainless steel, glass, concrete, etc).
2. Export the model as an .fbx
3. Import into UDK with materails selected
4. Assign diffuse, specular, normal into the already created phong materials
New process (still need to try it out fully but..)
1. Do the same as before with exporting
2. In the Unreal Static Mesh Editor, go to LODInfo > Elements
3. Under the elements should be the materials, I just found out if you export with multiple lamberts it shows up as None
4. Create new materials using the textures
5. Assign those new materials into the slots.
The image below is the result of the first wrong method I tried.
Edit 2: I think I'm going to get rid of the bevels on the stainless steel railings, or, if I do keep them, don't smooth the normals. Having to add this many edge loops doubled the polycount from ~2000 tris to ~4000. Not sure if it's worth it for my first environment to use such a high polycount. Hmm..
Edit 3: So this is very basic but was helpful in understanding why the specular/anistropic on the stainless steel was coming out the way it was. I'm kinda teaching myself a lot of this as I go along so a lot of my posts may be boring:
[ame="http://www.youtube.com/watch?v=PMgjVJogIbc"]Smooth Shading - YouTube[/ame]
Edit: For the floors I was reading up on thirding and I think I may try adding cracks to the bottom 1/10 of the texture and then extending the UVs where I want cracks.
im not too sure about what you meant when you described the technique you want to use for your floor, but have you had a look at vertex blending in UDK? I guess thats a very useful technique for large surfaces that are textured with tiling textures. you can add detail where you want to with little cost and in a very easy way...
and thirding.
i knew the technique of thirding, but forgot the name. im still not sure how you want to apply it to the floor, but that might be me.
just keep posting your progress!
Looking back, I learned a good amount about normals, baking, UDK, optimizing for games, etc. My main mistakes were not detailing my concepts enough and not planning this whole thing out as much as it should have been. I'm not sure if I will revisit this project. Maybe later down the line. Anyways, here are the images from late August.
Thank you to everyone in this thread that contributed and helped.
Final images
BTW, awesome thread discussion about normal map detail VS bevels/chamfers. Does anyone know what is more "expensive" - using a high res normal map on a low poly model VS double the polys with no normal map?