Home Technical Talk

Lowpoly enviroments?

Does anyone have any tutorial links or advice on creating lowpoly environments like you'd see in a game on say, a DS or N64? I've googled the topic a lot and never had any luck. Problems I often encounter is, for example, placing paths of dirt in the grass(think Ocarina of Time). How to actually texture the scene and such.

Replies

  • PolyHertz
    Options
    Offline / Send Message
    PolyHertz polycount lvl 666
    Texture blending via vertex color is what you're looking for with paths. The rest is just low poy count, low texture res, etc. be a minimalist on everything. No normal, gloss, or spec maps, just color/diffuse.

    Also, go here: http://www.polycount.com/forum/showthread.php?t=41232
  • Mr_Drayton
    Options
    Offline / Send Message
    Mr_Drayton polycounter lvl 14
    Yes, vertex colors for the win. Just divide large surfaces in some different polygons and you will be able to vertex paint them with great results. Take a look at Dragon Quest IX (NDS) graphics, it makes massive use of vertex painting on the scenery:

    News4375.jpg

    Look at the fifth screenshot. Grass appears to be so colorful, with lighter and darker areas, but it's only one seamless texture with vertex colors applied on it. ;)

    Then, every detail on the grass, just like paths, dirt areas, crackles, holes, stones, etc, are just plain poly strips textured with some transparent maps and placed just above the ground.
    There are some vRam considerations about opacity of DS textures, and most of times it's just Alpha Test (meaning that the image is like a GIF, with 100% opaque pixels or 100% transparent ones).
    Alpha Sort is a bit more expensive both for vRam and CPU of the DS, plus it limits the colors to a maximum of 16, but it enables gradient opacity, wich is perfect for light flares, sparkles, clouds, etc.
    Usually trees, bushes and plants are only two crossed flat planes (with a transparent texture), or single, flat billboard panels wich always face the camera, rotating about its vertical axis.


    There are so many things to say about this topic... Well... Experiment by yourself, practice makes perfect. ;)
  • Dustyshouri
    Options
    Offline / Send Message
    I am indeed going to experiment and see what I can learn, but some of this does come down to technical approaches I can't hope to just come up with by myself. I had thought about just laying down polygons for the paths, but I figured there was a better way. Good to know that's actually how it's done! Any suggestions for lining it up against the ground perfectly?

    Also, how would I go about "normalizing" a texture? For example if I lay out a cliff wall and apply a cliff texture to it, the texture gets all distorted and stretched depending on the polygons, when all I want is to apply the texture evenly along the polygon. I used to know how to do it, but it's been a while since I've used 3ds max.
  • PolyHertz
    Options
    Offline / Send Message
    PolyHertz polycount lvl 666
    Polygon paths? No, like was said, you use vertex blending, never extra geo. And just have your textures all as 100% self illuminated (under blinn basic parameters). by setting it to self illuminate that way its actually just using the vert colors to light the scene, and sense by default all verts are white everything looks full bright.

    Many older system forgo textures entirely on objects when they think they could get away with it and ONLY use vert colors. N64 Did this far more then DS, for example look at mario on n64, other then his face and cap his body has no textures at all.

    DS has hard set limits on the amount of geo that can be on screen. At 60fps that limit as 6144 verts (or about 2048 tris) per frame. 256x is the maximum size for a DS texture (it needs to be an extremely import asset for that), but rarely will anything be over 128x, and the most common res is 64x. Also note that DS doesn't use texture filtering, so turn that off (max: customize-preferences-viewports-configure driver-texel lookup-nearest)
  • Dustyshouri
    Options
    Offline / Send Message
    "Then, every detail on the grass, just like paths, dirt areas, crackles, holes, stones, etc, are just plain poly strips textured with some transparent maps and placed just above the ground."

    Sorry, did I misinterpret that? I assumed he meant use extra poly strips for paths and such. How would vertex blending allow me to place crisp, already rendered paths down like this:

    gfs_50820_2_7.jpg

    From what I've looked up about vertex blending, it's great for blending in different textures, and I will undoubtfully use it to add some diversity to my grassy areas, but my impression is that it won't give me the effect I'm looking for in dirt paths.
  • ScubaSteve
    Options
    Offline / Send Message
    ScubaSteve polycounter lvl 17
    i have worked on 3 ds titles(Call of duty modern warfare:moblizied//Call of duty:Black ops//Goldeneye Ds) and the trick to environments are tillable textures.Vert color like people said is your best friend when doing the environments. Keep in mind that ds can only handle 2000 polys on screen at once so you have to plan according to this. Always remember think how big the texture is going to be on screen its not like your playing on a 52 inch lcd.

    any other questions go ahead and shoot them over in here
  • PolyHertz
    Options
    Offline / Send Message
    PolyHertz polycount lvl 666
    Well yea, if you want paths like that you'll use floating geo, but that's going to burn through more of your very limited poly and texture budget, and you'll need to add alpha blending into the mix too which is expensive.
  • Dustyshouri
    Options
    Offline / Send Message
    PolyHertz wrote: »
    Well yea, if you want paths like that you'll use floating geo, but that's going to burn through more of your very limited poly and texture budget, and you'll need to add alpha blending into the mix too which is expensive.
    Well this isn't exactly for the DS, I just like the look of them. So technical bounds are no problem, and plenty of DS games use the effect as far as I know, the DS Zelda games, and OoT were a few that had paths like that.

    Thanks for the help :)
  • Mr_Drayton
    Options
    Offline / Send Message
    Mr_Drayton polycounter lvl 14
    PolyHertz wrote: »
    Well yea, if you want paths like that you'll use floating geo, but that's going to burn through more of your very limited poly and texture budget, and you'll need to add alpha blending into the mix too which is expensive.
    Using vertex blending will always require more geometry, isn't it?
    NDS supports quad polys instead of triangles, and this will save about 1.5x the polycount in the scene. To be honest, paths done in this way will look much better.

    You can also mirror textures, and this can save a LOT of vRam.

    And... Alpha Sort is not necessary. If you create a path that you know it will cover a grass plan, well, just fake the Alpha Blend directly in the texture map, painting smooth green areas, and use a very simple Alpha Test. Done.

    Sincerely, I don't see all those problems in doing a good lowpoly environment, because I'm working on some DS titles too, and I can say there are tons of tricks to get the same result using less things.
    Look at Phantasy Star 0: it has beautiful environments, with lots of characters on screen, and it's sticked at 60 FPS.

    Anyways, if your machine is more powerful than DS, well, you won't have polycount and vRam problems. ;)
  • rumblesushi
    Options
    Offline / Send Message
    Low poly environments is something I need to practice now, quite a bit trickier than low poly character models/vehicles etc.

    In my engine I have DS/N64 level polycounts, with far more RAM, but no texture blending with vertex colours as it's far too CPU intensive.

    I can use Vertex colour a la Mario 64 though, ie with no textures at all :)

    How would you recommend going about environments without the use of vertex colour to avoid repetition etc? Just use more textures given the comparatively plentiful RAM I guess? The other option is floating geometry, but I would rather not do that much (apart from where necessary like like decals for bullets etc), partly because it'll put a dent in the polygon budget, and partly because of the expense of using transparent textures.
  • Mr_Drayton
    Options
    Offline / Send Message
    Mr_Drayton polycounter lvl 14
    Don't mess Ram with vRam! ;) Explaining it simply...

    Ram
    stores polygonal models (and many other things like sounds, scripts, etc).
    vRam stores textures and images.

    So, if you have enough vRam, you can create ground transitions directly by texturing them. You will need some more poligons, but don't worry, they will be very few.

    What kind of Alpha technique can your machine handle? Because you can easily use only Alpha Test (using 100% opaque or 100% transparent pixels in the texture, like a GIF image) without big performance loss.

    Another trick is to make tiled areas as small as possible (when possible)! Things like wide grass fields will not look nice without any variation... And, apart than placing floating poligons, you can also try to break the repetitiveness placing different elements like trees, rocks, fences, and any other simple and lowpoly object. Place them strategically, and it will work perfectly.

    And, unless you want a particular style, since you are short on poligons, and assuming that your screen will be small like smartphone's ones, avoid using vertex colors with no texture... In my humble opinion, they look very ugly. I really prefer a 64x64 (256 colors) texture, and it's only 4kb small! :D
  • Dustyshouri
    Options
    Offline / Send Message
    I've recently downloaded some rips of levels from The Wind Waker and I think it has enlightened me a bit as to the process. I was able to look through the polygons and mapping and see how it was done. For example instead of overlying the path polygons above the ground, the paths were actually polygons divided in the ground.
  • Mr_Drayton
    Options
    Offline / Send Message
    Mr_Drayton polycounter lvl 14
    Polygons divided in the ground will look very good as long as you have quite smooth textures. In fact, grass plans in Wind Waker are almost monochrome (with few shades), in order to give a very nice toon look to it.
    But, if the ground texture is quite rough and it includes scratches, holes, etc, then you should use a poligon strip above the ground, with a bit of Alpha, or else the path will look detatched from the entire ground! ;)

    So, where did you get the level rips? I'm very curious though, I would like a lot to take a look at them. :)
  • Dustyshouri
    Options
    Offline / Send Message
    Mr_Drayton wrote: »
    Polygons divided in the ground will look very good as long as you have quite smooth textures. In fact, grass plans in Wind Waker are almost monochrome (with few shades), in order to give a very nice toon look to it.
    But, if the ground texture is quite rough and it includes scratches, holes, etc, then you should use a poligon strip above the ground, with a bit of Alpha, or else the path will look detatched from the entire ground! ;)

    So, where did you get the level rips? I'm very curious though, I would like a lot to take a look at them. :)
    http://zfgc.com/#?action=resources&sa=view&id=166
  • rumblesushi
    Options
    Offline / Send Message
    Mr_Drayton wrote: »
    Don't mess Ram with vRam! ;) Explaining it simply...

    Ram
    stores polygonal models (and many other things like sounds, scripts, etc).
    vRam stores textures and images.

    So, if you have enough vRam, you can create ground transitions directly by texturing them. You will need some more poligons, but don't worry, they will be very few.

    What kind of Alpha technique can your machine handle? Because you can easily use only Alpha Test (using 100% opaque or 100% transparent pixels in the texture, like a GIF image) without big performance loss.

    Another trick is to make tiled areas as small as possible (when possible)! Things like wide grass fields will not look nice without any variation... And, apart than placing floating poligons, you can also try to break the repetitiveness placing different elements like trees, rocks, fences, and any other simple and lowpoly object. Place them strategically, and it will work perfectly.

    And, unless you want a particular style, since you are short on poligons, and assuming that your screen will be small like smartphone's ones, avoid using vertex colors with no texture... In my humble opinion, they look very ugly. I really prefer a 64x64 (256 colors) texture, and it's only 4kb small! :D

    Hi Drayton, thanks for the reply.

    Of course I know the difference between RAM and VRAM :D

    Though for me they are actually one and the same. My engine is a browser based software renderer in Flash, and thus the same pool of system RAM is used for everything, geometry, textures etc, there is no GPU access at all.

    As far as Alpha, I can simply use PNG's as textures, a la iPhone. So no 1bit alpha, as it's not a scanline renderer, I don't have per pixel control. So I can use alpha textures, but sparingly.

    In regards to vertex colours without texture, I think they can look alright really, like Mario64, but they obviously suit a more cartoony or stylised game, they wouldn't look great with most stuff.

    On low tech hardware that doesn't support lightmaps for AO, how do people go about AO in a DS game for example, without having LOADS of seperate textures/UVs?

    And I definitely prefer the idea of just having the path cut into a field etc rather than floating geometry, probably a similar polycount, but cleaner, without possible depth sorting glitches etc.

    Thanks for the link Dusty, I'll check it out too ;)
  • Mr_Drayton
    Options
    Offline / Send Message
    Mr_Drayton polycounter lvl 14
    Oh, so you have only RAM access in your project? My fault! :D
    Well, no problems as long the RAM is big enough to handle a decent number of things togheter! ^_^
    On low tech hardware that doesn't support lightmaps for AO, how do people go about AO in a DS game for example, without having LOADS of seperate textures/UVs?

    Well, there are two main techniques.

    - Baking on texture
    The most used technique. Directly bake the AO in the diffuse map! You can do this via software (Render To Texture in 3DSMax), or via texture painting. Honestly, as long as you are working on small or stylized textures, I would suggest to hand paint AO and shadows.
    Obviously this method can't be used on tiling surfaces like grass fields, so when you have to do with them, just use...

    - Floating geometry! XD
    As you just said, it's going to use more maps (and also a bit more polys) but the result can be nice to see. I can't find any good screenshot now, but this is the same technique used in Dragon Quest IX on DS. Shadows of trees, buildings, rocks, some AO here and there, were all made with poligons floating on the ground (and on the bigger walls), and even if the textures were quite blocky, they looked sweet. Of course they used Alpha Sort for it, with gradient opacity (supported by PNG images)

    And I definitely prefer the idea of just having the path cut into a field etc rather than floating geometry, probably a similar polycount, but cleaner, without possible depth sorting glitches etc.
    Yes, depth sort (aka Z-Fight, isn't it?) is one of the ugliest graphic glitches to see in a game. But I'm pretty sure you can fix it using some good scripting.

    Anyways, I'm a fan of floating geometry (on low poly models, obviously). I prefer it because it saves some vRam if you want to do complex transitions between the terrain and the path, and it also saves all the triangles that would create when you cut a path into a surface!
Sign In or Register to comment.