This is the sweet spot for your low-poly models. Post 'em if you've got 'em!Low-poly hasn't really been a requirement in the games industry for a long while now. This thread is for low-poly art style appreciation, so please take note of these rough guidelines:
- Keep models under 1,000 triangles.
- Scenes are fine, if all models are low poly.
Some dedicated low-poly modelling tools now exist that make this art style a lot easier to produce;
Crocotile3D &
BlockbenchHere's a handy list of ways to make your art look right in mainstream 3D software:
Low-Poly Art Style Guide
Replies
I hope you like it, as always crits and comments are welcome
Thanks S_ource! Here we go
There is a DISCARD shader instruction to just drop the current fragment/texel/pixel if need be, so it never has to be written to begin with!
Transparency is a type of blend. In order to do any type of blending, you have to read and write to a pixel's location in video memory, instead of just writing The instructions for doing the blend depend on if people are doing traditionally, or properly (pre-multiplied).
Overvdraw in general is not really a big issue. Every scene will have overdraw, because all the effects like bloom, color correction, Scream space ambient occlusion, edges, and etc are all done with a full screen quad.
Overdraw becomes an issue when you draw an object that had an expensive shader on it, and then draw something on top of it. You drew it for nothing, or you could have drawn it with a less expensive version of the shader (like just basic lighting and diffuse).
One way to get around that is to render the whole scene with a basic material, objects sorted closest to furthest, and get the occlusion query results back from the API. The GPU will return a number and tell you how many pixels passed the depth test and made it to the final frame buffer.
If something returns 0 (no pixels), then don't bother drawing it. If something returns a low number relative to the size of the frame buffer (something far away, or mostly obscured) then run a basic shader on it and reduce the time it took to write those pixels.
As for the alpha stuff.
When you stack 10 quads with an alpha texture ---
-The opaque objects are rendered as normal.
--Objects with transparent materials are pushed to the end.
---The 20 triangles that make up those 10 quads are sorted by distance
----They are rendered 1 at a time furthest to closest, possibly changing materials after each call
My point was that you should make your transparent things as simple as possible (preferably quads so they are only 2 triangles). Changing materials and settings is SLOW, and so is rendering small batches, or building up vertex buffers on the fly.
And also, when you have an object that is all opaque, but uses an alpha material just because a tiny bit of it is transparent, it's highly wasteful, because the whole object has to be torn up and slowly rendered transparent for nothing! why tear up, sort, and slowly render 3000 polygon character in alpha mode when only a tuft of hair on his forehead actually needs the alpha? Doing 3000x the work for nothing!
That should use a different material. It can be the same image. Just have 1 material using it as opaque, and the other as an alpha material. That's not an overdraw issue, it's a poorly crafted content issue.
From an purely artists perspective, discard and alpha-test are the same. You both end up with a 1-bit alpha for your texture, and you have to spend a slight amount of time checking whether or not the pixels are transparent or opaque. If I don't include all those transparent pixels (cutting them off by adding more triangles), I don't even have to use the discard function - as there are no pixels to drop.
Screenspace postprocessing is done as a quad, because our screen is a quad. There is no way to optimize that shape. But there are ways to optimize, say, grass planes:
Where all the dark blue are not ever rendered, and thus all those blue pixels never even make it to the 'discard' part of the shader.
Which is why I disagree with your statement of "use as few polygons as possible for transparent object". Though, yeah, my terminology was't quite correct.
The point was that ALPHA TEST was a state, supported in hardware, and it was very fast. It functioned nothing like a blend operation. You could render things normally without any of the sorting stuff I mentioned above, and resulting pixels could be written into the color and depth buffers properly.
The state and functionality for alpha testing were removed from the hardware and APIs (along with a good 90% of the old stuff). All you can do anymore is toggle a few states, and upload lists of vertices to be drawn, draw them, and set/manage materials and shader programs.
You can only simulate the alpha test effect by writing an alpha shader that does a slow(er) check, and doesn't write a pixel to the color or depth buffers. You must still go through the process I posted above. Slower because you have to stop and check the alpha value, and then decide to discard the pixel or not (dynamic branching), instead of just going through and multiplying the pixel, and getting a nicer, filtered effect.
Also one of the things removed from the old days was rendering polygons on the fly. Everything has to be created as a vertex list type object and stored on the card before drawing it.
This complicates things a bit for transparent surface rendering because you have to create and manage lists on the fly, on a frame per frame basis. These lists are also very small, which is also not optimal.
So you've added 4 triangles to be depth sorted, and slowly added to a dynamic vertex list, instead of 2, multiplied x the amount of grass objects in the frame. All to optimize away a problem you didn't really have. A simple alpha blend is a relatively in-expensive shader, you don't need to optimize away trivial bits of pixels. Best to keep them as quads.
*Transparent surface rendering and real time 3D rendering techniques don't mesh well, and never have. There is no 100% satisfactory way to do it. And doing it in the way that looks closest to correct is a slow pain in the ass. In a lot of games, you'll see artifacts in places that have lots of alpha planes because an accuracy trade off was made (sorting whole objects instead of individual polygons, sorting by material still instead of distance, etc). Decal style stuff can be especially problematic, and they tend to float above the surfaces they are supposed to be on to get away from depth test accuracy issues.
AndrejGrek, I love that.
Back on topic:
Here's a low poly figure I was working on until my HD died recently. Mostly inspired by the look of the character in Square's DS Final Fantasy games. I'm really bad at figures. I never got a chance to fit the hands, feet, or fix the elbows and knees before it was lost forever.
I've got an environment to hopefully post soon.
Currently:
- 210 Tris
- 512 Texture (Is this too high?)
the polycount is over the top and I´m out but I just wanted to show this one.
And his 3d counterpart at 570 tris with 128x128 texture.
I'm currently trying to build a game in Unity. But Herbert for the Game is in a different style:
[ame="http://www.youtube.com/watch?v=JC0FFSDhEfo"][/ame]
picture hosting
why did you change the model for the game? i actually liked your first 3d model better.
Large Version
~425 tris, 1x 512 (Should have resized it to 256)
Not too happy with this, not quite what I had first envisioned, so not too much effort put into it. But atleast it's recognizeable.
I plan on making more Pok
the bottom model is actually the first maybe I can transfer the animations to the new model, then I can use that one instead
Christian Nordgren - Looks pretty good, in particular the last tree. The textures might be a bit too noisy though.
RLPudding - I also prefer the rounder Herbert.
iammalte - *sigh* If you know this is over the top, then why do you post here instead of waywo?
I had a go at whipping up a scene in unity with two simple grass meshes. One made from quads, one made with a tent-shaped planes. The tent-shaped one is based on the quad with the top 2 corners clipped off to make the whole surface exactly 25% smaller.
On my Nexus 7, these were the results:
One Block (normal mapped)
tents: landscape 25.00-25.15 portrait 23.70-22.85
quads: landscape 23.65-23.80 portrait 22.20-22.30
Six Blocks (normal mapped)
tents: landscape 5.50-5.55 portrait 5.10-5.15
quads: landscape 5.75-5.80 portrait 5.05-5.10
Six Blocks (simple shader)
tents: landscape 6.45-6.50 portrait 5.85-5.95
quads: landscape 6.20-6.25 portrait 5.45-5.50
Three Blocks(simple shader)
tents: landscape 12.50-12.60 portrait 11.70-11.80
quads: landscape 11.95-12.05 portrait 11.05-11.10
And here are some *.apk files
1 block, normals, Tent
1 block, normals, Quads
6 blocks, normals, Tent
6 blocks, normals, Quads
So I'd say that cutting out alpha by adding more polygons is still useful, although it's not nearly as important anymore. What's particularly peculiar is that using quads seems to be a bit more stable if you change screen orientation.
Turnaround
Texture (4x Zoom)
Tried to stick to the ingame sprites from the Black and White games.
More will come eventually, hopefully with the same amount of work put into presentation
I can remember you (I think it was) talking about font and layout of the presentation of peoples work, I would love some feedback on what you think about presentation at the moment and how I could improve.
Thanks for any feedback.
48tris and 64x32 texture.
unfortunately Blender rendered with interpolation on, I think.
Here is a new model, it will be the smallest boss. I created a specific thread where I'll post all the pictures of the models related with this project, you can see it here.
I love the style of this model, but you could definitely optimize the texture since its all a flat color, you only need a few pixels of each, and then some space for the text and the apple logo.
142 triangles
154 triangles
Rotation is slower when pointing forward because I needed more frames for that particular angle.
Here a playable tech demo on my dev diary (warning: it's quite difficult): Speed/Fragment Tech Demo
Tech Demo looks cool BUT please make the music muteable. Not because its bad, but it blew up my ears when i tested it shortly. OH and a message how to control the ship would be good. After i found out its WASD all the other ships where far away.
I'm puzzled, when the demo starts there is a basic menu where you can enable/disable music and sounds, select difficulty, etc. Also on the page I wrote "Setup the options with the mouse, then drive with arrow keys.". Uhm... :poly141:
EDIT: now that I think of it, you may have accidentally played the previous demo, wich I linked in another post of the diary. :P
And here's the Diffuse:
update: removed attachments and fixed images
There is some really inspiring work on here! This my first post upon this thread, So I'm noob jelly. Here is my progress on The Herd Lord. All in all, only 1400 polys.
Also Happy Thanksgiving all!
That's exactly what I am working on these days! That's only a Tech Demo for showing off a glimpse of the gameplay, it's not meant to be final! :P
Thanks for the feedback!
I played this: http://ftp.artdrayton.altervista.org/SpeedFragment/03/SpeedFragmentWEB.html
Right, i saw the menu now...but since in this menu no music is playing, i didnt looked for the option there then the game started and played the music pretty loud
Wrapped up on a few of weeks making assets for an iOS game called Danglesmash that just launched yesterday;
Alien - 260 tris // Ship Base & Canopy - 292 tris
Sputnik Rocket - 972 tris // Space Dog - 582 tris // Sputnik 1 - 424 tris // Sputnik X - 536 tris
Top Row L-R - 260 tris // 386 tris // 408 tris // 412 tris
Bottom Row L-R - 418 tris // 484 tris // 236 tris // 406 tris
Planets - ~600 tris each
You can see some more stuff here; http://www.polycount.com/forum/showthread.php?t=110344
Cheers!
sick stuff stabbington, and pierate last page
Yeah the cactus has a nice look, but i imagine it could be quite a bit of work to fit all models uvs to fit nicely.
I think I'd rather just vert paint em.
Vertex painting can get you the same look, but it requires separating the mesh into separate elements, or splitting edges to get hard edges on color separation. I do agree that painting vertex colors is a lot faster though.
Ф = F, Д = D, И = I, all text seems unreadable for me, if you like to use Cyrillic letters, make an equal transliteration, there are full tranliterations below.
ГO = GO, ПЛУТО = PLUTO, ЛАЙКА = LAIKA, ВИНОН = VINON(i belive this is not an actual english word)
I guess Vinon is the name of a character, like Laika the dog on the left!
No textures, just straight up vert painting, worked out pretty nicely. I ended up rigging this one too in a basic rig and he turned out pretty well
can't find better words myself.
Great work stabbington!
One more model for my game, this time the player ship, the full thread of this project here.
Because roses are red; violets are blue... And I was inspired by Spazzme's thread
Cute! I love that you are riding a cat
this is very dope. It's like an A10 plowed a mig21 and this is the baby. Style and rendering are great too. Good feel.