Flexible Vertex Format - special SVN branch is ready!!!

Discuss about anything related to the Irrlicht Engine, or read announcements about any significant features or usage changes.
Post Reply
Nadro
Posts: 1648
Joined: Sun Feb 19, 2006 9:08 am
Location: Warsaw, Poland

Re: Flexible Vertex Format - preview patch!

Post by Nadro »

I've done 4th version. I added support for skinned meshes with loaders for them. Also OpenGL renderer is mostly done (vertex attributes support is done, it will be also useful for OpenGL 3 VAO). Only normal and parallax mapping need rebuild.

I will prepare normal and parallax mapping materials + hardware skinning example soon.
Last edited by Nadro on Mon Mar 12, 2012 3:13 pm, edited 1 time in total.
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
Nadro
Posts: 1648
Joined: Sun Feb 19, 2006 9:08 am
Location: Warsaw, Poland

Re: Flexible Vertex Format - preview patch!

Post by Nadro »

I finished Direct3D9 renderer. Alpha version is available on a patch tracker. OpenGL and Direct3D renderers are finished but still require some tests and I hope that You will help me in this area. If someone have a small project, or doesn't use Mesh Buffers access in Your game code please check it with this patch. This is the best way to find a bugs. Nearly all Irrlicht's examples works fine. Every info about bugs and performance drops (in fixed function rendering perf may drop, because direct access is faster than handling it by descriptor; perf drops should be really small especially when You will use shaders for skinning etc; in future programmable drivers like D3D10/OGL3 performance should be back to a standard values) will be helpful.
Last edited by Nadro on Mon Mar 12, 2012 3:13 pm, edited 1 time in total.
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
CuteAlien
Admin
Posts: 9734
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Re: Flexible Vertex Format - alpha patch! D3D9 + OGL ready!

Post by CuteAlien »

Oh wow, that will take a while to understand - a 15000 lines patch. I only did take very quick 5-minute look over it now (had to wait for something) so only thing I can comment on so far is what you probably consider as most unimportant... variable-names. Sorry, just first stuff you notice before you have to understand the code ;-) Anyway - why do you add a p before all function parameters? It would be nicer to keep the Irrlicht-style that's used throughout. Also you shouldn't use _Uppercase for local variables, such names are reserved in c++ and so there can be defines replacing any such variable if you have bad luck (and having run into something similar already in the past I can tell you that is one hell of a bug to find): http://stackoverflow.com/questions/2287 ... identifier.

I will try if I can apply it for testing in a project using D3D9, but not sure right now when I find time for that (will probably have to change a lot in the project as well for testing this as it accesses vertices directly in several places, but maybe I can manage to comment-out enough to get it working).

Anyway, looks like impressive work.
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
Nadro
Posts: 1648
Joined: Sun Feb 19, 2006 9:08 am
Location: Warsaw, Poland

Re: Flexible Vertex Format - alpha patch! D3D9 + OGL ready!

Post by Nadro »

Very thanks for an info about underscore + uppercase combination, I will change it in a next release. In my projects I have rule: 'p' - 'parameter variable' and thats why I used it here, but You're right, in Irrlicht code style should be the same everywhere, so I will change it too.

BTW. If more comments about modifications in each file is needed I can prepare them for easier understand a changes in a code.
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
fmx

Re: Flexible Vertex Format - alpha patch! D3D9 + OGL ready!

Post by fmx »

great stuff Nadro, thanks for continuing with this
i'll have a look at some of the files over the weekend to make suggestions
Nadro
Posts: 1648
Joined: Sun Feb 19, 2006 9:08 am
Location: Warsaw, Poland

Re: Flexible Vertex Format - alpha patch! D3D9 + OGL ready!

Post by Nadro »

Beta version is ready. I added support for both software drivers (I can't add support for D3D8, because I have the latest DX SDK now). Fixed pipeline drivers (so D3D8, Software, Burning's Video) support only built-in Irrlicht vertex types. I think that this isn't disadvantage, because flexible vertex format is helpful only for programmable pipeline, so for D3D9 and OGL. I removed '_' in local variables as CuteAlien suggested, but 'p' in parameters still exist.

BTW. Bug with shadows in D3D9 isn't caused by this patch, I see that in original rev4099 we have the same issue.
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
Nadro
Posts: 1648
Joined: Sun Feb 19, 2006 9:08 am
Location: Warsaw, Poland

Re: Flexible Vertex Format - Beta version is ready!

Post by Nadro »

I finished Release Candidate 1 patch. I added missing features in it (D3D8 driver, Parallax and Normal Materials for D3D9 and OGL). Compared to standard Irrlicht rev4099 only createForsythOptimizedMesh method is missing (I hope that author of original code will update it soon). Now we can optimize code (mainly OGL drawing section, which have many vertex pointers, attrib etc. calls per object).

After minor updates all Irrlicht examples works fine with this patch (exclude 08.SpecialFx shadow issue in D3D8 and D3D9, but as I mentioned this is Irrlicht bug).

Update:
RC2 is ready ;)

Cheers,
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
booe
Posts: 76
Joined: Thu Jul 29, 2010 2:12 pm

Re: Flexible Vertex Format - Release Candidate 2 is ready!!!

Post by booe »

Cool, can't wait for more!
Keep working or I will set an angry sheep after you!
ACE247
Posts: 704
Joined: Tue Mar 16, 2010 12:31 am

Re: Flexible Vertex Format - Release Candidate 2 is ready!!!

Post by ACE247 »

Wow great work Nadro! I can see you've been hard at work getting this done. :D
Now we just have to hope the reviewing goes fast/fast-ish
I'll look for bugs and improvements. ;)
Nadro
Posts: 1648
Joined: Sun Feb 19, 2006 9:08 am
Location: Warsaw, Poland

Re: Flexible Vertex Format - special SVN branch is ready!!!

Post by Nadro »

Thanks :) Everybody who wants check FVF support in Irrlicht and report potential bugs please use an Irrlicht from a shader-pipeline branch (link in a first post).
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
ACE247
Posts: 704
Joined: Tue Mar 16, 2010 12:31 am

Re: Flexible Vertex Format - special SVN branch is ready!!!

Post by ACE247 »

Just posting all this here, will look whats causing it later.
Found a small error in include/IMeshManipulator.h

Code: Select all

if(CheckComponents[ElementCount-1])
needs to be

Code: Select all

if(checkComponents[ElementCount-1])
;)

Also some insane lightshows going on in SpecialFX example
Image

sudden parralax&normal map issue at distance, works well nearby.
Image

Terrain Rendering example and Occlusion Query example in OpenGL crash with(Other drivers work normal for these examples, this might be related only to my system. :? )

Code: Select all

Error while mapping shared library sections:
Error while mapping shared library sections:
Program received signal SIGSEGV, Segmentation fault.
In nvogl32!DrvValidateVersion () (C:\WINDOWS\SysWOW64\nvogl32.dll)
 
Also a fast white flickering in Occlusion query when pressing space, with Burnings Video Driver.

A bug with bsp culling in irr tech demo when looking back towards entry point
Image
Same problem with burnings video driver.
Also texture information read/draw issue in burnings video on particle sprites
Image
Mel
Competition winner
Posts: 2292
Joined: Wed May 07, 2008 11:40 am
Location: Granada, Spain

Re: Flexible Vertex Format - special SVN branch is ready!!!

Post by Mel »

The texture read/draw issue isn't related to the FVF, i already saw that before. It has to see with the blend operations.
"There is nothing truly useless, it always serves as a bad example". Arthur A. Schmitt
ACE247
Posts: 704
Joined: Tue Mar 16, 2010 12:31 am

Re: Flexible Vertex Format - special SVN branch is ready!!!

Post by ACE247 »

Thanks Mel, I was kinda suspecting that. Will look into those when I get the time. But other than these few bugs its really looking quite stable so far.
Might need some summary here of what exactly the FVF changes for irrlicht, so I can better aim the debugging.
Nadro
Posts: 1648
Joined: Sun Feb 19, 2006 9:08 am
Location: Warsaw, Poland

Re: Flexible Vertex Format - special SVN branch is ready!!!

Post by Nadro »

Thanks for a report. I fixed bug with a VBO rendering, so examples should work correctly now. I compared them with an original examples from a trunk and it works the same (bugs are also the same eg. "Also a fast white flickering in Occlusion query when pressing space, with Burnings Video Driver."). I hope that example no. 11 will be work properly now, please check it if You can. On my Radeon HD4850 it works perfectly.
Might need some summary here of what exactly the FVF changes for irrlicht, so I can better aim the debugging.
Adding support for a FVF required many changes in an internal parts of a IMeshBuffer (and derived CMeshBuffer), so all engine parts which need access to a vertices or indices needed update (loaders, scene nodes, mesh manipulators etc.). For D3D9 and OGL drivers rendering system is also strong modified (Software, Burning's and D3D8 uses only translate drawVertexPrimitiveList call to an original drawVertexPrimitiveList call and thats why these drivers support only built-in vertex structures, so S3DVertex, S3DVertex2TCoords and S3DVertexTangents).
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
Mel
Competition winner
Posts: 2292
Joined: Wed May 07, 2008 11:40 am
Location: Granada, Spain

Re: Flexible Vertex Format - special SVN branch is ready!!!

Post by Mel »

I have also seen the disapearance of the castle in the demo. That is a bounding box not properly calculated, because the rendering (when done) works well. Anyway, i like the system to create vertex definitions, what i would like to have also is some documentation, but seems easy to understand anyway.
"There is nothing truly useless, it always serves as a bad example". Arthur A. Schmitt
Post Reply