gl-transitions 1.74.0 → 1.76.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -0
- package/compatibility.json +2070 -0
- package/glsl3/AdvancedMosaic.glsl +21 -0
- package/glsl3/BlockDissolve.glsl +16 -0
- package/glsl3/BookFlip.glsl +37 -0
- package/glsl3/Bounce.glsl +35 -0
- package/glsl3/BowTieHorizontal.glsl +123 -0
- package/glsl3/BowTieVertical.glsl +117 -0
- package/glsl3/BowTieWithParameter.glsl +74 -0
- package/glsl3/Box.glsl +33 -0
- package/glsl3/ButterflyWaveScrawler.glsl +33 -0
- package/glsl3/CircleCrop.glsl +20 -0
- package/glsl3/ColourDistance.glsl +19 -0
- package/glsl3/CrazyParametricFun.glsl +20 -0
- package/glsl3/CrossZoom.glsl +68 -0
- package/glsl3/DefocusBlur.glsl +47 -0
- package/glsl3/Directional.glsl +18 -0
- package/glsl3/DirectionalScaled.glsl +35 -0
- package/glsl3/DoomScreenTransition.glsl +62 -0
- package/glsl3/Dreamy.glsl +14 -0
- package/glsl3/DreamyZoom.glsl +43 -0
- package/glsl3/Drop_Zone_Flicker.glsl +159 -0
- package/glsl3/EdgeTransition.glsl +50 -0
- package/glsl3/FilmBurn.glsl +63 -0
- package/glsl3/Fold.glsl +12 -0
- package/glsl3/GlitchDisplace.glsl +78 -0
- package/glsl3/GlitchMemories.glsl +17 -0
- package/glsl3/GridFlip.glsl +77 -0
- package/glsl3/HSVfade.glsl +29 -0
- package/glsl3/HorizontalClose.glsl +16 -0
- package/glsl3/HorizontalOpen.glsl +18 -0
- package/glsl3/InvertedPageCurl.glsl +228 -0
- package/glsl3/LeftRight.glsl +28 -0
- package/glsl3/LinearBlur.glsl +30 -0
- package/glsl3/Mosaic.glsl +45 -0
- package/glsl3/Overexposure.glsl +25 -0
- package/glsl3/PolkaDotsCurtain.glsl +14 -0
- package/glsl3/PuzzleRight.glsl +57 -0
- package/glsl3/Radial.glsl +19 -0
- package/glsl3/Rectangle.glsl +29 -0
- package/glsl3/RectangleCrop.glsl +30 -0
- package/glsl3/Revolve_Left.glsl +98 -0
- package/glsl3/Rolls.glsl +42 -0
- package/glsl3/RotateScaleVanish.glsl +42 -0
- package/glsl3/SimpleFlip.glsl +14 -0
- package/glsl3/SimpleZoom.glsl +20 -0
- package/glsl3/SimpleZoomOut.glsl +23 -0
- package/glsl3/Slides.glsl +41 -0
- package/glsl3/StarWipe.glsl +51 -0
- package/glsl3/StaticFade.glsl +47 -0
- package/glsl3/StereoViewer.glsl +214 -0
- package/glsl3/StripDatamoshGlitch.glsl +187 -0
- package/glsl3/Swirl.glsl +34 -0
- package/glsl3/TVStatic.glsl +29 -0
- package/glsl3/TilesWave.glsl +63 -0
- package/glsl3/TopBottom.glsl +27 -0
- package/glsl3/VerticalClose.glsl +16 -0
- package/glsl3/VerticalOpen.glsl +17 -0
- package/glsl3/WaterDrop.glsl +21 -0
- package/glsl3/ZoomInCircles.glsl +40 -0
- package/glsl3/ZoomLeftWipe.glsl +36 -0
- package/glsl3/ZoomRigthWipe.glsl +36 -0
- package/glsl3/angular.glsl +25 -0
- package/glsl3/burn.glsl +14 -0
- package/glsl3/burn0.glsl +55 -0
- package/glsl3/cannabisleaf.glsl +18 -0
- package/glsl3/chessboard.glsl +28 -0
- package/glsl3/circle.glsl +24 -0
- package/glsl3/circleopen.glsl +18 -0
- package/glsl3/colorphase.glsl +19 -0
- package/glsl3/coord-from-in.glsl +18 -0
- package/glsl3/crosshatch.glsl +20 -0
- package/glsl3/crosswarp.glsl +10 -0
- package/glsl3/cube.glsl +71 -0
- package/glsl3/directional-easing.glsl +19 -0
- package/glsl3/directionalwarp.glsl +20 -0
- package/glsl3/directionalwipe.glsl +22 -0
- package/glsl3/displacement.glsl +26 -0
- package/glsl3/dissolve.glsl +54 -0
- package/glsl3/doorway.glsl +55 -0
- package/glsl3/fade.glsl +13 -0
- package/glsl3/fadecolor.glsl +15 -0
- package/glsl3/fadegrayscale.glsl +21 -0
- package/glsl3/flyeye.glsl +20 -0
- package/glsl3/fragment.glsl +54 -0
- package/glsl3/heart.glsl +19 -0
- package/glsl3/hexagonalize.glsl +78 -0
- package/glsl3/kaleidoscope.glsl +25 -0
- package/glsl3/luma.glsl +15 -0
- package/glsl3/luminance_melt.glsl +131 -0
- package/glsl3/morph.glsl +20 -0
- package/glsl3/mosaic_transition.glsl +20 -0
- package/glsl3/multiply_blend.glsl +19 -0
- package/glsl3/old_tv_lost_signal.glsl +51 -0
- package/glsl3/parametric_glitch.glsl +29 -0
- package/glsl3/perlin.glsl +66 -0
- package/glsl3/pinwheel.glsl +20 -0
- package/glsl3/pixelize.glsl +21 -0
- package/glsl3/polar_function.glsl +24 -0
- package/glsl3/powerKaleido.glsl +57 -0
- package/glsl3/randomNoisex.glsl +15 -0
- package/glsl3/randomsquares.glsl +20 -0
- package/glsl3/ripple.glsl +20 -0
- package/glsl3/rotateTransition.glsl +22 -0
- package/glsl3/rotate_scale_fade.glsl +39 -0
- package/glsl3/scale-in.glsl +18 -0
- package/glsl3/splitSlideInHorizontal.glsl +26 -0
- package/glsl3/splitSlideInOutHorizontal.glsl +23 -0
- package/glsl3/splitSlideInOutVertical.glsl +23 -0
- package/glsl3/splitSlideInVertical.glsl +24 -0
- package/glsl3/splitSlideOutHorizontal.glsl +22 -0
- package/glsl3/splitSlideOutVertical.glsl +22 -0
- package/glsl3/squareswire.glsl +26 -0
- package/glsl3/squeeze.glsl +23 -0
- package/glsl3/static_wipe.glsl +39 -0
- package/glsl3/swap.glsl +64 -0
- package/glsl3/tangentMotionBlur.glsl +139 -0
- package/glsl3/undulatingBurnOut.glsl +56 -0
- package/glsl3/wind.glsl +25 -0
- package/glsl3/windowblinds.glsl +18 -0
- package/glsl3/windowslice.glsl +16 -0
- package/glsl3/wipeDown.glsl +12 -0
- package/glsl3/wipeLeft.glsl +12 -0
- package/glsl3/wipeRight.glsl +12 -0
- package/glsl3/wipeUp.glsl +12 -0
- package/glsl3/x_axis_translation.glsl +21 -0
- package/glsl3/zoomInOut.glsl +20 -0
- package/index.d.ts +61 -0
- package/layouts.json +2956 -0
- package/llms-full.txt +1707 -0
- package/llms.txt +153 -0
- package/msl/AdvancedMosaic.metal +136 -0
- package/msl/BlockDissolve.metal +108 -0
- package/msl/BookFlip.metal +191 -0
- package/msl/Bounce.metal +128 -0
- package/msl/BowTieHorizontal.metal +375 -0
- package/msl/BowTieVertical.metal +375 -0
- package/msl/BowTieWithParameter.metal +361 -0
- package/msl/Box.metal +204 -0
- package/msl/ButterflyWaveScrawler.metal +190 -0
- package/msl/CircleCrop.metal +117 -0
- package/msl/ColourDistance.metal +110 -0
- package/msl/CrazyParametricFun.metal +139 -0
- package/msl/CrossZoom.metal +274 -0
- package/msl/DefocusBlur.metal +297 -0
- package/msl/Directional.metal +107 -0
- package/msl/DirectionalScaled.metal +147 -0
- package/msl/DoomScreenTransition.metal +212 -0
- package/msl/Dreamy.metal +133 -0
- package/msl/DreamyZoom.metal +182 -0
- package/msl/Drop_Zone_Flicker.metal +561 -0
- package/msl/EdgeTransition.metal +277 -0
- package/msl/FilmBurn.metal +425 -0
- package/msl/Fold.metal +110 -0
- package/msl/GlitchDisplace.metal +374 -0
- package/msl/GlitchMemories.metal +146 -0
- package/msl/GridFlip.metal +285 -0
- package/msl/HSVfade.metal +161 -0
- package/msl/HorizontalClose.metal +100 -0
- package/msl/HorizontalOpen.metal +103 -0
- package/msl/InvertedPageCurl.metal +762 -0
- package/msl/LeftRight.metal +138 -0
- package/msl/LinearBlur.metal +169 -0
- package/msl/Mosaic.metal +212 -0
- package/msl/Overexposure.metal +130 -0
- package/msl/PolkaDotsCurtain.metal +112 -0
- package/msl/PuzzleRight.metal +262 -0
- package/msl/Radial.metal +102 -0
- package/msl/Rectangle.metal +129 -0
- package/msl/RectangleCrop.metal +127 -0
- package/msl/Revolve_Left.metal +363 -0
- package/msl/Rolls.metal +209 -0
- package/msl/RotateScaleVanish.metal +227 -0
- package/msl/SimpleFlip.metal +110 -0
- package/msl/SimpleZoom.metal +116 -0
- package/msl/SimpleZoomOut.metal +127 -0
- package/msl/Slides.metal +244 -0
- package/msl/StarWipe.metal +204 -0
- package/msl/StaticFade.metal +193 -0
- package/msl/StereoViewer.metal +707 -0
- package/msl/StripDatamoshGlitch.metal +828 -0
- package/msl/Swirl.metal +152 -0
- package/msl/TVStatic.metal +136 -0
- package/msl/TilesWave.metal +290 -0
- package/msl/TopBottom.metal +138 -0
- package/msl/VerticalClose.metal +100 -0
- package/msl/VerticalOpen.metal +103 -0
- package/msl/WaterDrop.metal +126 -0
- package/msl/ZoomInCircles.metal +169 -0
- package/msl/ZoomLeftWipe.metal +152 -0
- package/msl/ZoomRigthWipe.metal +152 -0
- package/msl/angular.metal +111 -0
- package/msl/burn.metal +103 -0
- package/msl/burn0.metal +236 -0
- package/msl/cannabisleaf.metal +120 -0
- package/msl/chessboard.metal +144 -0
- package/msl/circle.metal +115 -0
- package/msl/circleopen.metal +124 -0
- package/msl/colorphase.metal +106 -0
- package/msl/coord-from-in.metal +111 -0
- package/msl/crosshatch.metal +126 -0
- package/msl/crosswarp.metal +103 -0
- package/msl/cube.metal +259 -0
- package/msl/directional-easing.metal +111 -0
- package/msl/directionalwarp.metal +121 -0
- package/msl/directionalwipe.metal +120 -0
- package/msl/displacement.metal +129 -0
- package/msl/dissolve.metal +146 -0
- package/msl/doorway.metal +210 -0
- package/msl/fade.metal +95 -0
- package/msl/fadecolor.metal +104 -0
- package/msl/fadegrayscale.metal +123 -0
- package/msl/flyeye.metal +133 -0
- package/msl/fragment.metal +276 -0
- package/msl/heart.metal +134 -0
- package/msl/hexagonalize.metal +274 -0
- package/msl/kaleidoscope.metal +157 -0
- package/msl/luma.metal +113 -0
- package/msl/luminance_melt.metal +337 -0
- package/msl/morph.metal +131 -0
- package/msl/mosaic_transition.metal +137 -0
- package/msl/multiply_blend.metal +127 -0
- package/msl/old_tv_lost_signal.metal +172 -0
- package/msl/parametric_glitch.metal +152 -0
- package/msl/perlin.metal +206 -0
- package/msl/pinwheel.metal +112 -0
- package/msl/pixelize.metal +134 -0
- package/msl/polar_function.metal +116 -0
- package/msl/powerKaleido.metal +304 -0
- package/msl/randomNoisex.metal +115 -0
- package/msl/randomsquares.metal +118 -0
- package/msl/ripple.metal +113 -0
- package/msl/rotateTransition.metal +116 -0
- package/msl/rotate_scale_fade.metal +167 -0
- package/msl/scale-in.metal +111 -0
- package/msl/splitSlideInHorizontal.metal +147 -0
- package/msl/splitSlideInOutHorizontal.metal +138 -0
- package/msl/splitSlideInOutVertical.metal +138 -0
- package/msl/splitSlideInVertical.metal +144 -0
- package/msl/splitSlideOutHorizontal.metal +131 -0
- package/msl/splitSlideOutVertical.metal +131 -0
- package/msl/squareswire.metal +144 -0
- package/msl/squeeze.metal +133 -0
- package/msl/static_wipe.metal +147 -0
- package/msl/swap.metal +256 -0
- package/msl/tangentMotionBlur.metal +583 -0
- package/msl/undulatingBurnOut.metal +217 -0
- package/msl/wind.metal +131 -0
- package/msl/windowblinds.metal +107 -0
- package/msl/windowslice.metal +108 -0
- package/msl/wipeDown.metal +105 -0
- package/msl/wipeLeft.metal +105 -0
- package/msl/wipeRight.metal +105 -0
- package/msl/wipeUp.metal +105 -0
- package/msl/x_axis_translation.metal +110 -0
- package/msl/zoomInOut.metal +125 -0
- package/package.json +1 -1
- package/skills/gl-transitions/SKILL.md +46 -0
- package/skills/gl-transitions/references/catalog.md +224 -0
- package/skills/gl-transitions/references/skia.md +118 -0
- package/skills/gl-transitions/references/video.md +71 -0
- package/skills/gl-transitions/references/webgl.md +122 -0
- package/sksl/index.d.ts +4 -0
- package/sksl/index.js +1 -0
- package/wgsl/AdvancedMosaic.wgsl +108 -0
- package/wgsl/BlockDissolve.wgsl +78 -0
- package/wgsl/BookFlip.wgsl +157 -0
- package/wgsl/Bounce.wgsl +98 -0
- package/wgsl/BowTieHorizontal.wgsl +331 -0
- package/wgsl/BowTieVertical.wgsl +331 -0
- package/wgsl/BowTieWithParameter.wgsl +313 -0
- package/wgsl/Box.wgsl +176 -0
- package/wgsl/ButterflyWaveScrawler.wgsl +158 -0
- package/wgsl/CircleCrop.wgsl +88 -0
- package/wgsl/ColourDistance.wgsl +82 -0
- package/wgsl/CrazyParametricFun.wgsl +111 -0
- package/wgsl/CrossZoom.wgsl +219 -0
- package/wgsl/DefocusBlur.wgsl +269 -0
- package/wgsl/Directional.wgsl +79 -0
- package/wgsl/DirectionalScaled.wgsl +117 -0
- package/wgsl/DoomScreenTransition.wgsl +171 -0
- package/wgsl/Dreamy.wgsl +102 -0
- package/wgsl/DreamyZoom.wgsl +154 -0
- package/wgsl/Drop_Zone_Flicker.wgsl +513 -0
- package/wgsl/EdgeTransition.wgsl +216 -0
- package/wgsl/FilmBurn.wgsl +361 -0
- package/wgsl/Fold.wgsl +82 -0
- package/wgsl/GlitchDisplace.wgsl +327 -0
- package/wgsl/GlitchMemories.wgsl +118 -0
- package/wgsl/GridFlip.wgsl +250 -0
- package/wgsl/HSVfade.wgsl +131 -0
- package/wgsl/HorizontalClose.wgsl +72 -0
- package/wgsl/HorizontalOpen.wgsl +75 -0
- package/wgsl/InvertedPageCurl.wgsl +690 -0
- package/wgsl/LeftRight.wgsl +109 -0
- package/wgsl/LinearBlur.wgsl +131 -0
- package/wgsl/Mosaic.wgsl +174 -0
- package/wgsl/Overexposure.wgsl +102 -0
- package/wgsl/PolkaDotsCurtain.wgsl +83 -0
- package/wgsl/PuzzleRight.wgsl +230 -0
- package/wgsl/Radial.wgsl +74 -0
- package/wgsl/Rectangle.wgsl +100 -0
- package/wgsl/RectangleCrop.wgsl +98 -0
- package/wgsl/Revolve_Left.wgsl +314 -0
- package/wgsl/Rolls.wgsl +181 -0
- package/wgsl/RotateScaleVanish.wgsl +199 -0
- package/wgsl/SimpleFlip.wgsl +82 -0
- package/wgsl/SimpleZoom.wgsl +85 -0
- package/wgsl/SimpleZoomOut.wgsl +96 -0
- package/wgsl/Slides.wgsl +216 -0
- package/wgsl/StarWipe.wgsl +169 -0
- package/wgsl/StaticFade.wgsl +159 -0
- package/wgsl/StereoViewer.wgsl +625 -0
- package/wgsl/StripDatamoshGlitch.wgsl +755 -0
- package/wgsl/Swirl.wgsl +124 -0
- package/wgsl/TVStatic.wgsl +106 -0
- package/wgsl/TilesWave.wgsl +262 -0
- package/wgsl/TopBottom.wgsl +109 -0
- package/wgsl/VerticalClose.wgsl +72 -0
- package/wgsl/VerticalOpen.wgsl +75 -0
- package/wgsl/WaterDrop.wgsl +98 -0
- package/wgsl/ZoomInCircles.wgsl +138 -0
- package/wgsl/ZoomLeftWipe.wgsl +121 -0
- package/wgsl/ZoomRigthWipe.wgsl +121 -0
- package/wgsl/angular.wgsl +83 -0
- package/wgsl/burn.wgsl +74 -0
- package/wgsl/burn0.wgsl +198 -0
- package/wgsl/cannabisleaf.wgsl +92 -0
- package/wgsl/chessboard.wgsl +116 -0
- package/wgsl/circle.wgsl +87 -0
- package/wgsl/circleopen.wgsl +96 -0
- package/wgsl/colorphase.wgsl +77 -0
- package/wgsl/coord-from-in.wgsl +83 -0
- package/wgsl/crosshatch.wgsl +96 -0
- package/wgsl/crosswarp.wgsl +75 -0
- package/wgsl/cube.wgsl +217 -0
- package/wgsl/directional-easing.wgsl +83 -0
- package/wgsl/directionalwarp.wgsl +92 -0
- package/wgsl/directionalwipe.wgsl +91 -0
- package/wgsl/displacement.wgsl +96 -0
- package/wgsl/dissolve.wgsl +116 -0
- package/wgsl/doorway.wgsl +174 -0
- package/wgsl/fade.wgsl +67 -0
- package/wgsl/fadecolor.wgsl +75 -0
- package/wgsl/fadegrayscale.wgsl +93 -0
- package/wgsl/flyeye.wgsl +105 -0
- package/wgsl/fragment.wgsl +227 -0
- package/wgsl/heart.wgsl +103 -0
- package/wgsl/hexagonalize.wgsl +238 -0
- package/wgsl/kaleidoscope.wgsl +124 -0
- package/wgsl/luma.wgsl +80 -0
- package/wgsl/luminance_melt.wgsl +299 -0
- package/wgsl/morph.wgsl +103 -0
- package/wgsl/mosaic_transition.wgsl +107 -0
- package/wgsl/multiply_blend.wgsl +96 -0
- package/wgsl/old_tv_lost_signal.wgsl +142 -0
- package/wgsl/parametric_glitch.wgsl +124 -0
- package/wgsl/perlin.wgsl +174 -0
- package/wgsl/pinwheel.wgsl +84 -0
- package/wgsl/pixelize.wgsl +105 -0
- package/wgsl/polar_function.wgsl +88 -0
- package/wgsl/powerKaleido.wgsl +254 -0
- package/wgsl/randomNoisex.wgsl +85 -0
- package/wgsl/randomsquares.wgsl +87 -0
- package/wgsl/ripple.wgsl +85 -0
- package/wgsl/rotateTransition.wgsl +85 -0
- package/wgsl/rotate_scale_fade.wgsl +138 -0
- package/wgsl/scale-in.wgsl +79 -0
- package/wgsl/splitSlideInHorizontal.wgsl +118 -0
- package/wgsl/splitSlideInOutHorizontal.wgsl +109 -0
- package/wgsl/splitSlideInOutVertical.wgsl +109 -0
- package/wgsl/splitSlideInVertical.wgsl +115 -0
- package/wgsl/splitSlideOutHorizontal.wgsl +102 -0
- package/wgsl/splitSlideOutVertical.wgsl +102 -0
- package/wgsl/squareswire.wgsl +115 -0
- package/wgsl/squeeze.wgsl +105 -0
- package/wgsl/static_wipe.wgsl +117 -0
- package/wgsl/swap.wgsl +218 -0
- package/wgsl/tangentMotionBlur.wgsl +503 -0
- package/wgsl/undulatingBurnOut.wgsl +181 -0
- package/wgsl/wind.wgsl +101 -0
- package/wgsl/windowblinds.wgsl +79 -0
- package/wgsl/windowslice.wgsl +80 -0
- package/wgsl/wipeDown.wgsl +77 -0
- package/wgsl/wipeLeft.wgsl +77 -0
- package/wgsl/wipeRight.wgsl +77 -0
- package/wgsl/wipeUp.wgsl +77 -0
- package/wgsl/x_axis_translation.wgsl +82 -0
- package/wgsl/zoomInOut.wgsl +94 -0
|
@@ -0,0 +1,762 @@
|
|
|
1
|
+
// InvertedPageCurl — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/InvertedPageCurl.glsl
|
|
2
|
+
// Author: Hewlett-Packard
|
|
3
|
+
// License: BSD 3 Clause
|
|
4
|
+
// Description: The outgoing image curls away like a page, revealing the incoming one
|
|
5
|
+
// Bindings and uniform layout: see the gl-transitions package README
|
|
6
|
+
|
|
7
|
+
// language: metal1.0
|
|
8
|
+
#include <metal_stdlib>
|
|
9
|
+
#include <simd/simd.h>
|
|
10
|
+
|
|
11
|
+
using metal::uint;
|
|
12
|
+
|
|
13
|
+
struct Uniforms {
|
|
14
|
+
float progress;
|
|
15
|
+
float ratio;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
float distanceToEdge(
|
|
19
|
+
thread metal::float3& point
|
|
20
|
+
) {
|
|
21
|
+
float dx = {};
|
|
22
|
+
float local = {};
|
|
23
|
+
float dy = {};
|
|
24
|
+
float local_1 = {};
|
|
25
|
+
bool phi_222_ = {};
|
|
26
|
+
bool phi_234_ = {};
|
|
27
|
+
bool phi_235_ = {};
|
|
28
|
+
float _e51 = point[0u];
|
|
29
|
+
if (_e51 > 0.5) {
|
|
30
|
+
float _e54 = point[0u];
|
|
31
|
+
local = 1.0 - _e54;
|
|
32
|
+
} else {
|
|
33
|
+
float _e57 = point[0u];
|
|
34
|
+
local = _e57;
|
|
35
|
+
}
|
|
36
|
+
float _e58 = local;
|
|
37
|
+
dx = metal::abs(_e58);
|
|
38
|
+
float _e61 = point[1u];
|
|
39
|
+
if (_e61 > 0.5) {
|
|
40
|
+
float _e64 = point[1u];
|
|
41
|
+
local_1 = 1.0 - _e64;
|
|
42
|
+
} else {
|
|
43
|
+
float _e67 = point[1u];
|
|
44
|
+
local_1 = _e67;
|
|
45
|
+
}
|
|
46
|
+
float _e68 = local_1;
|
|
47
|
+
dy = metal::abs(_e68);
|
|
48
|
+
float _e71 = point[0u];
|
|
49
|
+
if (_e71 < 0.0) {
|
|
50
|
+
float _e74 = point[0u];
|
|
51
|
+
dx = -(_e74);
|
|
52
|
+
}
|
|
53
|
+
float _e77 = point[0u];
|
|
54
|
+
if (_e77 > 1.0) {
|
|
55
|
+
float _e80 = point[0u];
|
|
56
|
+
dx = _e80 - 1.0;
|
|
57
|
+
}
|
|
58
|
+
float _e83 = point[1u];
|
|
59
|
+
if (_e83 < 0.0) {
|
|
60
|
+
float _e86 = point[1u];
|
|
61
|
+
dy = -(_e86);
|
|
62
|
+
}
|
|
63
|
+
float _e89 = point[1u];
|
|
64
|
+
if (_e89 > 1.0) {
|
|
65
|
+
float _e92 = point[1u];
|
|
66
|
+
dy = _e92 - 1.0;
|
|
67
|
+
}
|
|
68
|
+
float _e95 = point[0u];
|
|
69
|
+
bool _e96 = _e95 < 0.0;
|
|
70
|
+
phi_222_ = _e96;
|
|
71
|
+
if (!(_e96)) {
|
|
72
|
+
float _e99 = point[0u];
|
|
73
|
+
phi_222_ = _e99 > 1.0;
|
|
74
|
+
}
|
|
75
|
+
bool _e102 = phi_222_;
|
|
76
|
+
phi_235_ = _e102;
|
|
77
|
+
if (_e102) {
|
|
78
|
+
float _e104 = point[1u];
|
|
79
|
+
bool _e105 = _e104 < 0.0;
|
|
80
|
+
phi_234_ = _e105;
|
|
81
|
+
if (!(_e105)) {
|
|
82
|
+
float _e108 = point[1u];
|
|
83
|
+
phi_234_ = _e108 > 1.0;
|
|
84
|
+
}
|
|
85
|
+
bool _e111 = phi_234_;
|
|
86
|
+
phi_235_ = _e111;
|
|
87
|
+
}
|
|
88
|
+
bool _e113 = phi_235_;
|
|
89
|
+
if (_e113) {
|
|
90
|
+
float _e114 = dx;
|
|
91
|
+
float _e115 = dx;
|
|
92
|
+
float _e117 = dy;
|
|
93
|
+
float _e118 = dy;
|
|
94
|
+
return metal::sqrt((_e114 * _e115) + (_e117 * _e118));
|
|
95
|
+
}
|
|
96
|
+
float _e122 = dx;
|
|
97
|
+
float _e123 = dy;
|
|
98
|
+
return metal::min(_e122, _e123);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
metal::float4 antiAlias(
|
|
102
|
+
thread metal::float4& color1_,
|
|
103
|
+
thread metal::float4& color2_,
|
|
104
|
+
thread float& distanc
|
|
105
|
+
) {
|
|
106
|
+
float dd = {};
|
|
107
|
+
float _e49 = distanc;
|
|
108
|
+
distanc = _e49 * 512.0;
|
|
109
|
+
float _e51 = distanc;
|
|
110
|
+
if (_e51 < 0.0) {
|
|
111
|
+
metal::float4 _e53 = color2_;
|
|
112
|
+
return _e53;
|
|
113
|
+
}
|
|
114
|
+
float _e54 = distanc;
|
|
115
|
+
if (_e54 > 2.0) {
|
|
116
|
+
metal::float4 _e56 = color1_;
|
|
117
|
+
return _e56;
|
|
118
|
+
}
|
|
119
|
+
float _e57 = distanc;
|
|
120
|
+
dd = metal::pow(1.0 - (_e57 / 2.0), 3.0);
|
|
121
|
+
metal::float4 _e61 = color2_;
|
|
122
|
+
metal::float4 _e62 = color1_;
|
|
123
|
+
float _e64 = dd;
|
|
124
|
+
metal::float4 _e66 = color1_;
|
|
125
|
+
return ((_e61 - _e62) * _e64) + _e66;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
metal::float4 getFromColor(
|
|
129
|
+
thread metal::float2& uv,
|
|
130
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
131
|
+
metal::sampler _sampler
|
|
132
|
+
) {
|
|
133
|
+
float _e47 = uv[0u];
|
|
134
|
+
float _e49 = uv[1u];
|
|
135
|
+
metal::float4 _e52 = _from.sample(_sampler, metal::float2(_e47, 1.0 - _e49), metal::level(0.0));
|
|
136
|
+
return _e52;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
metal::float4 backside(
|
|
140
|
+
thread float& yc,
|
|
141
|
+
thread metal::float3& point_1,
|
|
142
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
143
|
+
metal::sampler _sampler
|
|
144
|
+
) {
|
|
145
|
+
metal::float4 color = {};
|
|
146
|
+
metal::float2 param = {};
|
|
147
|
+
float gray = {};
|
|
148
|
+
metal::float3 _e50 = point_1;
|
|
149
|
+
param = _e50.xy;
|
|
150
|
+
metal::float4 _e52 = getFromColor(param, _from, _sampler);
|
|
151
|
+
color = _e52;
|
|
152
|
+
float _e54 = color[0u];
|
|
153
|
+
float _e56 = color[2u];
|
|
154
|
+
float _e59 = color[1u];
|
|
155
|
+
gray = ((_e54 + _e56) + _e59) / 15.0;
|
|
156
|
+
float _e62 = yc;
|
|
157
|
+
float _e71 = gray;
|
|
158
|
+
gray = _e71 + (0.8 * ((metal::pow(metal::max(0.0, 1.0 - metal::abs(_e62 / 0.15915494)), 0.2) / 2.0) + 0.5));
|
|
159
|
+
float _e73 = gray;
|
|
160
|
+
metal::float3 _e74 = metal::float3(_e73);
|
|
161
|
+
color[0u] = _e74.x;
|
|
162
|
+
color[1u] = _e74.y;
|
|
163
|
+
color[2u] = _e74.z;
|
|
164
|
+
metal::float4 _e81 = color;
|
|
165
|
+
return _e81;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
metal::float4 getToColor(
|
|
169
|
+
thread metal::float2& uv_1,
|
|
170
|
+
metal::sampler _sampler,
|
|
171
|
+
metal::texture2d<float, metal::access::sample> _to
|
|
172
|
+
) {
|
|
173
|
+
float _e47 = uv_1[0u];
|
|
174
|
+
float _e49 = uv_1[1u];
|
|
175
|
+
metal::float4 _e52 = _to.sample(_sampler, metal::float2(_e47, 1.0 - _e49), metal::level(0.0));
|
|
176
|
+
return _e52;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
metal::float3 hitPoint_u0028_f1_u003b_f1_u003b_vf3_u003b_mf33_u003b(
|
|
180
|
+
thread float& hitAngle,
|
|
181
|
+
thread float& yc_1,
|
|
182
|
+
thread metal::float3& point_2,
|
|
183
|
+
thread metal::float3x3& rrotation
|
|
184
|
+
) {
|
|
185
|
+
float hitPoint = {};
|
|
186
|
+
float _e50 = hitAngle;
|
|
187
|
+
hitPoint = _e50 / 6.2831855;
|
|
188
|
+
float _e52 = hitPoint;
|
|
189
|
+
point_2[1u] = _e52;
|
|
190
|
+
metal::float3x3 _e54 = rrotation;
|
|
191
|
+
metal::float3 _e55 = point_2;
|
|
192
|
+
return _e54 * _e55;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
metal::float4 seeThrough(
|
|
196
|
+
thread float& yc_2,
|
|
197
|
+
thread metal::float2& p,
|
|
198
|
+
thread metal::float3x3& rotation,
|
|
199
|
+
thread metal::float3x3& rrotation_1,
|
|
200
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
201
|
+
metal::sampler _sampler,
|
|
202
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
203
|
+
thread float& cylinderAngle
|
|
204
|
+
) {
|
|
205
|
+
float hitAngle_1 = {};
|
|
206
|
+
metal::float3 point_3 = {};
|
|
207
|
+
float param_1 = {};
|
|
208
|
+
float param_2 = {};
|
|
209
|
+
metal::float3 param_3 = {};
|
|
210
|
+
metal::float3x3 param_4 = {};
|
|
211
|
+
metal::float2 param_5 = {};
|
|
212
|
+
metal::float2 param_6 = {};
|
|
213
|
+
metal::float4 color_1 = {};
|
|
214
|
+
metal::float2 param_7 = {};
|
|
215
|
+
metal::float4 tcolor = {};
|
|
216
|
+
metal::float3 param_8 = {};
|
|
217
|
+
metal::float4 param_9 = {};
|
|
218
|
+
metal::float4 param_10 = {};
|
|
219
|
+
float param_11 = {};
|
|
220
|
+
bool phi_293_ = {};
|
|
221
|
+
bool phi_300_ = {};
|
|
222
|
+
bool phi_307_ = {};
|
|
223
|
+
bool phi_308_ = {};
|
|
224
|
+
float _e64 = yc_2;
|
|
225
|
+
float _e68 = cylinderAngle;
|
|
226
|
+
hitAngle_1 = 3.1415927 - (metal::acos(metal::clamp(_e64 / 0.15915494, -1.0, 1.0)) - _e68);
|
|
227
|
+
metal::float3x3 _e71 = rotation;
|
|
228
|
+
metal::float2 _e72 = p;
|
|
229
|
+
float _e77 = hitAngle_1;
|
|
230
|
+
param_1 = _e77;
|
|
231
|
+
float _e78 = yc_2;
|
|
232
|
+
param_2 = _e78;
|
|
233
|
+
param_3 = _e71 * metal::float3(_e72.x, _e72.y, 1.0);
|
|
234
|
+
metal::float3x3 _e79 = rrotation_1;
|
|
235
|
+
param_4 = _e79;
|
|
236
|
+
metal::float3 _e80 = hitPoint_u0028_f1_u003b_f1_u003b_vf3_u003b_mf33_u003b(param_1, param_2, param_3, param_4);
|
|
237
|
+
point_3 = _e80;
|
|
238
|
+
float _e81 = yc_2;
|
|
239
|
+
bool _e82 = _e81 <= 0.0;
|
|
240
|
+
phi_308_ = _e82;
|
|
241
|
+
if (_e82) {
|
|
242
|
+
float _e84 = point_3[0u];
|
|
243
|
+
bool _e85 = _e84 < 0.0;
|
|
244
|
+
phi_293_ = _e85;
|
|
245
|
+
if (!(_e85)) {
|
|
246
|
+
float _e88 = point_3[1u];
|
|
247
|
+
phi_293_ = _e88 < 0.0;
|
|
248
|
+
}
|
|
249
|
+
bool _e91 = phi_293_;
|
|
250
|
+
phi_300_ = _e91;
|
|
251
|
+
if (!(_e91)) {
|
|
252
|
+
float _e94 = point_3[0u];
|
|
253
|
+
phi_300_ = _e94 > 1.0;
|
|
254
|
+
}
|
|
255
|
+
bool _e97 = phi_300_;
|
|
256
|
+
phi_307_ = _e97;
|
|
257
|
+
if (!(_e97)) {
|
|
258
|
+
float _e100 = point_3[1u];
|
|
259
|
+
phi_307_ = _e100 > 1.0;
|
|
260
|
+
}
|
|
261
|
+
bool _e103 = phi_307_;
|
|
262
|
+
phi_308_ = _e103;
|
|
263
|
+
}
|
|
264
|
+
bool _e105 = phi_308_;
|
|
265
|
+
if (_e105) {
|
|
266
|
+
metal::float2 _e106 = p;
|
|
267
|
+
param_5 = _e106;
|
|
268
|
+
metal::float4 _e107 = getToColor(param_5, _sampler, _to);
|
|
269
|
+
return _e107;
|
|
270
|
+
}
|
|
271
|
+
float _e108 = yc_2;
|
|
272
|
+
if (_e108 > 0.0) {
|
|
273
|
+
metal::float2 _e110 = p;
|
|
274
|
+
param_6 = _e110;
|
|
275
|
+
metal::float4 _e111 = getFromColor(param_6, _from, _sampler);
|
|
276
|
+
return _e111;
|
|
277
|
+
}
|
|
278
|
+
metal::float3 _e112 = point_3;
|
|
279
|
+
param_7 = _e112.xy;
|
|
280
|
+
metal::float4 _e114 = getFromColor(param_7, _from, _sampler);
|
|
281
|
+
color_1 = _e114;
|
|
282
|
+
tcolor = metal::float4(0.0, 0.0, 0.0, 0.0);
|
|
283
|
+
metal::float3 _e115 = point_3;
|
|
284
|
+
param_8 = _e115;
|
|
285
|
+
float _e116 = distanceToEdge(param_8);
|
|
286
|
+
metal::float4 _e117 = color_1;
|
|
287
|
+
param_9 = _e117;
|
|
288
|
+
metal::float4 _e118 = tcolor;
|
|
289
|
+
param_10 = _e118;
|
|
290
|
+
param_11 = _e116;
|
|
291
|
+
metal::float4 _e119 = antiAlias(param_9, param_10, param_11);
|
|
292
|
+
return _e119;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
metal::float4 seeThroughWithShadow(
|
|
296
|
+
thread float& yc_3,
|
|
297
|
+
thread metal::float2& p_1,
|
|
298
|
+
thread metal::float3& point_4,
|
|
299
|
+
thread metal::float3x3& rotation_1,
|
|
300
|
+
thread metal::float3x3& rrotation_2,
|
|
301
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
302
|
+
metal::sampler _sampler,
|
|
303
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
304
|
+
thread float& cylinderAngle,
|
|
305
|
+
thread float& amount
|
|
306
|
+
) {
|
|
307
|
+
float shadow = {};
|
|
308
|
+
metal::float3 param_12 = {};
|
|
309
|
+
metal::float4 shadowColor = {};
|
|
310
|
+
float param_13 = {};
|
|
311
|
+
metal::float2 param_14 = {};
|
|
312
|
+
metal::float3x3 param_15 = {};
|
|
313
|
+
metal::float3x3 param_16 = {};
|
|
314
|
+
metal::float3 _e57 = point_4;
|
|
315
|
+
param_12 = _e57;
|
|
316
|
+
float _e58 = distanceToEdge(param_12);
|
|
317
|
+
shadow = _e58 * 30.0;
|
|
318
|
+
float _e60 = shadow;
|
|
319
|
+
shadow = (1.0 - _e60) / 3.0;
|
|
320
|
+
float _e63 = shadow;
|
|
321
|
+
if (_e63 < 0.0) {
|
|
322
|
+
shadow = 0.0;
|
|
323
|
+
} else {
|
|
324
|
+
float _e65 = amount;
|
|
325
|
+
float _e66 = shadow;
|
|
326
|
+
shadow = _e66 * _e65;
|
|
327
|
+
}
|
|
328
|
+
float _e68 = yc_3;
|
|
329
|
+
param_13 = _e68;
|
|
330
|
+
metal::float2 _e69 = p_1;
|
|
331
|
+
param_14 = _e69;
|
|
332
|
+
metal::float3x3 _e70 = rotation_1;
|
|
333
|
+
param_15 = _e70;
|
|
334
|
+
metal::float3x3 _e71 = rrotation_2;
|
|
335
|
+
param_16 = _e71;
|
|
336
|
+
metal::float4 _e72 = seeThrough(param_13, param_14, param_15, param_16, _from, _sampler, _to, cylinderAngle);
|
|
337
|
+
shadowColor = _e72;
|
|
338
|
+
float _e73 = shadow;
|
|
339
|
+
float _e75 = shadowColor[0u];
|
|
340
|
+
shadowColor[0u] = _e75 - _e73;
|
|
341
|
+
float _e78 = shadow;
|
|
342
|
+
float _e80 = shadowColor[1u];
|
|
343
|
+
shadowColor[1u] = _e80 - _e78;
|
|
344
|
+
float _e83 = shadow;
|
|
345
|
+
float _e85 = shadowColor[2u];
|
|
346
|
+
shadowColor[2u] = _e85 - _e83;
|
|
347
|
+
metal::float4 _e88 = shadowColor;
|
|
348
|
+
return _e88;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
metal::float4 behindSurface(
|
|
352
|
+
thread metal::float2& p_2,
|
|
353
|
+
thread float& yc_4,
|
|
354
|
+
thread metal::float3& point_5,
|
|
355
|
+
thread metal::float3x3& rrotation_3,
|
|
356
|
+
metal::sampler _sampler,
|
|
357
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
358
|
+
thread float& cylinderAngle,
|
|
359
|
+
thread float& amount
|
|
360
|
+
) {
|
|
361
|
+
float safeAmount = {};
|
|
362
|
+
float local_2 = {};
|
|
363
|
+
float shado = {};
|
|
364
|
+
float hitAngle_2 = {};
|
|
365
|
+
float param_17 = {};
|
|
366
|
+
float param_18 = {};
|
|
367
|
+
metal::float3 param_19 = {};
|
|
368
|
+
metal::float3x3 param_20 = {};
|
|
369
|
+
float dx_1 = {};
|
|
370
|
+
float dy_1 = {};
|
|
371
|
+
float nyc = {};
|
|
372
|
+
metal::float2 param_21 = {};
|
|
373
|
+
bool phi_487_ = {};
|
|
374
|
+
bool phi_493_ = {};
|
|
375
|
+
bool phi_499_ = {};
|
|
376
|
+
bool phi_505_ = {};
|
|
377
|
+
bool phi_513_ = {};
|
|
378
|
+
float _e61 = amount;
|
|
379
|
+
if (_e61 >= 0.0) {
|
|
380
|
+
float _e63 = amount;
|
|
381
|
+
local_2 = metal::max(_e63, 0.0001);
|
|
382
|
+
} else {
|
|
383
|
+
float _e65 = amount;
|
|
384
|
+
local_2 = metal::min(_e65, -0.0001);
|
|
385
|
+
}
|
|
386
|
+
float _e67 = local_2;
|
|
387
|
+
safeAmount = _e67;
|
|
388
|
+
float _e68 = yc_4;
|
|
389
|
+
float _e70 = safeAmount;
|
|
390
|
+
shado = (1.0 - (((-0.15915494 - _e68) / _e70) * 7.0)) / 6.0;
|
|
391
|
+
float _e76 = point_5[0u];
|
|
392
|
+
float _e80 = shado;
|
|
393
|
+
shado = _e80 * (1.0 - metal::abs(_e76 - 0.5));
|
|
394
|
+
float _e82 = yc_4;
|
|
395
|
+
yc_4 = -0.31830987 - _e82;
|
|
396
|
+
float _e84 = yc_4;
|
|
397
|
+
float _e88 = cylinderAngle;
|
|
398
|
+
hitAngle_2 = (metal::acos(metal::clamp(_e84 / 0.15915494, -1.0, 1.0)) + _e88) - 3.1415927;
|
|
399
|
+
float _e91 = hitAngle_2;
|
|
400
|
+
param_17 = _e91;
|
|
401
|
+
float _e92 = yc_4;
|
|
402
|
+
param_18 = _e92;
|
|
403
|
+
metal::float3 _e93 = point_5;
|
|
404
|
+
param_19 = _e93;
|
|
405
|
+
metal::float3x3 _e94 = rrotation_3;
|
|
406
|
+
param_20 = _e94;
|
|
407
|
+
metal::float3 _e95 = hitPoint_u0028_f1_u003b_f1_u003b_vf3_u003b_mf33_u003b(param_17, param_18, param_19, param_20);
|
|
408
|
+
point_5 = _e95;
|
|
409
|
+
float _e96 = yc_4;
|
|
410
|
+
bool _e97 = _e96 < 0.0;
|
|
411
|
+
phi_487_ = _e97;
|
|
412
|
+
if (_e97) {
|
|
413
|
+
float _e99 = point_5[0u];
|
|
414
|
+
phi_487_ = _e99 >= 0.0;
|
|
415
|
+
}
|
|
416
|
+
bool _e102 = phi_487_;
|
|
417
|
+
phi_493_ = _e102;
|
|
418
|
+
if (_e102) {
|
|
419
|
+
float _e104 = point_5[1u];
|
|
420
|
+
phi_493_ = _e104 >= 0.0;
|
|
421
|
+
}
|
|
422
|
+
bool _e107 = phi_493_;
|
|
423
|
+
phi_499_ = _e107;
|
|
424
|
+
if (_e107) {
|
|
425
|
+
float _e109 = point_5[0u];
|
|
426
|
+
phi_499_ = _e109 <= 1.0;
|
|
427
|
+
}
|
|
428
|
+
bool _e112 = phi_499_;
|
|
429
|
+
phi_505_ = _e112;
|
|
430
|
+
if (_e112) {
|
|
431
|
+
float _e114 = point_5[1u];
|
|
432
|
+
phi_505_ = _e114 <= 1.0;
|
|
433
|
+
}
|
|
434
|
+
bool _e117 = phi_505_;
|
|
435
|
+
phi_513_ = _e117;
|
|
436
|
+
if (_e117) {
|
|
437
|
+
float _e118 = hitAngle_2;
|
|
438
|
+
float _e120 = amount;
|
|
439
|
+
phi_513_ = (_e118 < 3.1415927) || (_e120 > 0.5);
|
|
440
|
+
}
|
|
441
|
+
bool _e124 = phi_513_;
|
|
442
|
+
if (_e124) {
|
|
443
|
+
float _e126 = point_5[0u];
|
|
444
|
+
dx_1 = _e126 - 0.5;
|
|
445
|
+
float _e129 = point_5[1u];
|
|
446
|
+
dy_1 = _e129 - 0.5;
|
|
447
|
+
float _e131 = dx_1;
|
|
448
|
+
float _e132 = dx_1;
|
|
449
|
+
float _e134 = dy_1;
|
|
450
|
+
float _e135 = dy_1;
|
|
451
|
+
shado = 1.0 - (metal::sqrt((_e131 * _e132) + (_e134 * _e135)) / 0.71);
|
|
452
|
+
float _e141 = yc_4;
|
|
453
|
+
nyc = -(_e141) / 0.15915494;
|
|
454
|
+
float _e144 = nyc;
|
|
455
|
+
float _e145 = nyc;
|
|
456
|
+
float _e147 = nyc;
|
|
457
|
+
float _e149 = shado;
|
|
458
|
+
shado = _e149 * ((_e144 * _e145) * _e147);
|
|
459
|
+
float _e151 = shado;
|
|
460
|
+
shado = _e151 * 0.5;
|
|
461
|
+
} else {
|
|
462
|
+
shado = 0.0;
|
|
463
|
+
}
|
|
464
|
+
metal::float2 _e153 = p_2;
|
|
465
|
+
param_21 = _e153;
|
|
466
|
+
metal::float4 _e154 = getToColor(param_21, _sampler, _to);
|
|
467
|
+
float _e156 = shado;
|
|
468
|
+
metal::float3 _e158 = _e154.xyz - metal::float3(_e156);
|
|
469
|
+
return metal::float4(_e158.x, _e158.y, _e158.z, 1.0);
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
metal::float4 transition(
|
|
473
|
+
thread metal::float2& p_3,
|
|
474
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
475
|
+
metal::sampler _sampler,
|
|
476
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
477
|
+
thread float& cylinderAngle,
|
|
478
|
+
thread float& amount,
|
|
479
|
+
constant Uniforms& uniforms,
|
|
480
|
+
thread float& cylinderCenter
|
|
481
|
+
) {
|
|
482
|
+
float c = {};
|
|
483
|
+
float s = {};
|
|
484
|
+
metal::float3x3 rotation_2 = {};
|
|
485
|
+
metal::float3x3 rrotation_4 = {};
|
|
486
|
+
metal::float3 point_6 = {};
|
|
487
|
+
float yc_5 = {};
|
|
488
|
+
metal::float2 param_22 = {};
|
|
489
|
+
float param_23 = {};
|
|
490
|
+
metal::float3 param_24 = {};
|
|
491
|
+
metal::float3x3 param_25 = {};
|
|
492
|
+
metal::float2 param_26 = {};
|
|
493
|
+
float hitAngle_3 = {};
|
|
494
|
+
float hitAngleMod = {};
|
|
495
|
+
float param_27 = {};
|
|
496
|
+
metal::float2 param_28 = {};
|
|
497
|
+
metal::float3x3 param_29 = {};
|
|
498
|
+
metal::float3x3 param_30 = {};
|
|
499
|
+
float param_31 = {};
|
|
500
|
+
float param_32 = {};
|
|
501
|
+
metal::float3 param_33 = {};
|
|
502
|
+
metal::float3x3 param_34 = {};
|
|
503
|
+
float param_35 = {};
|
|
504
|
+
metal::float2 param_36 = {};
|
|
505
|
+
metal::float3 param_37 = {};
|
|
506
|
+
metal::float3x3 param_38 = {};
|
|
507
|
+
metal::float3x3 param_39 = {};
|
|
508
|
+
metal::float4 color_2 = {};
|
|
509
|
+
float param_40 = {};
|
|
510
|
+
metal::float3 param_41 = {};
|
|
511
|
+
float dx2_ = {};
|
|
512
|
+
float dy2_ = {};
|
|
513
|
+
float shado_1 = {};
|
|
514
|
+
float nyc2_ = {};
|
|
515
|
+
metal::float4 otherColor = {};
|
|
516
|
+
metal::float2 param_42 = {};
|
|
517
|
+
metal::float4 param_43 = {};
|
|
518
|
+
metal::float4 param_44 = {};
|
|
519
|
+
float param_45 = {};
|
|
520
|
+
metal::float4 cl = {};
|
|
521
|
+
float param_46 = {};
|
|
522
|
+
metal::float2 param_47 = {};
|
|
523
|
+
metal::float3 param_48 = {};
|
|
524
|
+
metal::float3x3 param_49 = {};
|
|
525
|
+
metal::float3x3 param_50 = {};
|
|
526
|
+
float dist = {};
|
|
527
|
+
metal::float3 param_51 = {};
|
|
528
|
+
metal::float4 param_52 = {};
|
|
529
|
+
metal::float4 param_53 = {};
|
|
530
|
+
float param_54 = {};
|
|
531
|
+
bool phi_665_ = {};
|
|
532
|
+
bool phi_696_ = {};
|
|
533
|
+
bool phi_703_ = {};
|
|
534
|
+
bool phi_710_ = {};
|
|
535
|
+
float _e96 = uniforms.progress;
|
|
536
|
+
amount = (_e96 * 1.66) + -0.16;
|
|
537
|
+
float _e99 = amount;
|
|
538
|
+
cylinderCenter = _e99;
|
|
539
|
+
float _e100 = amount;
|
|
540
|
+
cylinderAngle = 6.2831855 * _e100;
|
|
541
|
+
c = -0.17364818;
|
|
542
|
+
s = -0.9848077;
|
|
543
|
+
float _e102 = c;
|
|
544
|
+
float _e103 = s;
|
|
545
|
+
float _e104 = s;
|
|
546
|
+
float _e106 = c;
|
|
547
|
+
rotation_2 = metal::float3x3(metal::float3(_e102, _e103, 0.0), metal::float3(-(_e104), _e106, 0.0), metal::float3(-0.801, 0.89, 1.0));
|
|
548
|
+
c = -0.17364818;
|
|
549
|
+
s = 0.9848077;
|
|
550
|
+
float _e111 = c;
|
|
551
|
+
float _e112 = s;
|
|
552
|
+
float _e113 = s;
|
|
553
|
+
float _e115 = c;
|
|
554
|
+
rrotation_4 = metal::float3x3(metal::float3(_e111, _e112, 0.0), metal::float3(-(_e113), _e115, 0.0), metal::float3(0.985, 0.985, 1.0));
|
|
555
|
+
metal::float3x3 _e120 = rotation_2;
|
|
556
|
+
metal::float2 _e121 = p_3;
|
|
557
|
+
point_6 = _e120 * metal::float3(_e121.x, _e121.y, 1.0);
|
|
558
|
+
float _e127 = point_6[1u];
|
|
559
|
+
float _e128 = cylinderCenter;
|
|
560
|
+
yc_5 = _e127 - _e128;
|
|
561
|
+
float _e130 = yc_5;
|
|
562
|
+
if (_e130 < -0.15915494) {
|
|
563
|
+
metal::float2 _e132 = p_3;
|
|
564
|
+
param_22 = _e132;
|
|
565
|
+
float _e133 = yc_5;
|
|
566
|
+
param_23 = _e133;
|
|
567
|
+
metal::float3 _e134 = point_6;
|
|
568
|
+
param_24 = _e134;
|
|
569
|
+
metal::float3x3 _e135 = rrotation_4;
|
|
570
|
+
param_25 = _e135;
|
|
571
|
+
metal::float4 _e136 = behindSurface(param_22, param_23, param_24, param_25, _sampler, _to, cylinderAngle, amount);
|
|
572
|
+
return _e136;
|
|
573
|
+
}
|
|
574
|
+
float _e137 = yc_5;
|
|
575
|
+
if (_e137 > 0.15915494) {
|
|
576
|
+
metal::float2 _e139 = p_3;
|
|
577
|
+
param_26 = _e139;
|
|
578
|
+
metal::float4 _e140 = getFromColor(param_26, _from, _sampler);
|
|
579
|
+
return _e140;
|
|
580
|
+
}
|
|
581
|
+
float _e141 = yc_5;
|
|
582
|
+
float _e145 = cylinderAngle;
|
|
583
|
+
hitAngle_3 = (metal::acos(metal::clamp(_e141 / 0.15915494, -1.0, 1.0)) + _e145) - 3.1415927;
|
|
584
|
+
float _e148 = hitAngle_3;
|
|
585
|
+
hitAngleMod = _e148 - (metal::floor(_e148 / 6.2831855) * 6.2831855);
|
|
586
|
+
float _e153 = hitAngleMod;
|
|
587
|
+
float _e155 = amount;
|
|
588
|
+
bool _e157 = (_e153 > 3.1415927) && (_e155 < 0.5);
|
|
589
|
+
phi_665_ = _e157;
|
|
590
|
+
if (!(_e157)) {
|
|
591
|
+
float _e159 = hitAngleMod;
|
|
592
|
+
float _e161 = amount;
|
|
593
|
+
phi_665_ = (_e159 > 1.5707964) && (_e161 < 0.0);
|
|
594
|
+
}
|
|
595
|
+
bool _e165 = phi_665_;
|
|
596
|
+
if (_e165) {
|
|
597
|
+
float _e166 = yc_5;
|
|
598
|
+
param_27 = _e166;
|
|
599
|
+
metal::float2 _e167 = p_3;
|
|
600
|
+
param_28 = _e167;
|
|
601
|
+
metal::float3x3 _e168 = rotation_2;
|
|
602
|
+
param_29 = _e168;
|
|
603
|
+
metal::float3x3 _e169 = rrotation_4;
|
|
604
|
+
param_30 = _e169;
|
|
605
|
+
metal::float4 _e170 = seeThrough(param_27, param_28, param_29, param_30, _from, _sampler, _to, cylinderAngle);
|
|
606
|
+
return _e170;
|
|
607
|
+
}
|
|
608
|
+
float _e171 = hitAngle_3;
|
|
609
|
+
param_31 = _e171;
|
|
610
|
+
float _e172 = yc_5;
|
|
611
|
+
param_32 = _e172;
|
|
612
|
+
metal::float3 _e173 = point_6;
|
|
613
|
+
param_33 = _e173;
|
|
614
|
+
metal::float3x3 _e174 = rrotation_4;
|
|
615
|
+
param_34 = _e174;
|
|
616
|
+
metal::float3 _e175 = hitPoint_u0028_f1_u003b_f1_u003b_vf3_u003b_mf33_u003b(param_31, param_32, param_33, param_34);
|
|
617
|
+
point_6 = _e175;
|
|
618
|
+
float _e177 = point_6[0u];
|
|
619
|
+
bool _e178 = _e177 < 0.0;
|
|
620
|
+
phi_696_ = _e178;
|
|
621
|
+
if (!(_e178)) {
|
|
622
|
+
float _e181 = point_6[1u];
|
|
623
|
+
phi_696_ = _e181 < 0.0;
|
|
624
|
+
}
|
|
625
|
+
bool _e184 = phi_696_;
|
|
626
|
+
phi_703_ = _e184;
|
|
627
|
+
if (!(_e184)) {
|
|
628
|
+
float _e187 = point_6[0u];
|
|
629
|
+
phi_703_ = _e187 > 1.0;
|
|
630
|
+
}
|
|
631
|
+
bool _e190 = phi_703_;
|
|
632
|
+
phi_710_ = _e190;
|
|
633
|
+
if (!(_e190)) {
|
|
634
|
+
float _e193 = point_6[1u];
|
|
635
|
+
phi_710_ = _e193 > 1.0;
|
|
636
|
+
}
|
|
637
|
+
bool _e196 = phi_710_;
|
|
638
|
+
if (_e196) {
|
|
639
|
+
float _e197 = yc_5;
|
|
640
|
+
param_35 = _e197;
|
|
641
|
+
metal::float2 _e198 = p_3;
|
|
642
|
+
param_36 = _e198;
|
|
643
|
+
metal::float3 _e199 = point_6;
|
|
644
|
+
param_37 = _e199;
|
|
645
|
+
metal::float3x3 _e200 = rotation_2;
|
|
646
|
+
param_38 = _e200;
|
|
647
|
+
metal::float3x3 _e201 = rrotation_4;
|
|
648
|
+
param_39 = _e201;
|
|
649
|
+
metal::float4 _e202 = seeThroughWithShadow(param_35, param_36, param_37, param_38, param_39, _from, _sampler, _to, cylinderAngle, amount);
|
|
650
|
+
return _e202;
|
|
651
|
+
}
|
|
652
|
+
float _e203 = yc_5;
|
|
653
|
+
param_40 = _e203;
|
|
654
|
+
metal::float3 _e204 = point_6;
|
|
655
|
+
param_41 = _e204;
|
|
656
|
+
metal::float4 _e205 = backside(param_40, param_41, _from, _sampler);
|
|
657
|
+
color_2 = _e205;
|
|
658
|
+
float _e206 = yc_5;
|
|
659
|
+
if (_e206 < 0.0) {
|
|
660
|
+
float _e209 = point_6[0u];
|
|
661
|
+
dx2_ = _e209 - 0.5;
|
|
662
|
+
float _e212 = point_6[1u];
|
|
663
|
+
dy2_ = _e212 - 0.5;
|
|
664
|
+
float _e214 = dx2_;
|
|
665
|
+
float _e215 = dx2_;
|
|
666
|
+
float _e217 = dy2_;
|
|
667
|
+
float _e218 = dy2_;
|
|
668
|
+
shado_1 = 1.0 - (metal::sqrt((_e214 * _e215) + (_e217 * _e218)) / 0.71);
|
|
669
|
+
float _e224 = yc_5;
|
|
670
|
+
nyc2_ = -(_e224) / 0.15915494;
|
|
671
|
+
float _e227 = nyc2_;
|
|
672
|
+
float _e228 = nyc2_;
|
|
673
|
+
float _e230 = nyc2_;
|
|
674
|
+
float _e232 = shado_1;
|
|
675
|
+
shado_1 = _e232 * ((_e227 * _e228) * _e230);
|
|
676
|
+
float _e234 = shado_1;
|
|
677
|
+
shado_1 = _e234 * 0.5;
|
|
678
|
+
float _e236 = shado_1;
|
|
679
|
+
otherColor = metal::float4(0.0, 0.0, 0.0, _e236);
|
|
680
|
+
} else {
|
|
681
|
+
metal::float2 _e238 = p_3;
|
|
682
|
+
param_42 = _e238;
|
|
683
|
+
metal::float4 _e239 = getFromColor(param_42, _from, _sampler);
|
|
684
|
+
otherColor = _e239;
|
|
685
|
+
}
|
|
686
|
+
float _e240 = yc_5;
|
|
687
|
+
metal::float4 _e243 = color_2;
|
|
688
|
+
param_43 = _e243;
|
|
689
|
+
metal::float4 _e244 = otherColor;
|
|
690
|
+
param_44 = _e244;
|
|
691
|
+
param_45 = 0.15915494 - metal::abs(_e240);
|
|
692
|
+
metal::float4 _e245 = antiAlias(param_43, param_44, param_45);
|
|
693
|
+
color_2 = _e245;
|
|
694
|
+
float _e246 = yc_5;
|
|
695
|
+
param_46 = _e246;
|
|
696
|
+
metal::float2 _e247 = p_3;
|
|
697
|
+
param_47 = _e247;
|
|
698
|
+
metal::float3 _e248 = point_6;
|
|
699
|
+
param_48 = _e248;
|
|
700
|
+
metal::float3x3 _e249 = rotation_2;
|
|
701
|
+
param_49 = _e249;
|
|
702
|
+
metal::float3x3 _e250 = rrotation_4;
|
|
703
|
+
param_50 = _e250;
|
|
704
|
+
metal::float4 _e251 = seeThroughWithShadow(param_46, param_47, param_48, param_49, param_50, _from, _sampler, _to, cylinderAngle, amount);
|
|
705
|
+
cl = _e251;
|
|
706
|
+
metal::float3 _e252 = point_6;
|
|
707
|
+
param_51 = _e252;
|
|
708
|
+
float _e253 = distanceToEdge(param_51);
|
|
709
|
+
dist = _e253;
|
|
710
|
+
metal::float4 _e254 = color_2;
|
|
711
|
+
param_52 = _e254;
|
|
712
|
+
metal::float4 _e255 = cl;
|
|
713
|
+
param_53 = _e255;
|
|
714
|
+
float _e256 = dist;
|
|
715
|
+
param_54 = _e256;
|
|
716
|
+
metal::float4 _e257 = antiAlias(param_52, param_53, param_54);
|
|
717
|
+
return _e257;
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
void main_1(
|
|
721
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
722
|
+
metal::sampler _sampler,
|
|
723
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
724
|
+
thread float& cylinderAngle,
|
|
725
|
+
thread float& amount,
|
|
726
|
+
constant Uniforms& uniforms,
|
|
727
|
+
thread float& cylinderCenter,
|
|
728
|
+
thread metal::float4& _fragColor,
|
|
729
|
+
thread metal::float2& _uv_1
|
|
730
|
+
) {
|
|
731
|
+
metal::float2 param_55 = {};
|
|
732
|
+
metal::float2 _e46 = _uv_1;
|
|
733
|
+
param_55 = _e46;
|
|
734
|
+
metal::float4 _e47 = transition(param_55, _from, _sampler, _to, cylinderAngle, amount, uniforms, cylinderCenter);
|
|
735
|
+
_fragColor = _e47;
|
|
736
|
+
return;
|
|
737
|
+
}
|
|
738
|
+
|
|
739
|
+
struct main_Input {
|
|
740
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
741
|
+
};
|
|
742
|
+
struct main_Output {
|
|
743
|
+
metal::float4 member [[color(0)]];
|
|
744
|
+
};
|
|
745
|
+
fragment main_Output main_(
|
|
746
|
+
main_Input varyings [[stage_in]]
|
|
747
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
748
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
749
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
750
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
751
|
+
) {
|
|
752
|
+
float cylinderAngle = {};
|
|
753
|
+
float amount = {};
|
|
754
|
+
float cylinderCenter = {};
|
|
755
|
+
metal::float4 _fragColor = {};
|
|
756
|
+
metal::float2 _uv_1 = {};
|
|
757
|
+
const auto _uv = varyings._uv;
|
|
758
|
+
_uv_1 = _uv;
|
|
759
|
+
main_1(_from, _sampler, _to, cylinderAngle, amount, uniforms, cylinderCenter, _fragColor, _uv_1);
|
|
760
|
+
metal::float4 _e3 = _fragColor;
|
|
761
|
+
return main_Output { _e3 };
|
|
762
|
+
}
|