New Harmony build available

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).

Win64:


Win32:
http://graphicall.org/1035 (Thanks moguri)
Lin64:
http://www.graphicall.org/1036 (Thanks moguri)
Lin32:
http://www.graphicall.org/1037 (Thanks Jorge Bernal)

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.


Normal maps also seem to be disregarded in Inferred Rendering mode (though that’s to be expected since it’s not finished).

Thanks for the build, and thanks a lot for the work you’ve done on this so far!

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.

Thank you for the feedback.

It also doesn’t seem right that when the camera viewport moves toward or away from the lit object, the object’s shading appears to change noticeably.

Hmm . . . I never tested it with a moving camera. Thanks for the feedback, I will look into it.

Any chance on a 32 bit build?
I’m dying to test this :slight_smile:

Great progress so far!

Just tested it out. I did notice some problems with the lights earlier on but everything was fine after that.

Here is the quick scene I whipped up:

Inferred:
http://img1.UploadScreenshot.com/images/thumb/1/320584549.jpg

Forward:
http://img1.UploadScreenshot.com/images/thumb/1/321022032.jpg

The only noticeable difference was the above mentioned normal mapping! I’ll work on more scenes to see if I can isolate some bugs.
Ex.

Win32 build uploaded, link added in first post. Thanks to Moguri for the build.

Hi Kupoman,

i have uploaded a linux 32 build here (https://docs.google.com/open?id=0B_aHdCLOBEQSMHlrRHdUUEF6dU0).

Also, I applied this patch (http://pastebin.com/p6fyrZQQ) to can build without errors in linux.

Thanks for your work.

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).

O my god,cant wait to test it!!

@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.

Oops,indeed 200 fps forward,150 inferred,that’s quite a noticeable difference.

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.

Yes, I would certainly be interested in them.

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.

@martin.hedin:
There were changes to the UV code after 2.65a. Try a recent build of Trunk and see if you have the same problems.

Okay,did some tests,the forward really wins…This is early inferred lighting mode,so it will get better later :).