I need to deal with large large Roman brick arches of different radii. In this case they're set into the wall.
I had in my head the way to do it would be to have a "detail brick" material, part of which would be a tiling row of long vertical bricks. I'd then have the arches as geometry in the surface of the wall and UV to that row, distorting the arch to a horizontal line. There'd be some squishing but hopefully not too noticeable, right?
WRONG. I found out that really doesn't work, distortions are based on how many UVs you have, and this distortion is especially difficult. Googling led me to believe this is impossible.
So what should I do, Polycount? Textures full of half-arches for a bunch of different radii? I can standardize them a bit, but there are limits. How would you approach this problem?
Thanks a bunch guys, I appreciate it.
Replies
I DID experiment with adding edge loops to divide the existing polygons, because of the long thin lines in the texture, it resulted in wavy zigzaggy distortions instead, but I was just eyeballing it, I'll try completely rebuilding a reprojecting a test arch.
I think this is where my modelling skills start to fail me. 1) I'm unsure of what kind of polycount is acceptable for large environment pieces like this, so I try to be as efficient as possible. 2) You can see my handling of topology trying to navigate the arches, windows and doorways seems awkward. The way I'm building these buildings is to make a modular piece for an arch or doorway that can be used to block out the walls, then connecting them together later. In this image there are primarily two main arch pieces that go up to the roof and are just repeated.
I guess I was also trying to avoid complexity because when I weld them together I'll have loops that aren't doing anything, if that makes sense? I'm new to this environment art biz, if that wasn't apparent. :P
So I guess my question is, if you were going to drastically increase the polycount on those arches, how would you handle the topology, OR is there another way to go about it that I'm not considering?
you can get away with a long tiling bit for the arch, but you'll need a correspondingly higher vertex count to control how the texture is projected onto the surface. If you notice, that discontinuity is along the internal "invisible" triangle edge for your quads. So if you make the quads align more closely to the bricks, you'll minimize your distortion.
Another question is:
Why are you making a watertight mesh? The thing is going to be split at its UV's in memory anyway, so why grief yourself?
Best suggestion to get going here is to build yourself a set of modular pieces rather than making large meshes all stitched together.
http://www.kevinjohnstone.com/Help/Modular%20Environment%20Design.rar
More info here, including additional notes from Kevin.
http://wiki.polycount.com/wiki/Modular_environments
Vailias: Noticing that the distortion was happening along the triangle edge was what led me to suspect what was going on and eventually google what exactly the problem was. Initially I was thinking distorting the quad UVs would distort the texture just like it would in photoshop. Obviously that doesn't make any sense when you think about it.
Why am I making a watertight mesh? That's a good question. I wouldn't say it's EXACTLY watertight, but yeah, I was thinking my wall geometry should be joined together. I need to look more at the links Eric gave me and how those buildings are put together, but my understanding was too many unwelded exposed seams could cause problems in-engine? (Unity in my case)
I know in our project I've seen awkward lighting issues along edges or seams of light in lightmaps where there shouldn't be. Maybe that was something else someone should have fixed, I don't know. Now, if you cover those seams with intersecting detail geometry that's a good fix, and I do have engaged columns I can use in some cases, but not everywhere.
Thoughts on how solid/modular a environment building should/shouldn't be?
Unwelded/exposed seams are not bad. The only reason to have watertight meshes is if you have shadow-casting lights which are shining on the backsides of meshes, so you want to make sure the meshes cast proper shadows. But most of the time you don't have this problem.
Lighting seams are usually because of bad lightmap UVs, or bad vertex normals (smoothing groups).
Your arches are using way too many vertices, this increases the memory cost of the model, which means longer load times, longer downloads (if a web game), etc.
You don't need 6 edge loops, again overkill.
"noticeable waviness at full resolution"... this will never be noticed by the player.
You're heading in the right direction though. Keep going!
Eric, did you add new pages at the "Modular environments" wiki ? There seems to be more, and with some very interesting content and very precious informations that didn't seem to be there last time I came by, a month ago or so ! Thank you for the great work
One solution for the curved bricks problem, is to use a curved texture! Make a short section of the arch, like 1/8, map it to geom, then duplicate the geom 8x to make the full arch.