I just uploaded a win64 build of Harmony phase 2 to graphicall.org. I really need people to start using the inferred lighting in real world scenes to help me identify and prioritize all the remaining issues with it. Also, feedback on the new shading tools in the render settings would be much appreciated. All UI changes for Harmony phase 2 are in the render panel (including the option to enable inferred lighting).
I will work on getting builds up for other platforms (I wouldn’t hold my breath if I was an OSX user though, sorry).
Okay, so after a quick test, it would appear that inferred rendering doesn’t play nicely with shadows, variance or simple, sun or spot. Without shadowed lights, at far distances away, the lights disappear. Closer up, the lights seem pixelated and sharp, and they don’t blend well. The closer you get, the better the lights appear.
Shadows and normal maps (or for that matter any maps) are not yet complete. I will add them to my newly started high priority to do list.
The sharp edges are more concerning. It looks like it is happening only with the specular lighting, which is much harder to bound by a volume. The light volumes significantly improve performance, so I would rather not get rid of them. I will have to give some thought to this.
I think some of the pixelation and disappearing of the lights has to do with error related to how the position information is handled. I’ll look into it.
Thanks, I have committed your fix. Do you want me to upload that build to graphicall? If so I could use some build information and a revision number (most likely 53567).
@Excalaberr:
If you don’t mind sharing, I would love to have that blend file for testing, especially since it looks like the forward rendering was beating the inferred lighting. It would also help to know what video card you have.
Forward beats inferred FPS-wise on my graphics card, as well, testing in a plain scene with a stretched cube and 16 point lamps. I’ve got a AMD Radeon HD 7700 series. Is there anything to using it other than selecting “Inferred Rendering” as the rendering technique in the shading section of the Render panel?
All you need to do to use the inferred lighting is to select the option from the UI under shading in the render options.
The inferred lighting still needs more optimization, so I am not too considered about it being outperformed by forward rendering at the moment. However, to best optimize the code, I need real world scenes to test with (not simply a bunch of lights dancing around one object). Furthermore, I am sure ATI cards will need more attention. On my nvidia card I can get inferred lighting to beat forward rendering on a point light heavy scene (though not by much yet).
For some reassurance on the performance, here is a list of a few possible optimizations:
Mixed resolution lighting (this has a large impact)
Using stenciling on the lights (scene dependent)
More efficient encoding and decoding of gbuffer data (not sure how much can be gained here)
Light batching (scene dependent)
I am sure there are plenty more areas for optimizing this code. First, I want to focus on features. To that end I have just committed support for spot lights with inferred lighting (though some deeper bug will need to be resolved before they can be used reliably).
Kupoman,i can provide you 2 large scenes (quite complex ,one of them isnt that large though)Its some game scenes almost done,with lots of props and things.
Let me know if you are interested.
I really have problems with textures with this build. In one file my diffuse texture really wants to use the first UV map of the mesh and not the second one that it is supposed to. In another file textures are just black…
Are textures supposed to work as they do in the standard 2.65a version? Or are there known problems with UVs and multiple textures per material?
You can see the UV problem in this file for example: http://www.mediafire.com/?mxn4yo46ktxwwy1,
remember to remove the DLAA filter from game logic and put it the render tab, otherwise the fps is lower.
Otherwise if I add some 15 spotlights to the scene I get 45 fps with inferred lighting but 60 fps with forward rendering. But the scene above that I am using have simple big surfaces and not any furniture for example. So my question is:
What should I be testing? Should I look for performance gains when using many lights and complex geometry? Or isn’t the code optimized enough for me to see any performance gain just yet? If not, do you need us to just test away and report weird things, like glitches and such?
What kind of scene would be the best for testing? Just a plain texture scene only lit with dynamic lighting, or as in my scene, trying to find a nice balance between AO texture and dynamic lights and lightmaps?
And it seems that spotlights acts as point-lights at the moment.
EDIT: I changed the lights to point lights and they behave differently, my fps is locked to 60, but it feels smother with inferred lighting when using point lights, and it looks better. Specular can not be turned off for the lights I suppose.
And my GPU seems to run a little hotter, might be because the build is not optimized.