irrRenderer 1.0

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki

irrRenderer 1.0

Postby ent1ty » Sat Mar 22, 2014 8:29 pm

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!
User avatar
ent1ty
Competition winner
 
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Re: irrRenderer 1.0

Postby CuteAlien » Sat Mar 22, 2014 11:29 pm

Tss... and you complain about tiny 5 cm spiders in your room ;-) Nice first release!
IRC: #irrlicht on irc.freenode.net
Code snippets, patches&stuff: http://www.michaelzeilfelder.de/irrlicht.htm
Free racer created with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
User avatar
CuteAlien
Admin
 
Posts: 8250
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany

Re: irrRenderer 1.0

Postby ent1ty » Sun Mar 23, 2014 1:29 pm

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!
User avatar
ent1ty
Competition winner
 
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Re: irrRenderer 1.0

Postby thanhle » Mon Mar 24, 2014 10:11 am

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

Regards,
Thanh
thanhle
 
Posts: 324
Joined: Wed Jun 12, 2013 8:09 am

Re: irrRenderer 1.0

Postby ent1ty » Mon Mar 24, 2014 11:03 am

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!
User avatar
ent1ty
Competition winner
 
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Re: irrRenderer 1.0

Postby thanhle » Tue Mar 25, 2014 1:26 pm

Hehe,
Sorry, I type and post without checking. Yup! would be nice to have dynamic shadow :).
thanhle
 
Posts: 324
Joined: Wed Jun 12, 2013 8:09 am

Re: irrRenderer 1.0

Postby ent1ty » Thu Mar 27, 2014 6:14 pm

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!
User avatar
ent1ty
Competition winner
 
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Re: irrRenderer 1.0

Postby christianclavet » Sat Mar 29, 2014 8:41 pm

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.
User avatar
christianclavet
 
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA

Re: irrRenderer 1.0

Postby ent1ty » Sun Mar 30, 2014 9:39 am

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!
User avatar
ent1ty
Competition winner
 
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Re: irrRenderer 1.0

Postby devsh » Sun Mar 30, 2014 12:27 pm

its either
cpp Code: Select all
#version 150 compatibility


or
cpp Code: Select all
#version 140
#extension GL_ARB_compatibility : require
We chose to stream mesh data from Multiple OpenGL Contexts in many threads and do the other things, not because they are easy, but because they are hard! - JFK
User avatar
devsh
Competition winner
 
Posts: 1745
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK

Re: irrRenderer 1.0

Postby christianclavet » Sun Mar 30, 2014 5:37 pm

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:

cpp Code: Select all
#version 150 compatibility


cpp 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 [url](https://www.opengl.org/wiki/Core_Language_(GLSL)[/url])

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:
User avatar
christianclavet
 
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA

Re: irrRenderer 1.0

Postby hendu » Sun Mar 30, 2014 6:52 pm

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

Re: irrRenderer 1.0

Postby devsh » Sun Mar 30, 2014 8:37 pm

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
We chose to stream mesh data from Multiple OpenGL Contexts in many threads and do the other things, not because they are easy, but because they are hard! - JFK
User avatar
devsh
Competition winner
 
Posts: 1745
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK

Re: irrRenderer 1.0

Postby christianclavet » Mon Mar 31, 2014 3:11 am

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:
cpp Code: Select all
if(color.a < 0.5) discard; //a transparent pixel

So it would discard pixel after they reach half transparency?
User avatar
christianclavet
 
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA

Re: irrRenderer 1.0

Postby hendu » Mon Mar 31, 2014 7:41 am

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

Next

Return to Project Announcements

Who is online

Users browsing this forum: No registered users and 1 guest