Blender 2.92 Fixes Emissive Alpha Viewer Interpretation Issues

The release of Blender 2.92 came with an important fix for issues related to interpreting emissive material colors in the viewport. Prior versions contained a bug that caused emissive colors to appear muted and incorrect compared to the final rendered output. This affected both the Cycles and Eevee render engines and made precise scene lighting difficult when using emission shaders. With Blender 2.92, the underlying view transform calculations were adjusted to properly account for emissive colors combined with alpha transparency. This resolved the mismatch between viewport and final frame colors for emit shaders in Blender.

What Caused the Emissive Color Issues

The issues with interpreting emissive color values in previous Blender versions stemmed from a bug in the color management system. Specifically, there was a miscalculation during the alpha premultiplying step of the view transform from scene linear colors to display linear colors. This caused color values to be lowered incorrectly whenever there was transparency on an emission shader, giving the appearance of muted or inaccurate colors compared to prior Blender releases. The problem was visible in both the Cycles and Eevee render engines when trying to preview emissive materials. Rather than bright light emission, the viewport showed dark and desaturated colors instead.

Bug in Color Management System Interpreting Emissive Colors Incorrectly

The root of the emissive color issues resided in Blender’s color management components. The calculations converting between the scene linear color space and display linear color space using OCIO contained a flaw that manifested when dealing with emission shaders. The color values of emissive materials were not being interpreted or displayed properly as a result of this bug.

Affected Cycles and Eevee Render Engines when Viewing Emissive Materials

The flawed color space conversions impacted the results of emissive materials in Blender’s Cycles and Eevee render engines. Whenever a user added an emission shader to the node graph of a material, the resulting colors would appear muted and incorrect in the rendered viewport. The colors were not being handled properly by the OCIO color management transforms before sending the pixel values to the display device. Both render engines were affected equally by the improper emissive color interpretation.

Caused Colors to Look Muted and Incorrect Compared to Previous Blender Versions

Due to the buggy display transform calculations, emissive colors in Blender 2.91 and lower often appeared muted and desaturated. They lost their vibrancy and brightness. Attempting to preview lit scenes using emission shaders to replace real light sources became difficult as the colors were so inaccurate. The intensity and hue were lower than they should have been. This was not an issue in previous Blender releases before 2.91, making the change very noticeable.

The Root of the Problem

Analyzing Blender’s source code revealed the specific root cause of the emission color value problems. There was an error in the matrix math used for the view transforms from scene linear RGB values to display space RGB values when emission shaders also had transparency. The alpha premultiplying stage is where the mistake occurred, causing color information loss before display.

View Transform from Scene Linear to Display Linear Color Space

Blender utilizes a series of color space transformations implemented in OpenColorIO to convert between the linear lighting values calculated by render engines and the final colors displayed to users. There is a view transform that handles this key step whenever the viewport display needs updating. The bug causing emission interpretation issues existed in this OCIO transformation pipeline.

Miscalculated the Alpha Premultiplying Step

Within the view transform logic, there is a stage called alpha premultiplying that handles combining color channels with alpha transparency. The mathematical formula for calculating the premultiplied RGB values was not accurate in previous Blender versions. It caused the color channels to be scaled improperly whenever emission shaders also set alpha less than 1.0. This crippled the perceived intensity of emissive materials even though their actual render engine light energy remained high.

Resulted in Color Values Being Lowered and Not Shown Accurately

The mistakes in the alpha premultiply computations resulted in color information being lost before sending pixel values to the display. The red, green, and blue channel values were lowered due to the flawed matrix math. When the color management system applied this faulty color transform to emission shaders, their vibrancy was greatly reduced. The render engine calculated lighting behaved as expected, but the view transform dropped the color intensity dramatically.

How Blender 2.92 Fixed This

Identifying the specific source of the problem with emissive color interpretation allowed the Blender developers to resolve the situation completely in release 2.92. By addressing the mistakes in the OCIO view transforms, emission colors now appear accurate and identical between the viewport and final rendering.

Adjusted the Alpha Premultiply Calculations in the View Transform

The Blender coders corrected the matrix formula used for alpha premultiplying color values within the view transform procedure. Previously, the calculations lowered color intensity too aggressively whenever emission shaders also set alpha below 1. The adjusted math now appropriately scales the RGB channels based on transparency without losing color details.

Now Correctly Handles Emissive Colors with Alpha Transparency

With the fixed alpha premultiply stage, Blender’s color management workflow now correctly processes emissive colors even when they include alpha transparency. The colors are preserved accurately throughout all the nonlinear to linear space conversions needed for display purposes. Users can reliably add transparency to emission shaders without colors appearing muted.

Matches Colors in Rendered Viewport with Final Render Output

By resolving the underlying emissive color interpretation bugs, Blender 2.92 now shows consistent emission shader colors between interactive rendering in the viewport and final frame output. The colors match dependably thanks to properly handled OCIO transformations. Lit scenes using emission materials in place of lights showcase identical intensity and hue at all rendering stages.

Verifying the Fix

It is easy to verify first-hand that the emissive color issues are indeed fixed in Blender 2.92 with a simple test. By creating an emission shader material in the node editor and rendering the same scene in the latest Blender version compared to 2.91, the results clearly showcase properly displayed colors now.

Sample Node Code for Emissive Shader:


NodeSetup {
    0 Default shader;
    6 Emission;  
    4 Output Material;   
}

Render Sample Scene and Compare Colors

Take the node emission shader above, assign it to an object in the 3D scene viewport, then render images of the same scene in both Blender 2.92 as well as the buggy 2.91 release for comparison. The rendered pixel colors will match nicely in 2.92 with no unexpected desaturation. Switching to 2.91 shows the issue clearly with lower intensity colors.

Emissive Results Should Now Match Prior Blender Versions

Thanks to fixing the root problem in the OCIO color conversions, emissive shaders display colors identical to older Blender releases before 2.91 now. The perceived intensity and hue should match Blender 2.83 for example. Scene lighting and color accuracy is restored for shader emission materials across all render engines like Cycles and Eevee when upgrading to Blender 2.92.

Conclusion

The release of Blender 2.92 came with an important bug fix for properly interpreting emissive shader colors in the rendered viewport display. Prior versions contained an issue with color transforms that lowered values incorrectly when emission shaders also set alpha transparency. By adjusting the math in the alpha premultiplying calculations, Blender 2.92 now correctly handles emissive colors in the viewport matching the final rendered output.

Emissive Color Interpretation Fixed in Latest Blender Release

All viewport color management issues around emission shaders are now fixed. Blender v2.92 properly handles all scene linear to display linear transformations such that color data is preserved accurately across color spaces. Emissive colors appear vibrant and correct when rendered interactively or to final frames.

Upgrade to Blender 2.92 to Resolve any Viewer Issues

To resolve any color problems related to muted or incorrect emissive colors, upgrading to Blender 2.92 is recommended. The fixes for all OCIO matrix calculation flaws provide reliable color precision when working with lit scenes using emission shaders instead of lights.

Accurate Scene Lighting and Final Render Output with Emit Materials

With the upgraded color transformations, Blender artists can depend on emission shaders behaving properly at all rendering stages now. Tuning a scene’s lighting using emit objects shows identical intensity and hue in the viewport editor and final frames after a full render. Cycles and Eevee renders showcase precision color output thanks to the fixes in Blender 2.92’s display view transforms.

Leave a Reply

Your email address will not be published. Required fields are marked *