3000th commit - IrrlichtBAW (GIT repo, v 0.3.0-gamma1)

Discuss about anything related to the Irrlicht Engine, or read announcements about any significant features or usage changes.
Post Reply
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: To The Rescue of Your FPS - BAW Irrlicht (GIT repo, ver

Post by devsh »

Due to weird scheduling needs, and a few bugs (such as FPS dropping to 1 with a lot of mobs). My focus has switched to instanced hardware skinned meshes.....
thanhle
Posts: 325
Joined: Wed Jun 12, 2013 8:09 am

Re: To The Rescue of Your FPS - BAW Irrlicht (GIT repo, ver

Post by thanhle »

Make instancing an automate feature.
Detect hardware and enable instancing.
I think Urho3D does something like this.
christianclavet
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA
Contact:

Re: To The Rescue of Your FPS - BAW Irrlicht (GIT repo, ver

Post by christianclavet »

Ha! Really Devsh style of answer! :) lol

It would be educative for all of us to explain why you are against the idea detecting the graphics card capabilities and enabling hardware instancing? Maybe you have another way to do it, or you can't think about it now because you are really busy on other parts... One thing I'm 110% sure it's not because your not able to do it! :wink:
sodandk
Competition winner
Posts: 340
Joined: Wed Aug 10, 2011 11:58 am

Re: To The Rescue of Your FPS - BAW Irrlicht (GIT repo, ver

Post by sodandk »

on a sidenote ...
http://edu.buildaworld.net/

the large city imports are getting a much needed fps upgrade

don't we all love devsh :-)
Last edited by sodandk on Fri Jun 17, 2016 9:04 am, edited 2 times in total.
hendu
Posts: 2600
Joined: Sat Dec 18, 2010 12:53 pm

Re: To The Rescue of Your FPS - BAW Irrlicht (GIT repo, ver

Post by hendu »

Because it would be slow and cumbersome. It's the same as filesystem deduplication or KSM page merging - it's slow to detect a possible match, and if things change, you have to undo work. If you're interested, read up on those two.

Manual instancing in contrast is just fine. When you tell it to instance this mesh 100 times in these places, and are explicitly aware when it is created and changed.
thanhle
Posts: 325
Joined: Wed Jun 12, 2013 8:09 am

Re: To The Rescue of Your FPS - BAW Irrlicht (GIT repo, ver

Post by thanhle »

I think for skeletal animation and animated mesh. It is needed.

For Urho3D, you can spawn 1k+ of animated characters with shadow enabled without issues of slowing down. That was on a laptop in debug mode.
It is actually more optimised than Orge3d for large number of meshes.
They are using Quaternion for scene node transformation internally.

Regards
christianclavet
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA
Contact:

Re: To The Rescue of Your FPS - BAW Irrlicht (GIT repo, ver

Post by christianclavet »

Hi, Thanhle.

Why should the instancing be done automatically? Hendu have a point there. If at least you can do it (BTW congrat for implementing this on BAW), I don't see a issue.
Can an mesh can still be instanced, if it's deformed by the skinning/bones/animations? Would you surely need to have hardware skinning too. Doing this with software skinning as in Irrlicht would surely not work.
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: To The Rescue of Your FPS - BAW Irrlicht (GIT repo, ver

Post by devsh »

You need to pass per-instance data to be able to do variation, auto-instancing goes contrary to optimization because it would require me to gather up the separate ISceneNode.s and aggregate their transformations etc. into a continuous array.

I pass my per-instance data the fastest way possible, through the use of Vertex Attribute Divisors instead of uniform arrays, it allows for millions of instances AND doesn't suffer from constant waterfalling.
But the per instance data needs to sit in a GPU buffer which I only want to update once, and that is when some instances move during the frame... IN A CONTINOUS BUFFER

So by doing auto-instancing that would be throwing half the speed gain away.
Vectrotek
Competition winner
Posts: 1087
Joined: Sat May 02, 2015 5:05 pm

Re: To The Rescue of Your FPS - BAW Irrlicht (GIT repo, ver

Post by Vectrotek »

The web page looks fantastic!
I never realized how deep this goes.
You could even implement mass psychology.
It looks like the start of the matrix, really!
(sends shivers down my spine)
I need a system upgrade..
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: To The Rescue of Your FPS - BAW Irrlicht (GIT repo, ver

Post by devsh »

Due to the extraordinary slowness of the Software Skinning on top of the flexible vertex format... a number of features have become essential for the 0.1 release of BaWIrrlicht


Stuff to do for the 0.1 Release:
A) Implement Transform Feedback
1) Make use of IGPUAnimatedMesh compulsory (Hardware Skinning)
2) SSE3 SIMD Dual Quaternion Class
3) Dual Quaternion Skinning
4) InstancedMeshSceneNode for static and animated nodes!
Vectrotek
Competition winner
Posts: 1087
Joined: Sat May 02, 2015 5:05 pm

Re: To The Rescue of Your FPS - BAW Irrlicht (GIT repo, ver

Post by Vectrotek »

I got your Irrlicht BAW.. Looks very cool, but can't compile it with VC 2005 Express..
Would it be possible to give us a"*.vcproj" that we could open with earlier versions of VC?
sodandk
Competition winner
Posts: 340
Joined: Wed Aug 10, 2011 11:58 am

Re: To The Rescue of Your FPS - BAW Irrlicht (GIT repo, ver

Post by sodandk »

You can download latest version of Visual Studio for free.
VS 2005 is ooolllllddddd.
Vectrotek
Competition winner
Posts: 1087
Joined: Sat May 02, 2015 5:05 pm

Re: To The Rescue of Your FPS - BAW Irrlicht (GIT repo, ver

Post by Vectrotek »

Thanks! I got a cool stand alone installation ISO (installed on my machine using Daemon Tools) here:
(727,351,296 bytes)
http://www.pcadvisor.co.uk/download/dev ... inkid=2808

Questions..
- I can compile all my old Irrlicht Projects fine with it, so..
- I got this far with Irr-BAW in VC 2010:
Image

O.K.
Vectrotek
Competition winner
Posts: 1087
Joined: Sat May 02, 2015 5:05 pm

Re: To The Rescue of Your FPS - BAW Irrlicht (GIT repo, ver

Post by Vectrotek »

Now I want to ask.."Is Irr BAW for 64 bit only?" (I have Win XP 32 bit)

- I changed "x64" to "win32" and compiled resulting
in the following error message:
"1>------ Build started: Project: Irrlicht, Configuration: Static lib - Release - Server Win32 ------
1>Project file contains ToolsVersion="14.0", which is not supported by this version of MSBuild. Treating the project as if it had ToolsVersion="4.0".
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets(511,5): error MSB8008: Specified platform toolset (v140) is not installed or invalid. Please make sure that a supported PlatformToolset value is selected.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========" blah blah..

- I Googled ToolsVersion="14.0", and changed "Platform Tooset" to "V100".

- The compilation seems to do something this time but, again errors like
"missing files".

- I copied those missing files from the original Irrlicht Engine Source to BAW Directories (never replacing).
Compilation now looked even better, but again errors:
"irrlichtbaw-master\include\IMeshBuffer.h(722): error C2719: 'input':
formal parameter with __declspec(align('16')) won't be aligned"

- What am I forgetting?
I can compile my other projects so I'm stuck right here..
(properties screen grab on next page..)
Last edited by Vectrotek on Mon Jun 27, 2016 8:05 pm, edited 2 times in total.
Post Reply