mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader/ir: Implement exponential fog.
This commit is contained in:
committed by
Henri Verbeet
parent
1fbbc82f3a
commit
d56601c8d0
Notes:
Henri Verbeet
2024-12-02 17:19:05 +01:00
Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1265
@@ -500,6 +500,32 @@ enum vkd3d_shader_fog_fragment_mode
|
||||
* Equivalently, the fog interpolation factor is 1.
|
||||
*/
|
||||
VKD3D_SHADER_FOG_FRAGMENT_NONE = 0x0,
|
||||
/**
|
||||
* The fog interpolation factor is 2^-(k * c).
|
||||
*
|
||||
* In order to implement traditional exponential fog, as present in
|
||||
* Direct3D and OpenGL, i.e.
|
||||
*
|
||||
* e^-(density * c)
|
||||
*
|
||||
* set
|
||||
*
|
||||
* k = density * log₂(e)
|
||||
*/
|
||||
VKD3D_SHADER_FOG_FRAGMENT_EXP = 0x1,
|
||||
/**
|
||||
* The fog interpolation factor is 2^-((k * c)²).
|
||||
*
|
||||
* In order to implement traditional square-exponential fog, as present in
|
||||
* Direct3D and OpenGL, i.e.
|
||||
*
|
||||
* e^-((density * c)²)
|
||||
*
|
||||
* set
|
||||
*
|
||||
* k = density * √log₂(e)
|
||||
*/
|
||||
VKD3D_SHADER_FOG_FRAGMENT_EXP2 = 0x2,
|
||||
/**
|
||||
* The fog interpolation factor is (E - c) * k.
|
||||
*
|
||||
@@ -871,7 +897,7 @@ enum vkd3d_shader_parameter_name
|
||||
*/
|
||||
VKD3D_SHADER_PARAMETER_NAME_FOG_END,
|
||||
/**
|
||||
* Scale value for linear fog.
|
||||
* Scale value for fog.
|
||||
* See VKD3D_SHADER_PARAMETER_NAME_FOG_FRAGMENT_MODE for documentation of
|
||||
* fog.
|
||||
*
|
||||
|
Reference in New Issue
Block a user