Types/BlendMode: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(Split into own page)
 
(Updated styling of prototype doc migration note)
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<div class="stub"><p>'''The prototype docs have moved to a new website with an improved format.''' This documentation page can now be found here: [https://lua-api.factorio.com/latest/types/BlendMode.html https://lua-api.factorio.com/latest/types/BlendMode.html]
</p><p>This wiki page is no longer updated and '''will be removed at some point in the future''', so please update your browser bookmarks or other links that sent you here. If you'd like to contribute to the new docs, you can leave your feedback [https://forums.factorio.com/viewforum.php?f=233 on the forums].</p></div>
A [[Types/string]] that determines how sprites/animations should blend with the background. The possible values are listed below.
A [[Types/string]] that determines how sprites/animations should blend with the background. The possible values are listed below.


Note: Unless <code>premul_alpha</code> is set to false on the sprite/animation itself, Active_RGB is considered to be premultiplied with alpha.
Note: In most of Factorio it is assumed colors are in alpha premultiplied format: [https://www.factorio.com/blog/post/fff-172 FFF #172 - Blending and Rendering]. Sprites get premultiplied when loaded, unless <code>premul_alpha</code> is set to false on the sprite/animation itself. But generating mipmaps doesn't respect <code>premul_alpha</code>, so lower mipmap levels will be in premultiplied format regardless.


== Possible values ==
== Possible values ==
=== normal ===
=== normal ===
The result color is determined with the following formula:
The result color is determined with the following formula:
<code>Result = Active_RGB * Active_Alpha + Background_RGB * ( 1 - Active_Alpha )</code>
<code>Result = Active_RGB + Background_RGB * ( 1 - Active_Alpha )</code>
 
Note: This is alpha blending with an assumption that Active_RGB is already premultiplied with Active_Alpha.


=== additive ===
=== additive ===

Latest revision as of 10:42, 21 September 2023

The prototype docs have moved to a new website with an improved format. This documentation page can now be found here: https://lua-api.factorio.com/latest/types/BlendMode.html

This wiki page is no longer updated and will be removed at some point in the future, so please update your browser bookmarks or other links that sent you here. If you'd like to contribute to the new docs, you can leave your feedback on the forums.


A Types/string that determines how sprites/animations should blend with the background. The possible values are listed below.

Note: In most of Factorio it is assumed colors are in alpha premultiplied format: FFF #172 - Blending and Rendering. Sprites get premultiplied when loaded, unless premul_alpha is set to false on the sprite/animation itself. But generating mipmaps doesn't respect premul_alpha, so lower mipmap levels will be in premultiplied format regardless.

Possible values

normal

The result color is determined with the following formula: Result = Active_RGB + Background_RGB * ( 1 - Active_Alpha )

Note: This is alpha blending with an assumption that Active_RGB is already premultiplied with Active_Alpha.

additive

The result color is determined with the following formula: Result = Active_RGB + Background_RGB

additive-soft

The result color is determined with the following formula: Result = Active_RGB * ( 1 - Background_RGB ) + Background_RGB

multiplicative

The result color is determined with the following formula: Result = Active_RGB * Background_RGB

overwrite

The result color is determined with the following formula: Result = Active_RGBA or Background_RGBA