Home Technical Talk

Need Low-Poly Environment UV Mapping and Texturing Help

Hello polycount community! I am new here, and hopefully I am posting this in the right place.

After many hours of searching all over the net and failed attempts at getting this stuff figured out properly, I've decided to ask for some help.

Below I've got a lot of screenshots of my most recent attempt at making a low poly environment mesh to be uv mapped and then textured. I'm posting this somewhat "tutorial" style at the end of my post so that everyone can see the entire method of which I used to get to where I am, which hopefully will help them help me figure this out/tell me where I went wrong, etc...

My apologies if the images are too much. If so, an admin can edit my post to simply link to them and/or thumbnail them somehow. My screen res is 1440x900 so all the images are rather large.

I am using Wings3D at the moment, however if I need to do things with another software, I have all the large packages available as well. I like the speed in which I can model things using Wings3D. Anyway, this is not a software war post.

I'd love some guidance and any information that anyone is willing to give out.
Thank you very much for taking the time to read through this.

So here we go.

I started with a N-Cube of 5 partitions.
first.png

I then inverted the normals to turn the cube inside out.
second.png

Next I extruded out a hallway several times keeping the faces the same size.
third.png

More extruding to expand the hall into a second room, and raising the ceiling to the correct height to match the ceiling height in the first room.
fourth.png

More extruding to give a little more space in the first room and added an alcove/doorway/whatever.
fifth.png

I created and added materials to the floor and walls and also used "hole" on the ceiling faces because the ceiling will never be seen, so treating it as if it does not exist is better.
seventh.png

I duplicated the mesh and gave the two objects meaningful names. Hiding the original mesh, I then dissolved the inner faces and cleaned up stray vertices to reduce the number of faces in the duplicated mesh.
eighth.png

I then proceeded to uv map the faces of the mesh using their normal's as the mapping projection, and normalized the scale of all uv shells so that everything is uniform.
ninth.png

Here you can see the uv shells after the step above.
tenth.png

I proceeded to stitch each of the shells together in logical units. And placed them all outside the main uv area to make this explanation easier.

eleventh.png

To the left is the entire floor uv shell.
At the top is the uv shell for the second room's walls.
The bottom holds the uv shell for the first room's walls.
At the right is the uv shell for the three walls that make up the alcolve which extends from the first room.

Next I made a single 64x64 texture which holds 3 32x32 textures that I want to texture my scene with.

The texture is split into four quadrants. The upper left is the texture I wish to use for the floors in my scene. The lower right is the texture I wish to use on the lower portions of the walls in my scene.
The upper right holds the texture I wish to use on the upper portion of the walls in my scene.

I ended up doubling the size of the texture to 128x128 because Wings3D didn't let me choose anything smaller.

twelveth.png

Lastly, I imported my texture image, and created the texture for the mesh. I'm at this part now, stuck.

thirteenth.png

What I would like to do is to tile the floor texture across all the floor faces, then tile the wall texture across all the lower portions of the walls, and finally the wall trim texture across the upper wall portions.

I am at a loss as to how I can achieve this. I am not using any engines, no UDK, nothing like that. I don't mind if I need to use other software except Wings3D, however IF this task can be completed without changing software, I would be happy.
Could someone here assist me with this task? Thanks in advance.

Replies

  • Adam L. Gray
    Options
    Offline / Send Message
    Well, what you do is split those three textures up into separate sheets, then add the correct texture to the correct part of the mesh, and scale the uv clusters up to tile it.
  • RichardMarks
    Options
    Offline / Send Message
    Thanks for the advice. I shall try that.
    I thought that it was better practice to keep the texture sheet all in a single image. Am I wrong? Is this not the case in this situation?
  • WarrenM
    Options
    Offline / Send Message
    The trouble is that if you don't break it up into separate sheets you're going to have to have a new polygon every time you want the texture to repeat (you can't tile a subsection of a texture, only whole textures). So it's either use multiple textures or add a ton of geo to simulate the tiling. ...Hopefully someone will correct me I'm badly mistaken.
  • RichardMarks
    Options
    Offline / Send Message
    Okay, following the advice from Adam, I split the textures into their own images, added them to my scene as diffuse maps for the materials, and reassigned the faces the correct materials.

    fourteenth.png

    Then I did as was advised and scaled up the uv shells. I centered each shell then scaled by 1000% to get this.
    fifteenth.png

    I cannot help but think that this is wrong though...I mean, my uvs look like this now
    sixteenth.png

    I thought that all uv shells were supposed to lie within the 0.0 and 1.0 range on the uv map? Maybe I'm mistaken, I don't know.. this is all new to me, and I cannot seem to find any decent tutorials nor documentation on the subject. I mean, I can uv map objects without any trouble, but no where can I find anything on doing scenes in a modeling app only for the next gen game engine tool sets.

    Thanks Adam. Could anyone give me any additional pointers?
  • Adam L. Gray
    Options
    Offline / Send Message
    Nop, that's perfectly fine. You could off-set your shells vertically too, in order to keep the uv's more manageable, but there's really no problem at all with offset your uv's outside the 0-1 range. The 0-1 range is simply there to show you the boundaries of the texture itself.

    However, naturally you can not add unique detail to any area of the texture outside the 0-1 range, it'll simply repeat. Which means that for a piece that requires unique texture-space, you wouldn't be able to do this.

    It's also good to notice that if you start working with engines etc, such things as 'lightmaps' which is more or less a shadowmap rendered into the texture will require its own set of uv's with unique space. As you can't re-use/overlap shadows that way for different parts of the mesh :)

    So, to summarize it all. It's general practice and knowledge to always stay within the 0-1 range when texturing models, or else the texture will repeat.

    However, in such cases as with tiling a smaller texture over a large area, especially common in environments. You'd go about doing it this way.

    When only tiling the texture a few times, it might be better keeping it all in one texture and creating unique segments for each tile, as Warren spoke of.
  • RichardMarks
    Options
    Offline / Send Message
    Ah, I see where I was confused from the information that I have read in various places now. Thanks for the clarification.

    Is there any technique to make figuring out the scale of shell to obtain a specific tiling size? Say for instance, I wanted the floor texture to repeat 17 times along the X axis and 11 times along the Z axis (to match the original dense poly mesh that I created in the earlier steps) and the same kind of thing for the walls.

    Am I really only left with guessing and painstakingly trying to align the shells as best as I can by eye to get the textures to meet up with the geometry edges? Or is there some obscure trick to all of this that I am just not aware of?

    Thanks again.
  • Adam L. Gray
    Options
    Offline / Send Message
    Well, you could create a simple texture containing a flat gray colour and black lines along the outer edges.

    Then it's a simple matter of unwrapping it so the right amount of squares fit the mesh snugly :)
  • RichardMarks
    Options
    Offline / Send Message
    So it is just a matter of trial and error then. Okay, time to try that tip you suggested. Thanks a ton for all the help.

    I guess the only other questions that come to mind right now would be, am I approaching this task of creating low poly geometry for a game's environment in the correct manner? I mean, the whole process of inverting a cube and pushing it out into the shape that I desire. Is this the right way to do things?

    I'm essentially working to create something along the lines of the game environments from the original Tomb Raider for the PSX. Is there a better method to approach this task, or have I already gotten myself on the right track?
  • xXm0RpH3usXx
    Options
    Offline / Send Message
    xXm0RpH3usXx polycounter lvl 13
    i wanted to add a little to the "you cant detail tiling textures" topic.

    this is true most of the times. especially if you are not allowed to use shaders in your engine or have only simple shaders available.
    some engines, like cryengine or udk can overlay textures and paint decals on the mesh.

    thus you could tile the bricks all over the wall and layer some dirt on the lower parts.
    or you could add like a layer of moss wich you mask off with a noise material in the alpha slot.

    helps distracting from the tiling effect.

    also i would recommend to think modularily here.
    i tried to write something meaningfull here, but i will just refer to the wiki
    http://wiki.polycount.com/CategoryEnvironmentModularity
  • RichardMarks
    Options
    Offline / Send Message
    I am not using any existing game engine tools here, so the decal technique is not an option - unless someone here is also a guru with programming such a technique into an engine made from scratch and would be willing to explain the process to me. :D

    How would one approach the modular design technique for this kind of project? It is to be a very low poly game environment - think of the PlayStation One (PSX) era. The environments will always be viewed from a third person perspective with the camera orbiting and chasing the player's model (as is done in several JRPGs).

    I've only ever seen modular tutorials for higher poly situations and only for use with existing game engine tools. So, is there a recommended technique to be sued for what I'm trying to do, or am I still on the right track?
Sign In or Register to comment.