67 lines
2.1 KiB
Plaintext
67 lines
2.1 KiB
Plaintext
#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
|
|
)
|
|
{
|
|
_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;
|
|
|
|
|
|
_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;
|
|
|
|
|
|
// _viewPosition.xy += _viewPosition.xy * _screenOffsetScale;
|
|
|
|
|
|
// _MODELVIEW_MATRIX[ 3 ].xyz = _viewPosition;
|
|
|
|
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;
|
|
|
|
_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 ),
|
|
vec4( 0.0, 0.0, 0.0, 1.0 )
|
|
) ;
|
|
|
|
_MODELVIEW_NORMAL_MATRIX = mat3( _MODELVIEW_MATRIX );
|
|
} |