irrRenderer 1.0

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki
Post Reply
ent1ty
Competition winner
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

irrRenderer 1.0

Post by ent1ty »

Image

Well... I finally managed to get myself to making on official release of irrRenderer. How, you ask? I dropped all the post processing support :D
This project I started around 3 years ago, but it has seen very little progress in the last 2.5. Anyway, let's cut to the chase. Features:
  • Deferred rendering
    Normal mapping, Parallax mapping
Go to https://github.com/osense/irrRenderer for source & online API documentation.
You can find more screenshots in the docs website, namely here.


The ditched post processing I hope to improve and release as a stand-alone extention for Irrlicht, probably usable without irrRenderer.

You should also note that even this says version 1.0 , it's not that polished and certainly lacks in many aspects. I hope to find some time to improve a few things in the near future. One thing that's really missing is dynamic shadows.
Last edited by ent1ty on Sat Mar 21, 2015 10:46 am, edited 2 times in total.
irrRenderer 1.0
Height2Normal v. 2.1 - convert height maps to normal maps

Step back! I have a void pointer, and I'm not afraid to use it!
CuteAlien
Admin
Posts: 9628
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Re: irrRenderer 1.0

Post by CuteAlien »

Tss... and you complain about tiny 5 cm spiders in your room ;-) Nice first release!
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
ent1ty
Competition winner
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Re: irrRenderer 1.0

Post by ent1ty »

Thank you... you should probably also know that the windows and linux binaries were compiled with different GCC and Irrlicht versions (lol). You can find out the exact numbers by invoking RenderTest with the --help argument.
New git updates will probably soon become incompatible with Irrlicht 1.8.1, as passing uniforms to shaders has changed a bit in 1.9.
irrRenderer 1.0
Height2Normal v. 2.1 - convert height maps to normal maps

Step back! I have a void pointer, and I'm not afraid to use it!
thanhle
Posts: 325
Joined: Wed Jun 12, 2013 8:09 am

Re: irrRenderer 1.0

Post by thanhle »

Thanks for sharing.
Looks great mate.
Hope to see dynamic light soon.

Regards,
Thanh
ent1ty
Competition winner
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Re: irrRenderer 1.0

Post by ent1ty »

Did you, by chance, mean dynamic shadows? The lights are fully dynamic and all Irrlicht light types are supported(ambient, point, spot, directional).
Other than that, thank you for the comment :)
irrRenderer 1.0
Height2Normal v. 2.1 - convert height maps to normal maps

Step back! I have a void pointer, and I'm not afraid to use it!
thanhle
Posts: 325
Joined: Wed Jun 12, 2013 8:09 am

Re: irrRenderer 1.0

Post by thanhle »

Hehe,
Sorry, I type and post without checking. Yup! would be nice to have dynamic shadow :).
ent1ty
Competition winner
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Re: irrRenderer 1.0

Post by ent1ty »

Added soft particles:

Image
irrRenderer 1.0
Height2Normal v. 2.1 - convert height maps to normal maps

Step back! I have a void pointer, and I'm not afraid to use it!
christianclavet
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA
Contact:

Re: irrRenderer 1.0

Post by christianclavet »

Thanks Ent1ty! I'm really impressed by the quality of lights and the framerate. Got more than 1400FPS here on your demo. (GTX780)
One thing I find strange is that the render look ok with normal maps and paralax map, but on solid the colors are all weird.

How are material are used with this? Can I use my own shader with the renderer? What version of GL is required to work correctly?
EDIT:Found the console output key and I think I have a shader failing to compile on my NVidia GTX780: (suspect the "solid" to fail, since the other are working fine)
here is a screen:
Image
One thing that could be interesting to the demo is to change the color/intensity of the lights over time (animator?) so this will show that they are really dynamic and not baked.
ent1ty
Competition winner
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Re: irrRenderer 1.0

Post by ent1ty »

Looks like the parallax map shader is failing to compile (the demo starts on parallax map and a single 'space' will get you to solid). Anyway, this is a shader compiler problem, inverse should be supported at least since #version 140 and it's supported on 130 on my amd gpu (open source drivers) but it does not support 140 (heh.) What should fix this is, if you go to bin/shaders/parallaxmap.vert and change the first line from #version 130 to #version 150. Let me know if it works. The rest is just warnings, they should be fixed when I fully move to Irrlicht 1.9.
How are material are used with this? Can I use my own shader with the renderer? What version of GL is required to work correctly?
Yes, you can use you own shaders, but you have to make sure you output some data to other render targets for my rendering pipeline still to work... you can check out the solid shader .vert and .frag (it's the simplest one), in short, you output color to first target, view-space normal.xyz into the second and depth into the third one (the red channel).
One thing that could be interesting to the demo is to change the color/intensity of the lights over time (animator?) so this will show that they are really dynamic and not baked.
Definitely a good idea. I will think about this, maybe I can make the light 'pulsating', change color, range... or maybe just make them float around a bit :) Thank you.
irrRenderer 1.0
Height2Normal v. 2.1 - convert height maps to normal maps

Step back! I have a void pointer, and I'm not afraid to use it!
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: irrRenderer 1.0

Post by devsh »

its either

Code: Select all

#version 150 compatibility
or

Code: Select all

#version 140
#extension GL_ARB_compatibility : require
christianclavet
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA
Contact:

Re: irrRenderer 1.0

Post by christianclavet »

Hi, Checked and both are failing. And you are right, it's the paralax map shader that is failing to render. It was not the solid.

But by forcing compatibility profile it worked:

Code: Select all

#version 150 compatibility

Code: Select all

#version 140
#extension GL_ARB_compatibility : require
This is not supported at all by the NVIDIA compiler.

Looking at this link someone that will use the shader will require support for OPENGL 3.2 (https://www.opengl.org/wiki/Core_Language_(GLSL))
Yes, you can use you own shaders, but you have to make sure you output some data to other render targets for my rendering pipeline still to work... you can check out the solid shader .vert and .frag (it's the simplest one), in short, you output color to first target, view-space normal.xyz into the second and depth into the third one (the red channel).
Thank! I've looked quickly at the solid shader and I think I could "port" some shaders that I have to it. :) Would be really nice if something like this could be implemented in the Irrlicht shader branch!

Would be interesting to check if the shaders are still compiling well on INTEL hardware. This is one of the shader compiler were the syntax is the most strict.
... maybe I can make the light 'pulsating'
You would have to put a warning for seizures! :lol:
hendu
Posts: 2600
Joined: Sat Dec 18, 2010 12:53 pm

Re: irrRenderer 1.0

Post by hendu »

Would be really nice if something like this could be implemented in the Irrlicht shader branch!
I'm afraid the bulk is in the user's shaders, the mrt setup is only a few lines. What's more, users may want a different mrt setup. So I don't see much benefit in having something like this in the engine proper; it would make sense as an example.
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Re: irrRenderer 1.0

Post by devsh »

could be useful to grab my irrlicht and see how much more FPS that would give

btw... you dont have to record depth to a special MRT channel (which is useful as for hardware compatibility reasons you should only use MAX 4 MRTs ever!!!) you can pull it directly from depth buffer
christianclavet
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA
Contact:

Re: irrRenderer 1.0

Post by christianclavet »

Hi, Been checking the shaders, and it was really instructive! There is a lot to learn there! I think it the first solid reference on GLSL shaders (on Irrlicht) I've seen since a very long time.
Will have to check how to update your normal shader to provide a spec map to it and it will be almost perfect for me. :)

Can the transparent_alpha shader can support partially transparent textures (like glass)?
I saw this in the code:

Code: Select all

if(color.a < 0.5) discard; //a transparent pixel
So it would discard pixel after they reach half transparency?
hendu
Posts: 2600
Joined: Sat Dec 18, 2010 12:53 pm

Re: irrRenderer 1.0

Post by hendu »

devsh wrote:btw... you dont have to record depth to a special MRT channel (which is useful as for hardware compatibility reasons you should only use MAX 4 MRTs ever!!!) you can pull it directly from depth buffer
Not while using it. That is against the standard, even if depth writes have been turned off, and only happens to work on nvidia.

So for things like soft particles you do need it separately.
Post Reply