irrRenderer 1.0

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki
ataxxdog
Posts: 5
Joined: Thu Jan 23, 2014 4:50 am

Re: irrRenderer 1.0

Post by ataxxdog »

This is cool. irrRenderer is what got me started with deferred rendering, and XEffects helped me with shadows. So far I've re-implemented an entire system with:

- deferred rendering
- normal mapping
- specular mapping (shininess)
- Blinn-Phong BRDF
- dynamic shadows for point, spot, and directional lights
- variance shadow mapping (soft shadows)
- cascaded shadow mapping for directional lights (with VSM soft shadows)

There is also some basic post-processing support, which is currently only used to render a box blur for VSM.

I'm talking to our people about making this code open-source. Would anyone be interested in contributing, integrating it with irrRenderer features, etc.?

Here are some renders to show what I'm talking about:

Image
Image
Image

Also some videos:

Cascaded shadow maps: http://youtu.be/TmPsybfzquo
Spot lights w/ shadows: http://youtu.be/0NLhZXBtJYs (Note: this is an older version, where some red specular reflections were appearing incorrectly on the robot.)
Point light w/ shadows: http://youtu.be/yRkTy0fb-vw

EDIT: Sorry, I realized that I kinda hijacked this thread. I really just wanted to see if there are opportunities for collaboration, especially since ent1ty's code helped me a lot and I want to give back somehow. I hope this is making sense :)
Prototype game engine: https://github.com/thyau/lib50s
thanhle
Posts: 325
Joined: Wed Jun 12, 2013 8:09 am

Re: irrRenderer 1.0

Post by thanhle »

Wow, looks great mate.
ent1ty
Competition winner
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Re: irrRenderer 1.0

Post by ent1ty »

That, indeed, looks awesome.
ataxxdog wrote:I'm talking to our people about making this code open-source. Would anyone be interested in contributing, integrating it with irrRenderer features, etc.?
Not me, I'm busy with mobile dev, at least for this summer :)
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!
ent1ty
Competition winner
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Re: irrRenderer 1.0

Post by ent1ty »

prodcake wrote:I've been having some issues implementing this.

I had a look at the documentation and the example that you have on there comes up with an error with

Code: Select all

renderer->getMaterialSwapper()->swap();
saying that CMaterialSwapper doesn't have a member called swap.

I'm assuming the example there .. is out of date? I've been scouring the docs to figure out how to get past this. and i'm really short of ideas.
I'd love to use this renderer as I've got a little village i want to be lit up with lanterns etc etc.

any ideas?
Whoops completely missed your post... bad timing :( Yes, the fuction's name has been changed to swapMaterials: http://www.fi.muni.cz/~xkrupick/irr/doc ... apper.html
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!
prodcake
Posts: 10
Joined: Thu Jun 23, 2011 9:53 am

Re: irrRenderer 1.0

Post by prodcake »

Haha thought as much, no problem anyway, thanks for the help!

edit:
now that fixed the material problem, but now it's coming up with the same error as it did when the renderer didn't swap materials.

Code: Select all

undefined reference to `_imp___ZN3irr5video16IdentityMaterialE'|
ent1ty
Competition winner
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Re: irrRenderer 1.0

Post by ent1ty »

You're not linking with Irrlicht properly (the error you're getting has nothing to do with irrRenderer... at least I don't think. But I'm remembering now I was getting some weird linking error I couldn't quite understand the reason behind when I forgot to initialize irrR. with the create function, not sure if this is the case.)
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 »

Hi,
The documentation need to be updated.
The example code from the document doesn't work due to change of function calls.
Missing: getMaterialSwapper()->swap();
Missing: CRenderer::drawAll()

One question: Is this still work with latest changes in trunk? My render scene is pitch black.

Also, I get memory leak upon close device.

irrMap.h(692) : {9241} client block at 0x082A65B8, subtype 0, 24 bytes long.
Data: < , > 00 00 00 00 00 00 00 00 00 00 00 00 00 BA 2C 08
COpenGLDriver.cpp(1196) : {9240} client block at 0x082D3650, subtype 0, 44 bytes long.
Data: < c , > 98 63 CB 0F 00 BA 2C 08 01 00 00 00 01 00 00 00
{9238} normal block at 0x081F5668, 648 bytes long.
Data: < ?> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3F
{9236} normal block at 0x05CF8C98, 24 bytes long.
Data: < % > D8 D1 25 08 CD CD CD CD CD CD CD CD CD CD CD CD
{9235} normal block at 0x06CF3C38, 7 bytes long.
Data: <depth1 > 64 65 70 74 68 31 00
{9233} normal block at 0x06CEAA60, 7 bytes long.
Data: <depth1 > 64 65 70 74 68 31 00
COpenGLDriver.cpp(4748) : {9231} client block at 0x0825D1D8, subtype 0, 136 bytes l
...

thanks
thanh
ent1ty
Competition winner
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Re: irrRenderer 1.0

Post by ent1ty »

Hmm.. the docs are definitely outdated in parts. As for the crash, I haven't tested this for quite some time and indeed, the project is pretty much abandoned at this state. I did however want to try it out the other day, but to my horror I discovered the only way to build this project is to use code blocks! So I may try to get it into a working order (add a Makefile!), if I do so I'll post here.

Thanks for taking interest btw :)
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!
ent1ty
Competition winner
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Re: irrRenderer 1.0

Post by ent1ty »

Okay, so I have added makefiles and updated the docs (actually all that needed updating was the short example on the index page. At least I think - if there's something else wrong, let me know). You can find the new docs here: https://osense.github.io/irrRenderer. About the crash on exit - not sure what exactly is going on, I'll try and see if I can find what's wrong.
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 »

you might want to use Cook-Torrance lighting model for your metal mech, Blinn-Phong is only good for plastics and skin
ent1ty
Competition winner
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Re: irrRenderer 1.0

Post by ent1ty »

Ah if I am going to do some work on this in the future, multiple lighting models is very far down the to-do list :P I haven't even the shader callbacks to stop using calls deprecated after 1.8. Plus, I would really like to know how much everything gets broken when the shader-pipeline is merged into master. I haven't checked that branch at all, yet.
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 »

Hi mate thanks.

That works fine see image below for 903 point light test.
Some how I can't get light to lit static mesh, do we need to do any setting for that?
Also if I resize the window do you have any method to update the renderer to the New size window?

Image

Bug:
memory leak when exit.

Parallax shader error:
Intel card:
compile shader: parallax
GLSL shader failed to compile
ERROR: 0:27: 'inverse' : no matching overloaded function found (using implicit conversion) (Fixed: using shader #version 140)

NVidia card:
compile shader: parallax
GLSL shader failed to compile
0(8) : warning C7555: 'varying' is deprecated, use 'in/out' instead
0(9) : warning C7555: 'varying' is deprecated, use 'in/out' instead
0(10) : warning C7555: 'varying' is deprecated, use 'in/out' instead
0(11) : warning C7555: 'varying' is deprecated, use 'in/out' instead
0(13) : warning C7555: 'varying' is deprecated, use 'in/out' instead
0(17) : warning C7533: global variable gl_Vertex is deprecated after version 120
0(22) : warning C7533: global variable gl_NormalMatrix is deprecated after version 120
0(22) : warning C7533: global variable gl_Normal is deprecated after version 120
0(23) : warning C7533: global variable gl_MultiTexCoord1 is deprecated after version 120
0(24) : warning C7533: global variable gl_MultiTexCoord2 is deprecated after version 120
0(27) : error C7532: global function inverse requires "#version 150" or later
0(27) : error C0000: ... or #extension GL_ARB_gpu_shader5 : enable
0(31) : warning C7533: global variable gl_TexCoord is deprecated after version 120
0(31) : warning C7533: global variable gl_MultiTexCoord0 is deprecated after version 120


PS: Looks like the dude with the robot picture above "ataxxdog" release the combine render sourcecode. See below link. It's good if you can integrate that :).

https://github.com/thyau/lib50s

Regards
thanh
Last edited by thanhle on Fri Mar 20, 2015 11:45 am, edited 2 times in total.
thanhle
Posts: 325
Joined: Wed Jun 12, 2013 8:09 am

Re: irrRenderer 1.0

Post by thanhle »

Hi Mate,
If I don't want the back ground to be black. Where do I change that?
Without deferred. I just change it at beginScene. Where can I set it to use that color in

video::SColor color(255, 100, 100, 140);
device->getVideoDriver()->beginScene(true, true, color)

Another question:
I found that scenenode needs texture for deferred render to work. Is there anyway to make it work with no texture?

Thanks
thanh
ent1ty
Competition winner
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Re: irrRenderer 1.0

Post by ent1ty »

thanhle wrote: Some how I can't get light to lit static mesh, do we need to do any setting for that?
Check that you have the correct material set.
thanhle wrote: Also if I resize the window do you have any method to update the renderer to the New size window?
Calling clearMRTs and then createDefaultPipeline should recreate the renderers MRTs for the new window size. See https://osense.github.io/irrRenderer/cl ... derer.html.
thanhle wrote: memory leak when exit.
Yes, I know about this, the IDE I'm using has transitionally broken the debugger plugin :) Will have to figure something else out - if you could send me a stacktrace, that would be immensely helpful.
thanhle wrote: Parallax shader error:
Intel card:
compile shader: parallax
GLSL shader failed to compile
ERROR: 0:27: 'inverse' : no matching overloaded function found (using implicit conversion) (Fixed: using shader #version 140)
This fixes things for nvidia compilers, but breaks them for the mesa linux driver. I will change it to #version 140 in the repo though, as that is what the standard requires.
thanhle wrote: If I don't want the back ground to be black. Where do I change that?
irrRenderer uses render-to-texture internally and clearing all the textures each frame would likely lead to a performance drop. Usually, you want to have the whole viewport filled with geometry anyway.
thanhle wrote: I found that scenenode needs texture for deferred render to work. Is there anyway to make it work with no texture?
Yes, you can write your own material shader :) Start with the solid shader and modify it to your needs.
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 mate,
Just need to see your reply to confirm that this render is till alive :).

Can I use your post processing with this render :). Is there any example?

Thanks
thanh
Post Reply