Unity-Technologies / com.unity.toonshader

Unity Toon Shader ( an experimental package )
Other
1.09k stars 170 forks source link

Point light and outline issues #273

Closed minsumansu closed 1 year ago

minsumansu commented 1 year ago

2023-02-25_044 2023-02-25_043

  1. When there is a point light, shade appears with unwanted style.

  2. Outline seems not affected by lights, because it always looks brighter in darker scenes.

H3idi-X commented 1 year ago

Can I ask what attached images suggest? Upper is for the point light issue and the other is for outline?

minsumansu commented 1 year ago

Sorry. Upper is with point light, and the other is 'without' point light.

In bright scenes, hair outline is actually looks much darker than hair itself, but in dark scenes, hair outline become much brighter than what I intended.

Sometimes it looks good but having options to choose would be appreciated. Plus, HDR option for outline will be very useful so please consider.

Nobuyuki-Kobayashi commented 1 year ago

For correct advice, please let me know the name and version of the shader you are currently using. Also, for the outline environment, I need information on the version of Unity you are using, the rendering pipeline, and the Environment tab or Environment Lighting of the lighting window, so can you give me a screenshot? 0228-09_01

minsumansu commented 1 year ago

I'm using Unity Toon Shader 0.8.5-preview. Unity version: 2021.3.19f1 Render pipeline: URP

2023-03-01 034702

And... I found the solution. [Lighting]-[Environment]-[Sun Source] was the reason. 2023-03-01_045 Sun source directional light was affecting outline color even though it was deactivated. It's somewhat understandable but little confusing.

Then I noticed another issue that Fog is not working on UTS. 2023-03-01_046

I tried very intense fog on various scenes but all the same.

*And point light issue is still remaining too

Nobuyuki-Kobayashi commented 1 year ago

Thank you for the additional information on setting up the ambient light source. I would like to offer some itemized advice regarding your inquiry.

1.When there is a point light, shade appears with unwanted style.

The effect of point lights can be adjusted by the Step Offset function of the Unity Toon Shader. To adjust, first, place the main directional light in the scene and then adjust the step values for each color. After you have a good value, add another point light to the scene and adjust the Step Offset function to compensate for the effect of the added point light.

Please note that shading with point lights cannot separate the steps as clearly and completely as with a directional light, due to the characteristic of point lights that their brightness attenuates with distance.

2. Outline seems not affected by lights, because it always looks brighter in darker scenes.

Unity Toon Shadre's normal inverted object outlines are affected by the color settings in the Environment Lighting settings, not by the brightness of the scene as it appears. This is a special specification only for outline color, unlike other colors.

In particular, if the colors in the Environment Lighting settings are set to bright colors, the colors in the Environment Lighting settings will take precedence even if the actual scene looks dark.

When you start Unity with a completely new scene, the colors in the Environment Lighting settings are set to dark gray, but if you set a brighter color while tweaking these settings yourself, the brighter color will be selected over the other color set in the Environment Lighting settings, even if the source of the Environment Lighting is Skybox.

This is a Unity specification, so users must be aware of this.

Therefore, if you do not want to make the UTS outline color brighter than necessary, not only set the outline color itself to a darker color but also be careful that the color setting in the Environmental Lighting Settings is not set to a color that is too bright.


Please make the fog issue a separate Issue item from this inquiry. As a general rule, one Issue should be reported as one report.

When reporting, please also provide a screenshot of the URP's fog settings, etc. Without seeing them, we cannot give you a correct response.

Regards.

minsumansu commented 1 year ago

I created a new project to reproduce this issues. Using Unity 2021.3.19f1 and UTS 0.8.5-preview.

1. 001 002 The UTS materials are totally cell-anime style, but unexpected shade appears when there is point light. Especially noticeable on the face.

003 I tried changing 'point light step offset' but it only shifts base shades of UTS so it did not help.

004 Also found UTS's 'Light probe intensity' is producing this issue too.

I really have to use light probes, point lights and keep the style I prefer. So please consider fix those issues.

2. And for the outline issue, When [Lighting]-[Environment]-[Sun Source] is set, outline color is locked by sun source's color. (I think referencing sun source is not very intuitive and ideal.)

I reproduced those issue with a new project, so please check. You can download via link below.

https://drive.google.com/file/d/1EETd56_JPrMYE0UExoBqMx2sYZXd8vJ-/view?usp=sharing

Nobuyuki-Kobayashi commented 1 year ago

All reported cases are Unity Toon Shader specifications. They are not bugs and so, they are not subject to fixes at this time.

If you want to reduce the influence of Light probe Intensity, set the value as small as possible. This is based on Unity's Light Probe specification.

In general, the combination of cel-looked shading and light probes is not a good match. This is because the influence of light probes cannot be stepped due to their specifications. Therefore, the correct approach is to set the light probe influence as small as possible.

As it might be related to this issue, I found a possibility that the behavior of Light Color Effectiveness for outlines in the URP version is different from that of the Built-In RP version. I will investigate this point.

Regards.

minsumansu commented 1 year ago

ok. For light probe’s shade, it’s subtle and controllable with ‘Light probe intensity’ that’s enough for me.

But for point light shade, I have no option to control, or reduce it. So similar option like ‘Point light intensity’ will be very helpful. (Reducing only shade and keep influenced color would be much nicer, if it’s possible)

Please consider for adding this feature.

Thank you.

Nobuyuki-Kobayashi commented 1 year ago

The request regarding point lights is within the scope of the Unity Toon Shader specification, so there are currently no plans to modify it.

The point light setting in the URP environment, with a range of 1 and an intensity of 35, is a setting that causes severe distance attenuation, so if I were to adjust it myself, I would make the setting on the point light side more gradual. You may refer to the example scene ToonShader_Firefly.unity included in the sample scenes for a better setting of the point light.

Regards.