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

Screenshot of the Month May 2012 [Winner announced!]

Postby Strong99 » Sun Apr 22, 2012 1:25 pm

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
User avatar
Strong99
Admin
 
Posts: 687
Joined: Fri Mar 31, 2006 7:06 pm
Location: Netherlands

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

Postby Mel » Mon Apr 23, 2012 2:43 pm

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)
http://santiagong.daportfolio.com/
"There is nothing truly useless, it always serves as a bad example". Arthur A. Schmitt
User avatar
Mel
Competition winner
 
Posts: 1812
Joined: Wed May 07, 2008 11:40 am
Location: Granada, Spain

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

Postby REDDemon » Mon Apr 23, 2012 5:51 pm

Irrlicht really need some animation system improvement. great work.
OpenGL is not hard. What you have to do is just explained in specifications. What is hard is dealing with poor OpenGL implementations.
User avatar
REDDemon
 
Posts: 859
Joined: Tue Aug 31, 2010 8:06 pm
Location: Genova (Italy)

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

Postby fmx » Mon Apr 23, 2012 6:41 pm

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:
User avatar
fmx
 
Posts: 559
Joined: Wed Dec 06, 2006 9:28 am
Location: UK

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

Postby hendu » Mon Apr 23, 2012 6:58 pm

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

@fmx: Instancing + different animations should be possible.
hendu
 
Posts: 2101
Joined: Sat Dec 18, 2010 12:53 pm

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

Postby Mel » Mon Apr 23, 2012 7:13 pm

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.
http://santiagong.daportfolio.com/
"There is nothing truly useless, it always serves as a bad example". Arthur A. Schmitt
User avatar
Mel
Competition winner
 
Posts: 1812
Joined: Wed May 07, 2008 11:40 am
Location: Granada, Spain

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

Postby REDDemon » Wed Apr 25, 2012 12:55 am

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:

viewtopic.php?f=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)

viewtopic.php?f=2&t=45617
OpenGL is not hard. What you have to do is just explained in specifications. What is hard is dealing with poor OpenGL implementations.
User avatar
REDDemon
 
Posts: 859
Joined: Tue Aug 31, 2010 8:06 pm
Location: Genova (Italy)

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

Postby hendu » Wed Apr 25, 2012 8:15 am

The vertex cache opt may not work with animated meshes.
hendu
 
Posts: 2101
Joined: Sat Dec 18, 2010 12:53 pm

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

Postby fmx » Wed Apr 25, 2012 9:30 am

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
User avatar
fmx
 
Posts: 559
Joined: Wed Dec 06, 2006 9:28 am
Location: UK

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

Postby hendu » Wed Apr 25, 2012 12:09 pm

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.
hendu
 
Posts: 2101
Joined: Sat Dec 18, 2010 12:53 pm

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

Postby Mel » Wed Apr 25, 2012 2:24 pm

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.
http://santiagong.daportfolio.com/
"There is nothing truly useless, it always serves as a bad example". Arthur A. Schmitt
User avatar
Mel
Competition winner
 
Posts: 1812
Joined: Wed May 07, 2008 11:40 am
Location: Granada, Spain

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

Postby fmx » Wed Apr 25, 2012 3:07 pm

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
User avatar
fmx
 
Posts: 559
Joined: Wed Dec 06, 2006 9:28 am
Location: UK

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

Postby REDDemon » Wed Apr 25, 2012 6:41 pm

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.
OpenGL is not hard. What you have to do is just explained in specifications. What is hard is dealing with poor OpenGL implementations.
User avatar
REDDemon
 
Posts: 859
Joined: Tue Aug 31, 2010 8:06 pm
Location: Genova (Italy)

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

Postby omaremad » Tue May 08, 2012 12:06 am

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: 1013
Joined: Fri Jul 15, 2005 11:30 pm
Location: Cairo,Egypt

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

Postby omaremad » Tue May 08, 2012 12:10 am

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
omaremad
Competition winner
 
Posts: 1013
Joined: Fri Jul 15, 2005 11:30 pm
Location: Cairo,Egypt

Next

Return to Competition Time!

Who is online

Users browsing this forum: No registered users and 1 guest