Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

Advanced search

1403780 Posts in 68293 Topics- by 61956 Members - Latest Member: Ell├╝s

December 07, 2022, 01:10:37 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperArtWorkshopLow-Poly achieving Blender Literacy
Pages: [1]
Author Topic: Low-Poly achieving Blender Literacy  (Read 15687 times)
« on: December 06, 2011, 06:57:49 PM »

The next week or so I'll be walking through blender.  Learning the details of developing low-poly game assets.  I'll post tutorials/articles pertaining to and provide some helpful notes.

Video Tutorials:
Low-Poly Tank Walkthrough

Notes on Textures:
*An image file that can be applied to the model.
**Textures sizes should be in powers of 2 [2,4,8,16,32,64,128,etc]. see here for why.  Textures come out crisp and behave as they should.
***MipMap: Turn this off in User Preferences -> System -> Mipmap.  Blurs textures, not desired for low poly pixelated textures.
****Most times you'll have poly's that will be flipped, facing inwards, so your textures will be facing inwards as well.  Select these poly's, hit space and find "flip normals".

Most Used Blender Shortcuts:
CTRL+F = makes a face out of 3 or 4 selected vertices.
« Last Edit: December 07, 2011, 03:04:54 AM by [email protected] » Logged
Level 10

View Profile WWW
« Reply #1 on: December 09, 2011, 07:07:58 AM »

Cool, looking forward to this. Smiley
« Reply #2 on: December 09, 2011, 10:51:59 AM »

Interesting, I'd like to see the stuff you produce and get some tips.
« Reply #3 on: December 12, 2011, 12:43:24 AM »

dank u dank u.

my two favorite luvs. ultimate mashup.

I made the textures before modeling.  I found I get lazy making the textures after making the model  Concerned

Snap-to-pixels: Uv editor - uv [menu] - snap-to-pixels.  Supa usefa, self-explanatory.
creds to Solarlune.
« Last Edit: December 12, 2011, 12:52:47 AM by [email protected] » Logged
Hawt Koffee
Level 1

That's a wild fire.

View Profile WWW
« Reply #4 on: December 13, 2011, 07:43:58 AM »

I made this tutorial for the 3D thread, but since it can apply to lowpoly stuff as well
I guess it would hurt to pop it up here.

Notes on shading - sharp edges:
« Reply #5 on: January 21, 2012, 08:46:11 PM »

Going to break down some Blender Game Engine concepts and navigating and understanding the API/python.

blender terminology:
Game Object: Objects in the scene
Logic Bricks: Click/Input scripting interface composed of Sensors/Controllers/Actuators.  Each object has it's own set of Sensors/Controllers/Actuators
Sensor: Input Ex. Keyboard presses
Controller: Conditions that connect Sensors to Actuators. Can also be a script. Ex. UPKEY and RIGHTKEY moves UPRIGHT
Actuator: What to perform when sensor is activated.  Ex. Transforms, Motion, Animations, Pathfinding


- Game Types:  This page lists built in types of Objects, followed by variables and methods.  methods designated as methodName(). ex. controller, actuators, sensors, gameobjects.

- Game Logic:  This page starts by breaking down the various sensors and actuators.  How to retrieve the current sensors/actuators/object connected with the Script, they will return a reference to the sensors/actuators/object, which can be stored in a variable name.  Using the variables and methods found on the Game Types page.

After that various functions, and constants also available to objects.

well haven't looked very hard at the following pages.  but it helped me to break down and make sense of the Game Types/Logic page.  To understand the rest.


That said it's not very hard language to learn here's an example and a break-down:
As I said python scripts are activated within game logic panel of Blender.  They are called by controllers.  

Knowing that, you'll want to get a reference to the controller that called the python script.

//This returns a reference to the controller stored in cont.
cont = bge.logic.getCurrentController()

Controllers are apart of objects.  So to get the reference to the object that contains the controller you'd do this.

# To get the game object this controller is on:
obj = cont.owner

Now that we have a reference to our GameObject type, let's change it's visibility:

obj.visible = False

or delete it



Resources / Findings:
Blender Artists Forum: Everything to do with Blender including subforum for the Game Engine.  Demos, Full Games, Tutorials and community support.

Blender Nation: Blog about the latest happenings in Blender

Burster Web Plugin: Blender's equivalent to Unity Web Player

You can make a fairly capable/quick game using Blender's logic bricks here's a tutorial that helped me navigate Blender's interface, and understand BGE a bit better.  This is a series on making a platformer:

Platformer Tutorial

You'll have to do some digging but SolarLune has a series on blender python programming on his blog that's infinitely helpful[hope you don't mind me linking to it]:

Game Up!
« Last Edit: January 21, 2012, 08:52:17 PM by #452 » Logged
Level 10

It's been eons

View Profile WWW
« Reply #6 on: January 23, 2012, 09:43:56 AM »

You'll have to do some digging but SolarLune has a series on blender python programming on his blog that's infinitely helpful[hope you don't mind me linking to it]:

Game Up!

Thanks. If you hit 'BGE Tutorials' to the right, it's a lot easier to find the tutorials. Smiley

« Reply #7 on: January 27, 2012, 10:04:14 PM »

@Solarlune Thanks.  highly recommended people!

Played a bit of MGS: Peacewalker today, that's some good low-poly work right there.  I like that low-res 3D, can still be animated as just as well and as natural/tactile feeling as if it was high res, which isn't really the case with low-res 2D, at least I have trouble with that.  

Finally settled again, yay!

Start working extensively with blender in the following weeks.  I'm going to be working exclusively on outfits as an exercise, it's a severely underdeveloped and uncreative area of mine, limited to jean jackets and square booties.  Peacewalker definitely inspired that, being reminded you don't need excess geometry in a model to have a detailed character design.  My plan: study random books and time periods at the library, make loads of work until it becomes natural, as of now there's little fluidity between conceiving a mesh, unwrapping, and creating a texture.  Following this I'll work on detailing headbusts.  

Things learned:

[Let me know if it's better that I keep my logic trains to myself.  This is how I understand things as of writing this.  3D has a lot of concepts I'm trying to get my head around, maybe for others too.]

Normal Maps:  [They won't show on my little netbook Sad so they might not show on your GFX card, but it should if your computer's less than a decade old, unless it's a netbook.]  I'm not 100% certain as to how these blue gelly images affect the model when applied, but I assume normal maps adjust the texture's highlights and shadows, like applying layers in photoshop.  The need for them being that the artist can keep the two separate, easily adjusted, possibly switching normal maps according to different lighting situations.

In blender here's how you apply normal maps, they aren't like uv textures, where you just load them as an image in the uv editor, they are a seperate texture on top of that:

Texture Paint Mode:  You can paint directly on your model in Blender to create textures, but you need check a few things before that it can work.
*Model needs to be unwrapped
*A new or loaded image needs to be loaded with the UV's
Texture painting will directly change the loaded image in the UV editor.  Which can be saved and worked more on in photoshop or other image tools.

I haven't messed a round too much with it, it seems limited, but it could be good to rough out details to get a sense of how they will appear on the UV texture, to later work in the finer details in photoshop.  Definitely something I will use to concept ideas for outfits and nic nac related deets


Modifiers - I haven't found much use for the other modifiers but I've been working with Mirror/Sub Divide/Bevel.  Keep the vertices down, so I have less to work with, so less to worry about.  They keep the polys uniform and consistent without needing constant retouching.  I leave the modifiers not applied until the model is finished, in that case I'll keep a backup of the model before the modifiers are applied.  there's an option to export the model with modifiers applied.


Not enough pics:

going for a accurately proportional model.  I'm happy with how the upper torso to neck came out.  I'm still working out the abdomen.  I worked in a higher subdivision, but liked what it did to the lower subdivision, kept areas nice and conceivably round.

Do you think 624 polys is a high number for this model?  I'm wondering if that is too much or I can work in more geometry.  I guess it depends on my target, but I'm thinking low-end, enough for netbooks to handle.
« Last Edit: January 27, 2012, 11:18:49 PM by #452 » Logged
« Reply #8 on: January 31, 2012, 10:33:50 AM »

I will discuss how to paint directly on your low poly model, with pixelatted textures.  The advantage being you don't need to open up a seperate program to work on your texture and it's all contained in Blender, and it's easier to concept on top of your model in real-time working with a 3D surface rather than a flat surface.

*File>User Preferences>System>Mipmap checked off
**User Preferences>Add-Ons>type Palettes into the search bar check it

*Keeps your model from anti-aliasing while previewing it
**Adds a color palette while you paint your texture.

-Add cube in Object Mode
-Go to Edit Mode
-Select all faces
-Hit 'U'
-Select smart project
-Open another window with the UV Editor
-add New Image 96x96 (lower the size the bigger the pixels.  Make sure your faces are still selected in the 3D View Edit Mode or the new image texture will not be applied to your UVs you just unwrapped)
-Go into Texture Paint Mode
-On your left, you should see a color wheel, and various options for the brush, if not hit 'T'
-The dialogs you want to focus on are Brush and Color Palette (added this with the addon)

Brush you can change the size of your brush it's color and its strength.  
Color you can add a set of colors taken from your brush dialog, to reuse throughout your image.

Last step Paint and Go!

Edit:  Aw shite! just noticed there's an add-on for Texture Painting that adds layers.

« Last Edit: January 31, 2012, 11:09:27 AM by #452 » Logged
« Reply #9 on: February 01, 2012, 07:59:19 PM »

More texture painting experiments.

I started using this plugin:
Texture Paint Plus

This adds a line tool, and a quick brush menu popup.  I'd like to be able to write my own tools.

After watching Tatami Galaxy, I really liked how the intro was put together, black and white photo textures on 3d models.  I might use that.
« Reply #10 on: February 04, 2012, 10:20:30 AM »

You can expect to see more of the same thing.  I'm thinking a retro low poly action adventure.

32x32 textures.
unwrapped the whole object without marking seams.
layered similar UV's in the UV editor with Snap to Pixel on.
Texture Painted, developing a palette of complimentary colors, using the Palette Addon.

I scaled the UV's to have the pixels uniform across the object.

More notes:

Delete Edge Loop - This came in handy.  When making my crate object, I worked only one corner, and mirrored the corner across xyz axis.  When you apply the mirror modifier you are left with more faces than you actually need, where the mirrored corners met there are edges.  If you alt select an edge it will grab all the edges adjacent that form an edge loop.  Using Delete Edge Loop removes the edge and joins the faces.

In some cases you will have unwanted tri's, usually you can avoid this if you are certain you selected the entire edge loop.  I haven't run into another case.

In general I can see this useful if you want to work with less geometry, and your topology is a mess as it often gets.


Pixel precision and 3D units.  In edit mode you can see the length of each edge.
Edit Mode -> Right Dialog (toggle with 'n') -> Mesh Display -> Edge Length.
Edge length is given in Blender Units.

If you are going for precise pixelatted textures, it's important to decide what Blender Unit (BU) represents 1 pixel.  

Let's say .25 BU represents 1 pixel of a texture.
Let's say we have a plane, that's 2 x 4 BU's.  
The corresponding UV to the plane would be 8 x 16 pixels.

(I chose .0625 to every Blender Unit in my pictures.  Probably because most of my objects are usually no bigger than 2 Blender Units, and .0625 goes into 2, 32 times, which is how big my textures usually are (32x32))

While you are not given rulers in Blender's UV Editor, you are given the X and Y of each vertex, in your Left Dialog ('t') under UV Vertex.  You can change the location of the X and Y from there.

More Notes More Notes:

In Edit Mode, along the bar, there is an option to turn on Snap, it's the Magnet icon.  Next to that you can choose Snap to Grid.

You can change the size of the grid units in your Right Dialog, under Display-Gridfloor-Scale.  I set it to .0625 as mentioned earlier.

Unfortunately I find snapping sometimes finicky, it only snaps when you move the vertices, it does not snap when resizing.  sometimes it just doesn't snap correctly.
« Last Edit: February 04, 2012, 08:00:53 PM by #452 » Logged
Level 9

View Profile
« Reply #11 on: February 07, 2012, 07:20:32 PM »

Oh wow that tank looks sweet, definitely going to check it out when I have some free time  Smiley
« Reply #12 on: February 08, 2012, 08:26:00 PM »

I need to credit tank tutorial guy

Today I learned seams are important, today I'm spending hours rotating scaling and flipping uvs, only to find how important seams and basically have wasted my time.  Mark your models with seams!  If you do what I've done and unwrapped all my models without marking seams, your edges will be the color of adjacent pixels, your model will appear to have fragments running along those edges.

You also get undesired behavior from texture painting.

despite that I am happy how the character is turning out:
« Last Edit: February 08, 2012, 08:37:45 PM by #452 » Logged
« Reply #13 on: March 12, 2012, 11:24:35 PM »

this one's for kithief  Smiley
this was a quick one, haven't unwrapped and textured it. 
From here on I'll try to make an asset a day of modern/near future things to be used in an upcoming project.

1 blender unit = 1 pixel.  I was using .25 units for an odd reason. 

Remove Multiple Vertices
While having snap to grid turned on, a lot of times when I'm creating/moving vertices I'll have multiple vertices on top of each other.  I tend not to worry about these until the model and topology is how I want it, in which case I select all the vertices and use Remove Multiple Vertices.

Delete Edge Loop
removes edge loops without destroying faces.  useful when you have too much geometry.
Level 9

View Profile
« Reply #14 on: March 13, 2012, 12:59:05 PM »

Haha sweet, your notes are VERY helpful Tongue
Level 10

It's been eons

View Profile WWW
« Reply #15 on: March 13, 2012, 02:06:10 PM »

1 blender unit = 1 pixel.  I was using .25 units for an odd reason.  

Could you explain a bit more about this?

« Reply #16 on: March 13, 2012, 03:41:58 PM »

For consistency of having individual pixels the same size appear on the model, I designated using 1 blender unit for every pixel in a texture.  Blender Units are the unit of measure used for edge lengths.  you can check edge length in the right dialog on the 3D View Port.

Keeping things no bigger than 16 x 16, but may think about some objects being 16 x 24.  the bike's changed a bit, it was intended to be rode, so I made it fit to the characters dimensions.
« Last Edit: March 14, 2012, 10:42:21 PM by tramp » Logged
« Reply #17 on: March 15, 2012, 08:21:18 PM »

Level 9

View Profile
« Reply #18 on: March 18, 2012, 05:47:30 PM »

I wonder how that's going to look fully textured with pixel art  WTF
Pages: [1]
Jump to:  

Theme orange-lt created by panic