Jump to content

[SOLVED] Environment light emitting light


photo

Recommended Posts

Hi,
 
For now environment probe emits additional environment lighting. 
This feature allows to make different environment lighting on some areas of the scene.
 
You may change the cubemap texture of the environment probe to check the feature.

Thanks for the feedback!
Link to comment

Can I turn off this additional light emission?  I only want it to be a tool for reflection for reflective materials.  Ie, the job our our environment probes is to capture the scene from the probe's point of view, NOT to modify the scene by emitting light.  That disrupts the intention of how we're lighting the scene...

Link to comment
I'm afraid it's currently not possible.

Environment lighting from reflection probe is not additive, so if you grab reflections in room, in your case, with correct environment, such problem shouldn't appear.

 

This option will be available in next release.

 

Sorry for the inconvenience caused.

Link to comment

"Environment lighting from reflection probe is not additive"

So, am I not grabbing the environment incorrectly? I create it this way:
 

probe->probe = LightEnvironmentProbe::create(vec4(1, 1, 1, 1), vec3((float)envParamValues[EnvironmentProbeParameters::ENV_PROBE_RADIUS]), "");
iceOriginNode->addChild(probe->probe->getNode());

environmentProbesMap[id] = probe;

probe->znear = (float)envParamValues[EnvironmentProbeParameters::ENV_PROBE_ZNEAR];
probe->zfar = (float)envParamValues[EnvironmentProbeParameters::ENV_PROBE_ZFAR];
probe->resolution = (int)envParamValues[EnvironmentProbeParameters::ENV_PROBE_RESOLUTION];
probe->visibleDistance = (float)envParamValues[EnvironmentProbeParameters::ENV_PROBE_VISIBLE_DISTANCE];

probe->probe->setFadeDistance((float)envParamValues[EnvironmentProbeParameters::ENV_PROBE_RADIUS]);
probe->probe->setDynamic(0);
probe->probe->setResolution((int)envParamValues[EnvironmentProbeParameters::ENV_PROBE_RESOLUTION]);

probe->probe->setZNear((float)envParamValues[EnvironmentProbeParameters::ENV_PROBE_ZNEAR]);
probe->probe->setZFar((float)envParamValues[EnvironmentProbeParameters::ENV_PROBE_ZFAR]);
probe->probe->setVisibleDistance((float)envParamValues[EnvironmentProbeParameters::ENV_PROBE_VISIBLE_DISTANCE]);

And then when i generate the environment map I do this:

ImagePtr image = Image::create();

int result = image->createCube(probe->resolution, probe->resolution, Image::FORMAT_RGBA16F);

float znear = probe->znear;
float zfar = probe->zfar;

mat4 projection = frustum(-znear, znear, -znear, znear, znear, zfar);

dvec3 position = probe->probe->getNodeWorldPosition();

CameraPtr camera = Camera::create();
camera->setPosition(position);
camera->setProjection(projection);

Render::get()->renderImageCube(camera, image, 1);


result = probe->probe->setImageTextureImage(image, 1);
Link to comment

I see now that the environment probe is acting to provide indirect lighting as well.  Hmm... 

 

A couple of suggestions:

 

1. the indirect lighting should never be more bright than any direct lighting that interacts with the probe.  I think we're going to have to turn off all our environment probes until this can be fixed.  This is currently breaking our lighting.

 

2. perhaps "environment probes" and "indirect lighting providers" should be separate and distinct things.

 

 

The attached image has two environment probes and no lights.  The environment probes were captured when no lights were present, so i'm not sure how they are getting lighting...

 

post-1925-0-12695300-1458325279_thumb.png

Link to comment

Oh, I see one of the problems.  When I grab the texture, it is capturing in the new texture the light emission of the thing that was previously there.  So each subsequent 'grab' makes it dimmer and dimmer until it is finally really dim.  It looks like if I turn the intensity down to 0, then grab the image, then turn the intensity back to 1, I get more desirable results.

Link to comment

It appears that the indirect light is affecting surfaces facing away from the environment probe also.

 

See the picture the environment probe is on the inside of the wall, and this is showing the outside of the wall.

 

 

By the way, my idea of setting the intensity to 0 and grabbing the image is having problems on the c++ side.

post-1925-0-79841700-1458338631_thumb.jpg

Link to comment

When exactly option to bring back older environmental probe functionality will be added? We have the same issue.This new behavior of a probe is very problematic for our project. We use a probe linked to a camera to calculate reflections, and now this doesn't work well anymore - for example, when the camera goes into a tunnel, objects outside darkens. Only solution we see is to have hundreds of probes along every possible camera path which kills performance.

Link to comment

Only solution we see is to have hundreds of probes along every possible camera path which kills performance.

 

Hmm, this shouldnt kill performace, probes are meant exactly for this, especially if they are baked.

  • Like 1
Link to comment

Unfortunately baking is not an option with dynamic weather, day night cycle, and seasons. We would need well over 100 textures for every probe.

Link to comment

Hi!

 

Artur.szymanski, you need to use ambient light and reflections from procedural environment. This solution is better. Environment probes are intended for local lighting. You can attach environment probe to camera, but don't make it big size. 

 

Hmm, this shouldnt kill performace, probes are meant exactly for this, especially if they are baked.

Yes, you are right!)

Link to comment
  • 3 weeks later...

Since 2.2.1 version we've added an ability to customize intensity of Reflections and Ambient lights into environment probes. Please, take note that to completely disable Ambient light you need to set the alpha channel in Ambient color to zero in Environment probe settings.

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment
×
×
  • Create New...