Page 1 of 7

irrRenderer 1.0

Posted: Sat Mar 22, 2014 8:29 pm
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.

Re: irrRenderer 1.0

Posted: Sat Mar 22, 2014 11:29 pm
by CuteAlien
Tss... and you complain about tiny 5 cm spiders in your room ;-) Nice first release!

Re: irrRenderer 1.0

Posted: Sun Mar 23, 2014 1:29 pm
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.

Re: irrRenderer 1.0

Posted: Mon Mar 24, 2014 10:11 am
by thanhle
Thanks for sharing.
Looks great mate.
Hope to see dynamic light soon.

Regards,
Thanh

Re: irrRenderer 1.0

Posted: Mon Mar 24, 2014 11:03 am
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 :)

Re: irrRenderer 1.0

Posted: Tue Mar 25, 2014 1:26 pm
by thanhle
Hehe,
Sorry, I type and post without checking. Yup! would be nice to have dynamic shadow :).

Re: irrRenderer 1.0

Posted: Thu Mar 27, 2014 6:14 pm
by ent1ty
Added soft particles:

Image

Re: irrRenderer 1.0

Posted: Sat Mar 29, 2014 8:41 pm
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.

Re: irrRenderer 1.0

Posted: Sun Mar 30, 2014 9:39 am
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.

Re: irrRenderer 1.0

Posted: Sun Mar 30, 2014 12:27 pm
by devsh
its either

Code: Select all

#version 150 compatibility
or

Code: Select all

#version 140
#extension GL_ARB_compatibility : require

Re: irrRenderer 1.0

Posted: Sun Mar 30, 2014 5:37 pm
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:

Re: irrRenderer 1.0

Posted: Sun Mar 30, 2014 6:52 pm
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.

Re: irrRenderer 1.0

Posted: Sun Mar 30, 2014 8:37 pm
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

Re: irrRenderer 1.0

Posted: Mon Mar 31, 2014 3:11 am
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?

Re: irrRenderer 1.0

Posted: Mon Mar 31, 2014 7:41 am
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.