rokojori_action_library/Runtime/Shading/Shaders/Flares/Flares.gdshaderinc

67 lines
2.1 KiB
Plaintext
Raw Normal View History

2026-02-06 08:59:59 +00:00
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Colors.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Math.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Transform.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Depth.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/SDF.gdshaderinc"
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Noise.gdshaderinc"
void setFlareOffsetMatrix(
inout mat4 _MODELVIEW_MATRIX,
mat4 _VIEW_MATRIX,
mat4 _MAIN_CAM_INV_VIEW_MATRIX,
mat4 _MODEL_MATRIX,
vec2 _screenOffsetScale,
vec2 _offset
2026-01-27 06:57:54 +00:00
)
{
_MODELVIEW_MATRIX = _VIEW_MATRIX * mat4(
_MAIN_CAM_INV_VIEW_MATRIX[ 0 ],
_MAIN_CAM_INV_VIEW_MATRIX[ 1 ],
_MAIN_CAM_INV_VIEW_MATRIX[ 2 ],
_MODEL_MATRIX[ 3 ]
);
2026-02-06 08:59:59 +00:00
vec3 _viewPosition = _MODELVIEW_MATRIX[ 3 ].xyz;
_viewPosition.xy += _viewPosition.xy * _screenOffsetScale + _offset;
_MODELVIEW_MATRIX[ 3 ].xyz = _viewPosition;
}
void setFlareScaleRotation(
inout mat4 _MODELVIEW_MATRIX,
inout mat3 _MODELVIEW_NORMAL_MATRIX,
mat4 _MODEL_MATRIX,
vec3 _scale, float _vertexRotation
)
{
// _MODELVIEW_MATRIX = _VIEW_MATRIX * mat4(
// _MAIN_CAM_INV_VIEW_MATRIX[ 0 ],
// _MAIN_CAM_INV_VIEW_MATRIX[ 1 ],
// _MAIN_CAM_INV_VIEW_MATRIX[ 2 ],
// _MODEL_MATRIX[ 3 ]
// );
// vec3 _viewPosition = _MODELVIEW_MATRIX[ 3 ].xyz;
2026-01-27 06:57:54 +00:00
2026-02-06 08:59:59 +00:00
// _viewPosition.xy += _viewPosition.xy * _screenOffsetScale;
2026-01-27 06:57:54 +00:00
2026-02-06 08:59:59 +00:00
// _MODELVIEW_MATRIX[ 3 ].xyz = _viewPosition;
2026-01-27 06:57:54 +00:00
2026-02-06 08:59:59 +00:00
float _scaleX = length( _MODEL_MATRIX[ 0 ].xyz ) * _scale.x;
float _scaleY = length( _MODEL_MATRIX[ 1 ].xyz ) * _scale.y;
float _scaleZ = length( _MODEL_MATRIX[ 2 ].xyz ) * _scale.z;
2026-01-27 06:57:54 +00:00
2026-02-06 08:59:59 +00:00
_MODELVIEW_MATRIX = _MODELVIEW_MATRIX * rotationZ_m4( _vertexRotation ) * mat4(
vec4( _scaleX, 0.0, 0.0, 0.0 ),
vec4( 0.0, _scaleY, 0.0, 0.0 ),
vec4( 0.0, 0.0, _scaleZ, 0.0 ),
2026-01-27 06:57:54 +00:00
vec4( 0.0, 0.0, 0.0, 1.0 )
2026-02-06 08:59:59 +00:00
) ;
2026-01-27 06:57:54 +00:00
2026-02-06 08:59:59 +00:00
_MODELVIEW_NORMAL_MATRIX = mat3( _MODELVIEW_MATRIX );
2026-01-27 06:57:54 +00:00
}