17
[ImageEffects] Bloom Testers Matt Dean Developers Keijiro Takahashi Version 1.1 Last Update: 26/04/2016 Joke Test Status Quality Status Why did the scarecrow get promoted? He was outstanding in his field. RUN #2 COMPLETE PASS Test Level 1 Basic Functionality 2 Typical Usage 3 Extensive Usage 4 Integrations 5 Real World Usage 6 NonFunctional 7 Stress Testing Coverage Changelist 26/04/16 Tested on 5.4b16, added Orthographic test, tested UI changes, updated doc format

[ImageEffects] Bloom - Unity[ImageEffects] Bloom Testers Matt Dean Developers Keijiro Takahashi Version 1.1 Last Update: 26/04/2016 Joke Test Status Quality Status Why did the scarecrow

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: [ImageEffects] Bloom - Unity[ImageEffects] Bloom Testers Matt Dean Developers Keijiro Takahashi Version 1.1 Last Update: 26/04/2016 Joke Test Status Quality Status Why did the scarecrow

[ImageEffects] Bloom Testers Matt Dean

Developers Keijiro Takahashi

Version 1.1 Last Update: 26/04/2016

Joke Test Status Quality Status

Why did the scarecrow get promoted? He was outstanding in his field.

RUN #2 COMPLETE

PASS

Test Level

1 Basic Functionality

2 Typical Usage

3 Extensive Usage

4 Integrations

5 Real World Usage

6 Non­Functional

7 Stress Testing

Coverage

Changelist

26/04/16 ­ Tested on 5.4b16, added Orthographic test, tested UI changes, updated doc format

Page 2: [ImageEffects] Bloom - Unity[ImageEffects] Bloom Testers Matt Dean Developers Keijiro Takahashi Version 1.1 Last Update: 26/04/2016 Joke Test Status Quality Status Why did the scarecrow

Bug ID Bug Status Bug Title

775584 FIXED [ImageEffects] Bloom effects different colours at different thresholds

Suggestions/Observations

Personally I would want a falloff curve for the effect’s intensity Would it be appropriate to add a Dirty Lens effect?

Hardware / Software Used

i7­6820HK @ 2.7GHz, 16GB DDR3, GeForce GTX 980m Windows 10 Version 1511 Run #1 ­ Unity Version 5.3.3p2 (Deferred/Linear unless specified) Run #2 ­ Unity Version 5.4.0b16 (Deferred/Linear unless specified) Unity Profiler Photoshop CC 2015 Windows 10 1511 build 10586.63 OSX 10.11 FxPro Windows Snipping Tool

Key Colour Code Outline Icon Individual Test Icon

In Progress N/A

Working/Fixed N/A

Question/Comment

Major Concern

Bug/Issue

Unable to Test

Page 3: [ImageEffects] Bloom - Unity[ImageEffects] Bloom Testers Matt Dean Developers Keijiro Takahashi Version 1.1 Last Update: 26/04/2016 Joke Test Status Quality Status Why did the scarecrow

Function Tests Testing that each function behaves to expectation

Test Outcome

Group Variables

Threshold

Performs as expected in isolation. UX is much better as a float, any clamped maximum would have been arbitrary and dangerous.

Threshold, Range 0 to 10 (arbitrary range)

Soft Knee

Adjusts the softness of the knee of the effect. Works as expected.

Radius

Adjust the radius of the bloom effect as expected. New radius is much better.

Radius, Range 1 to 7 (current range)

Page 4: [ImageEffects] Bloom - Unity[ImageEffects] Bloom Testers Matt Dean Developers Keijiro Takahashi Version 1.1 Last Update: 26/04/2016 Joke Test Status Quality Status Why did the scarecrow

Intensity

Just a multiplier for the effects blending onto the image and works as intended

Intensity, Range 0 ­ 2 (arbitrary range)

High Quality

Checked shader code for sampling. Tested High Quality switch by returning red/blue to screen from shader dependant on component UI. Checked C# code for halving of the filter buffer. if (!settings.highQuality) tw /= 2; th /= 2;

High Quality, on & off

Group Misc

Response Curve Graph

Addition of the response curve graph is very much appreciated. Its a very useful visualization of the effect. Works as intended.

Page 5: [ImageEffects] Bloom - Unity[ImageEffects] Bloom Testers Matt Dean Developers Keijiro Takahashi Version 1.1 Last Update: 26/04/2016 Joke Test Status Quality Status Why did the scarecrow

Channel Consistency

Created a scene containing 3 quads of emission value 1 representing RGB spectrum. Measured the colour value of a pixel, 4 pixels up from the top edge of each quad, to test the intensity of the bloom effect on each channel. Ran test on multiple bloom settings. Previously this test failed, this is now fixed.

Red, green and blue emissive planes. Bloom power sampled.

Render Texture

Rendered a duplicate camera to a Render Texture, applied that render texture to a Raw Image on Canvas of a third Camera. Switched between Cameras 1 and 3 to check for issues. Camera with effect applied renders correctly to a Render Texture.

Orthographic Camera

Switched the camera to orthographic perspective. Effect still works as expected.

Graphics APIs ­ Windows

Used scene “Scenario­DarkEnvironment” DirectX 11 ­ No issue DirectX 12 ­ No issue DirectX 9 ­ No issue GLCore ­ No issue

Graphics APIs ­ OSX

Used scene “Scenario­DarkEnvironment” GLCore ­ No issue

Page 6: [ImageEffects] Bloom - Unity[ImageEffects] Bloom Testers Matt Dean Developers Keijiro Takahashi Version 1.1 Last Update: 26/04/2016 Joke Test Status Quality Status Why did the scarecrow

Metal ­ No issue

Page 7: [ImageEffects] Bloom - Unity[ImageEffects] Bloom Testers Matt Dean Developers Keijiro Takahashi Version 1.1 Last Update: 26/04/2016 Joke Test Status Quality Status Why did the scarecrow

Scenario Test 1 ­ Material Response Testing through meaningful and complex interactions

Description

The purpose of this test is to determine whether materials an artist would associate with a Bloom effect give a desirable result, and whether the components variables give the artist the control needed to “clamp” the Bloom to only affect the materials they might want.

Metals

Full Image

Here; the results are good. Clamping the bloom to not affect the matte metal and standard non­metal spheres, using just the Threshold and Exposure variables, was easy. This gives the artist a good amount of control over the bloom using the remaining variables.

Whites

Full Image

Here; the results are not quite as good, but expected as whites are always blown out by bloom effects. This is the maximum achievable “whiteness” of a matte sphere when trying to preserve Bloom response from metals (without resulting in a notable Bloom response from the white). In honesty, this is a better result than I expected.

Page 8: [ImageEffects] Bloom - Unity[ImageEffects] Bloom Testers Matt Dean Developers Keijiro Takahashi Version 1.1 Last Update: 26/04/2016 Joke Test Status Quality Status Why did the scarecrow

Water Reflections

Full Image

Here I added Water4Advanced to test its “optimal” Bloom against that of the metals. It seems that its range is almost the same, giving an artist great control of how the water’s reflections are affected by the Bloom.

Emissions

Full Image

Previously this test failed (due to the inconsistency between the effect on different colours). Now this issue is fixed balancing the scene has become simple.

Page 9: [ImageEffects] Bloom - Unity[ImageEffects] Bloom Testers Matt Dean Developers Keijiro Takahashi Version 1.1 Last Update: 26/04/2016 Joke Test Status Quality Status Why did the scarecrow

Additives

Full Image

Here; I used “Fireworks Collection” from the asset store to test Bloom’s effect on additive materials. Within the same range as is appropriate for metals/water the result is good and the range is large enough to allow adjustment to the user’s taste.

Skies

Full Image

Here; I used “AllSky” from the asset store, again, to test the Bloom’s effect on a generic example of a bright day skybox. As expected, the lower end of the threshold range that is appropriate for the other materials tested is simply too much for a bright skybox. This image is taken with a threshold of 0.7 (only 0.1 higher than the lowest appropriate for the other materials) and I believe it demonstrates the lowest threshold value appropriate for the skybox. This still leaves a reasonable amount of range for adjustment to taste.

Page 10: [ImageEffects] Bloom - Unity[ImageEffects] Bloom Testers Matt Dean Developers Keijiro Takahashi Version 1.1 Last Update: 26/04/2016 Joke Test Status Quality Status Why did the scarecrow

Scenario Test 2 ­ Dark Environment Testing through meaningful and complex interactions

Description

The purpose of this test is to determine how usable the effect is in a dark interior environment. Focus is on balancing bright areas of light against metals and emissives in an environment that is otherwise outside the bloom threshold.

The Scene

Full Image

I decided to use a cavern scene to test dark interior environments as they are conducive to areas of bright coloured light and emission in video games. A character with a range of realistic material and a pure metallic duplicate were added to test balancing the metal’s bloom response against the rest of the scene.

General Balancing

Full Image

Here is a comparison with Bloom enabled (left) and disabled (right). I was able to find a good balance between the bright lighting, metals and ground specular with relative ease. The green emission was too strong but easily toned down on a per­material basis. However, this issue is simply the one mentioned earlier.

Page 11: [ImageEffects] Bloom - Unity[ImageEffects] Bloom Testers Matt Dean Developers Keijiro Takahashi Version 1.1 Last Update: 26/04/2016 Joke Test Status Quality Status Why did the scarecrow

Anti Flicker

Full Image

This is a comparison with Anti Flicker on (left) and off (right). The reduction in the Bloom’s intensity in the tight bright areas (see metal highlights) when Anti Flicker is enabled is worrying. In my understanding of the Anti Flicker feature users will start with it disabled, only enabling it when a flickering issue is noticed (due to performance impact). This may annoy users, as when they enable Anti Flicker this will need to rebalance their Bloom effect (rebalancing to make up for this is not easy or intuitive).

High Quality

Full Image

This is a comparison with High Quality on (left) and off (right). In this particular example, the difference between High Quality and not is confusingly inconsistent. Some areas receive a broader stronger Bloom effect with High Quality and some areas of the same material type receive the opposite. This will require more specific testing, but the result with either mode,in this case, is good.

Page 12: [ImageEffects] Bloom - Unity[ImageEffects] Bloom Testers Matt Dean Developers Keijiro Takahashi Version 1.1 Last Update: 26/04/2016 Joke Test Status Quality Status Why did the scarecrow

Artistic Comparison: Unity Depreciated

Full Image

This is a comparison with the new Bloom effect (left) and the depreciated effect (right). You can clearly see the increase in quality in the new effect, especially on the emissive surfaces. The depreciated effect also appears to “discolour” the image, pushing, specifically, the orange colours towards red. This results in a need to adjust light texture/values after the fact or add unnecessary colour correction. With regards to UX; ignoring the Lens Flare options on the depreciated effect, which assumedly would be part of a separate effect, the new components UI is simpler, more intuitive and offers greater control over the effect. Conclusion: New effect is better.

Artistic Comparison: FxPro

Full Image

This is a comparison with the new Bloom effect (left) and Bloom from FxPro from Asset Store (right). Whilst I believe the visual quality between the two seems almost exactly comparable. I prefer the “falloff” of the new Bloom effect as it “bleeds” the light across small darker details in the brighter areas though (see strong orange highlight or gaps in the crystal). With regards to UX; setting aside that FxPro has all the UI controls for 4 effects in one component (which is not pleasant) I find the new Bloom gives greater control over the effect than FxPro. Conclusion: New effect is better.

Page 13: [ImageEffects] Bloom - Unity[ImageEffects] Bloom Testers Matt Dean Developers Keijiro Takahashi Version 1.1 Last Update: 26/04/2016 Joke Test Status Quality Status Why did the scarecrow

HDR/LDR

Full Image

This is a comparison of LDR (left) and HDR (right). The Blooms effect on the areas lit above the 0­1 range is instantly recognisable and control of intensities outside this range does not restrict the artist’s ability to balance Bloom response within it.

Linear/Gamma

Full Image

This is a comparison of Linear (left) and Gamma (right) space. Ignoring the vast differences between the color spaces themselves the Blooms effect itself is consistent, as expected.

Page 14: [ImageEffects] Bloom - Unity[ImageEffects] Bloom Testers Matt Dean Developers Keijiro Takahashi Version 1.1 Last Update: 26/04/2016 Joke Test Status Quality Status Why did the scarecrow

Deferred/Forward

Full Image

This is a comparison of Forward (left) and Deferred (right) rendering paths. Ignoring the difference in floor tone (which is not caused by the effect) the Blooms effect itself is consistent, as expected.

Page 15: [ImageEffects] Bloom - Unity[ImageEffects] Bloom Testers Matt Dean Developers Keijiro Takahashi Version 1.1 Last Update: 26/04/2016 Joke Test Status Quality Status Why did the scarecrow

Performance Tests Testing performance impact of the feature

The purpose of this test is to determine how performant the new Bloom effect is and how it compares to Legacy and Competitor offerings. For the competitor used FxPro Bloom from the Asset Store. Statistics are the average CPU and GPU timings (in milliseconds) of the effect itself, gathered from Profiler running within the editor on the following scenes.

Dark Environment

Effect Options CPU (ms) GPU (ms)

Unity (New) LQ / No Anti­Flicker 0.07 0.11

LQ / Anti­Flicker 0.07 0.12

HQ / No Anti­Flicker 0.08 0.18

HQ / Anti­Flicker 0.09 0.26

Unity (Depreciated) LQ 0.10 0.09

HQ 0.13 0.11

FxPro LQ 0.17 0.08

HQ 0.21 0.12

Conclusion

Firstly, I believe that whilst there isn’t a lot of performance impact for the “High Quality” setting, the combination of Anti­Flicker and High Quality makes enough impact for this option to remain in the Effect. The most notable difference between the new Bloom effect and the others I tested is that the new effect is more GPU­bound than the competition. Across the board however, the new effect performs very well. I would expect a customer to be pleased with these results.

Page 16: [ImageEffects] Bloom - Unity[ImageEffects] Bloom Testers Matt Dean Developers Keijiro Takahashi Version 1.1 Last Update: 26/04/2016 Joke Test Status Quality Status Why did the scarecrow

Risk Test 1 ­ Anti Flicker Testing through difficult problems

Description

The purpose of this test is to determine whether the Anti Flicker functions correctly by designing a test that is both hard, and necessary to solve. In this case the problem will be a moving, aliased, pure white line.

The Problem

Full Image

This line, a 0.01 width Line Renderer with an unlit pure white material, creates a great amount of flickering when bloom is applied. This is caused by the aliasing of the line, and could be an extremely detrimental effect in final image quality of a real life scenario.

With Anti Flicker

Full Image

The same line, with Anti Flicker enabled, is solved by simply eliminating the Bloom effect from the line (notice how it is still present on the cubes). Whilst this is not going to fix the lines aliasing (which an Image Effect will obviously never do) it does reduce the visual damage to the image.

Page 17: [ImageEffects] Bloom - Unity[ImageEffects] Bloom Testers Matt Dean Developers Keijiro Takahashi Version 1.1 Last Update: 26/04/2016 Joke Test Status Quality Status Why did the scarecrow

The Problem (0.3 Thickness)

Full Image

The same line with a thickness of 0.03 still has a great amount of flickering problems. This thickness of line is much more common in a real world emission case.

With Anti Flicker

Full Image

The same line, with Anti Flicker enabled, whilst not perfect, is considerably less hard on the eyes. This, in my opinion, is a successful Anti Flicker implementation, and I would expect that it will be used by a lot of projects.