Screenshot of the Month May 2012 [Winner announced!]

Competitions for Irrlicht or 3D in general.
Irrlicht Screenshot of the Month: Winner for January, vote for February, submit for March

Screenshot of the Month May 2012

Poll ended at Mon Jun 04, 2012 8:07 am

Mel - Hardware skinning stress test
10
34%
Squisher - Ships MMO
14
48%
Wing64 - Flame on!
5
17%
 
Total votes: 29

Strong99
Admin
Posts: 687
Joined: Fri Mar 31, 2006 7:06 pm
Location: Netherlands
Contact:

Screenshot of the Month May 2012 [Winner announced!]

Post by Strong99 »

With 48% of the votes Squisher wins this months competition with his screenshot Ships MMO.

Congratulations Squisher!

[old]
Vote now for the best screenshot of May 2012!
The poll will be active until June the 5th

Some pictures are not shown in their fullsize. Too view them fullsize please visit: To the gallery

Mel - Hardware skinning stress test
Image

Squisher - Ships MMO
Image

wing64 - Flame on!
Image
Topic for the May screenshot entries!

Please submit here for the best screenshot for May 2012. You can submit until the 20th of May. Voting should start soon after that date.

Rules
- Only irrlicht renders allowed,
- Give images a good title and make clear what the title is,
- Make sure the image is available until the end of the competition,
- One image per project allowed,
- And some information about the project/scene,

Notes
- Please show a good quality image with a decent image size.

Rewards
- A special user rank: Competition winner
Mel
Competition winner
Posts: 2292
Joined: Wed May 07, 2008 11:40 am
Location: Granada, Spain

Re: Screenshot of the Month May 2012 [Submit now!]

Post by Mel »

Image

Hardware skinning stress test.

19 (38 if we count the shadows) shader skinned characters. Each of them with 14500 triangles. and all the effects. The drawback is the low framerate (35 fps) though it is fun to see how the degradation in performance goes from 120 fps without characters to 50 fps when adding 10 skinned (20 actually, because they are shadowed) characters and after adding another 9 characters it only drops 20 fps more.

Each character has a directional light, and all the effects, including normal maps and cube environments. They could also show 2 point lights, though they are not present. And all can have independent animations. Each of them is independent from the others and consists on 4 draw calls, so the amount of drawcalls in this scene is 157, which, keeping in mind the drawcall overhead, it is quite a lot. (irrlicht needs some built in instance methods badly...)

Anyway, i am happy with the result. I expected to lose more performance with such amount of chars.

I would like to know a way to perform hardware skinning only once, and that these meshes could be drawn as many times needed... (for instance for multipass shadowmapping systems)
"There is nothing truly useless, it always serves as a bad example". Arthur A. Schmitt
REDDemon
Developer
Posts: 1044
Joined: Tue Aug 31, 2010 8:06 pm
Location: Genova (Italy)

Re: Screenshot of the Month May 2012 [Submit now!]

Post by REDDemon »

Irrlicht really need some animation system improvement. great work.
Junior Irrlicht Developer.
Real value in social networks is not about "increasing" number of followers, but about getting in touch with Amazing people.
- by Me
fmx

Re: Screenshot of the Month May 2012 [Submit now!]

Post by fmx »

Interesting
My current ios game project has 20+ gpu skinned characters rendering at a steady 60fps on my iphone4, with simple phong fragment lighting only though and the character models are obviously a LOT simpler (~3K polys each), not with irrlicht sadly

If you use instancing with skinned models/characters, then remember ALL those characters will be animating in sync which looks very fake and obvious IMO - imagine all the badguys taking exactly the same steps as they run around!
Useful for crowds and background stuff though

You should enable those 2 point lights for the compo screenshot :wink:
hendu
Posts: 2600
Joined: Sat Dec 18, 2010 12:53 pm

Re: Screenshot of the Month May 2012 [Submit now!]

Post by hendu »

Mel, all of them seem to be doing the same animation / synced?

@fmx: Instancing + different animations should be possible.
Mel
Competition winner
Posts: 2292
Joined: Wed May 07, 2008 11:40 am
Location: Granada, Spain

Re: Screenshot of the Month May 2012 [Submit now!]

Post by Mel »

They are playing the same animation, but nothing forces them to have always the same frame loop. They are scene node clones (i.e. done with the clone method of the Irrlicht scene nodes)

According to the results i have, i think that the amount of characters could increase accordingly if they had less triangles. Maybe if they had 5000 triangles, they could be around 60 skinned characters (120, if we counted the shadows). It is a process very limited by the amount of vertices.
"There is nothing truly useless, it always serves as a bad example". Arthur A. Schmitt
REDDemon
Developer
Posts: 1044
Joined: Tue Aug 31, 2010 8:06 pm
Location: Genova (Italy)

Re: Screenshot of the Month May 2012 [Submit now!]

Post by REDDemon »

you need much less triangles for shadows. that can be point for optimization since i think vertices are really a bottleneck in your case. you can slighlty modify:

http://irrlicht.sourceforge.net/forum/v ... =6&t=46060

the mesh reducer.

For example you can eliminate triangles wich are almost co-planar instead of removing only random triangles (this way the sword will not be removed).

And you can also improve performance of that algorithm a lot if you use special ordering instead of random access. (consecutive access mean better caching. If you modify indexes only starting from the middle you can reduce by 4 the total cost. since previous indices need no update.. of course first is better shuffle all triangles randomly..)

after that run the vertex cache optimizer (if not already using that :D)

http://irrlicht.sourceforge.net/forum/v ... =2&t=45617
Junior Irrlicht Developer.
Real value in social networks is not about "increasing" number of followers, but about getting in touch with Amazing people.
- by Me
hendu
Posts: 2600
Joined: Sat Dec 18, 2010 12:53 pm

Re: Screenshot of the Month May 2012 [Submit now!]

Post by hendu »

The vertex cache opt may not work with animated meshes.
fmx

Re: Screenshot of the Month May 2012 [Submit now!]

Post by fmx »

hendu wrote:Instancing + different animations should be possible.
I've looked into it and currently the only way of doing it is via texture-fetches from vertex shader, requiring minimum DX10 or Texture Buffer Object support with GL (3.x IIRC).
Could be implemented in someway with irrlicht for PC, but certainly not for any mobile devices at the moment (except maybe PSP Vita)
Mel wrote:It is a process very limited by the amount of vertices.
Why do you say vertices? I think you probably meant (rendered) Polys because IMO that is definitely something to worry about.
You should be using lowpoly models for shadow pass anyway

I dont know about the procedural methods REDdemon suggests, reducing polys by hand would probably be better for complex characters like this
hendu
Posts: 2600
Joined: Sat Dec 18, 2010 12:53 pm

Re: Screenshot of the Month May 2012 [Submit now!]

Post by hendu »

Why couldn't you send the animation data as an instanced array?

VTF on Ati does require hd2k (dx10 card), but Nvidia supports it as of gf6.
Mel
Competition winner
Posts: 2292
Joined: Wed May 07, 2008 11:40 am
Location: Granada, Spain

Re: Screenshot of the Month May 2012 [Submit now!]

Post by Mel »

fmx wrote:
Mel wrote:It is a process very limited by the amount of vertices.
Why do you say vertices? I think you probably meant (rendered) Polys because IMO that is definitely something to worry about.
You should be using lowpoly models for shadow pass anyway
No, you can't use other mesh for the rendering of the shadowmap, because it may cause glitches due to the diference in shapes, it may cast shadows where it shouldn't and viceversa. If you have LOD meshes, it must be chosen the same for all the passes for the render to be correct.

I mean vertices, and not polygons because the diference between the rendering of the normal meshes and the skinned meshes is in the vertex processing, both use the same pixel/fragment shader. Drawing 40 shadowmapped shapes isn't that costly if, for example, they are small, but when it comes to the vertices, they must be processed independently of the screen resolution they take, so, the diference is there.

And the instanced animation data can't be sent because the shader constants registers are full with the amount of data of the skinning matrices of a single model. Anitextures would come in hand here, if i was sure they are passed correctly to the vertex shader... in PS3.0 hardware is posible though, but i tried, and the shader won't compile, i don't know why.
"There is nothing truly useless, it always serves as a bad example". Arthur A. Schmitt
fmx

Re: Screenshot of the Month May 2012 [Submit now!]

Post by fmx »

Fair enough about LOD shadows and vertex counts, makes sense you wouldn't be fragment limited on PC.
i've been working with mobile platforms so long I keep forgetting you guys dont have the same hardware restrictions...

someday I'll actually post an entry with irrlicht instead of posting only comments
REDDemon
Developer
Posts: 1044
Joined: Tue Aug 31, 2010 8:06 pm
Location: Genova (Italy)

Re: Screenshot of the Month May 2012 [Submit now!]

Post by REDDemon »

fmx wrote: I dont know about the procedural methods REDdemon suggests, reducing polys by hand would probably be better for complex characters like this
that tecnique is used also in blender. Triangles that are nearly co-planar can be eliminated without almost any impact on visual quality. For shadows you need only stuff with acute angles to be correct (swords, air dress edges). so that can be really a worth to take a try with that. Yes doing that on blender can be better depends if you want everything automated or just you prefer loading 2 separate models.
Junior Irrlicht Developer.
Real value in social networks is not about "increasing" number of followers, but about getting in touch with Amazing people.
- by Me
omaremad
Competition winner
Posts: 1027
Joined: Fri Jul 15, 2005 11:30 pm
Location: Cairo,Egypt

Re: Screenshot of the Month May 2012 [Submit now!]

Post by omaremad »

Mel is right, its vertex and draw call limited. with shader based skinning you can practically use static mesh buffers which are faster. But also the laziest way would be simply to render shadow maps at lower frame rates... no one will notice and even if they will you can frame blend if you want to waste some vram to hold last two shadow frames.

As for characters on embedded systems are they actually skinned at that speed? or split into body parts that are hardware transformed.
"Irrlicht is obese"

If you want modern rendering techniques learn how to make them or go to the engine next door =p
omaremad
Competition winner
Posts: 1027
Joined: Fri Jul 15, 2005 11:30 pm
Location: Cairo,Egypt

Re: Screenshot of the Month May 2012 [Submit now!]

Post by omaremad »

Also I think what mel is doing is fine for the number of charcters if anyone wants more you can duplicate charters with billboard type render to texture of a single enemy. They have to be far enough that the resolution wont be a problem, you can even tint the billboards for lighting.
"Irrlicht is obese"

If you want modern rendering techniques learn how to make them or go to the engine next door =p
Post Reply