导航菜单

页面标题

页面副标题

Kreate v1.5.0 - IceReflection.java 源代码

正在查看: Kreate v1.5.0 应用的 IceReflection.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.mikepenz.hypnoticcanvas.shaders;

import com.mikepenz.hypnoticcanvas.RuntimeEffect;
import com.mikepenz.hypnoticcanvas.shaders.Shader;
import kotlin.Metadata;

@Metadata(d1 = {"\u0000\u0014\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\u000e\n\u0002\b\u000f\bÇ\u0002\u0018\u00002\u00020\u0001B\t\b\u0002¢\u0006\u0004\b\u0002\u0010\u0003R\u0014\u0010\u0004\u001a\u00020\u00058VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\u0006\u0010\u0007R\u0014\u0010\b\u001a\u00020\u00058VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\t\u0010\u0007R\u0014\u0010\n\u001a\u00020\u00058VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\u000b\u0010\u0007R\u0014\u0010\f\u001a\u00020\u00058VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\r\u0010\u0007R\u0014\u0010\u000e\u001a\u00020\u00058VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\u000f\u0010\u0007R\u0014\u0010\u0010\u001a\u00020\u00058VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\u0011\u0010\u0007R\u0014\u0010\u0012\u001a\u00020\u0005X\u0096D¢\u0006\b\n\u0000\u001a\u0004\b\u0013\u0010\u0007¨\u0006\u0014"}, d2 = {"Lcom/mikepenz/hypnoticcanvas/shaders/IceReflection;", "Lcom/mikepenz/hypnoticcanvas/shaders/Shader;", "<init>", "()V", "name", "", "getName", "()Ljava/lang/String;", "authorName", "getAuthorName", "authorUrl", "getAuthorUrl", "credit", "getCredit", "license", "getLicense", "licenseUrl", "getLicenseUrl", "sksl", "getSksl", "hypnoticcanvas-shaders_release"}, k = 1, mv = {2, 0, 0}, xi = 48)
public final class IceReflection implements Shader {
    public static final int $stable = 0;
    public static final IceReflection INSTANCE = new IceReflection();
    private static final String sksl = "\nuniform float uTime;\nuniform vec3 uResolution;\n\nfloat rand (in vec2 _st) {\n    return fract(sin(dot(_st.xy, vec2(-0.820,-0.840)))*4757.153);\n}\n\nfloat noise (in vec2 _st) {\n\tconst vec2 d = vec2(0., 1.);\n  vec2 b = floor(_st), f = smoothstep(vec2(0.), vec2(0.1,0.3), fract(_st));\n\treturn mix(mix(rand(b), rand(b + d.yx), f.x), mix(rand(b + d.xy), rand(b + d.yy), f.x), f.y);\n}\n\nfloat fbm ( in vec2 _st) {\n    float v = sin(uTime*0.5)*0.2;\n    float a = 0.3;\n    vec2 shift = vec2(100.);\n    // Rotate to reduce axial bias\n    mat2 rot = mat2(cos(0.5), sin(1.0), -sin(0.5), acos(0.5));\n    for (int i = 0; i <3; ++i) {\n        v += a * noise(_st);\n        _st = rot * _st * 2. + shift;\n        a *= 1.5;\n    }\n    return v;\n}\n\nvec4 main( vec2 fragCoord ) {\n    vec2 st = (fragCoord * 2. - uResolution.xy) / min(uResolution.x, uResolution.y) * 0.5;\n    \n    vec2 coord = st * 0.2;\n    float len;\n    for (int i = 0; i < 3; i++) {\n        len = length(coord);\n        coord.x +=  sin(coord.y + uTime * 0.1)*2.1;\n        coord.y +=  cos(coord.x + uTime * 0.1 + cos(len * 1.0))*1.;\n    }\n    len -= 3.;\n    \n    vec3 color = vec3(0.);\n\n    vec2 q = vec2(0.);\n    q.x = fbm( st );\n    q.y = fbm( st + vec2(-0.450,0.650));\n\n    vec2 r = vec2(0.);\n    r.x = fbm( st + 1.0*q + vec2(0.570,0.520)+ 0.1*uTime );\n    r.y = fbm( st + 1.0*q + vec2(0.340,-0.570)+ 0.05*uTime);\n    float f = fbm(st+r);\n    \n    color = mix(color, cos(len + vec3(0.5, 0.0, -0.1)), 1.0);\n    color = mix(vec3(0.478,0.738,0.760),vec3(0.563,0.580,0.667),color);\n    \n    return vec4((f*f*f+.6*f*f+.5*f)*color,1.);\n}\n    ";

    private IceReflection() {
    }

    @Override
    public void applyUniforms(RuntimeEffect runtimeEffect, float f, float f2, float f3) {
        Shader.DefaultImpls.applyUniforms(this, runtimeEffect, f, f2, f3);
    }

    @Override
    public float getSpeedModifier() {
        return Shader.DefaultImpls.getSpeedModifier(this);
    }

    @Override
    public String getName() {
        return "IceReflection";
    }

    @Override
    public String getAuthorName() {
        return "TAKUSAKU";
    }

    @Override
    public String getAuthorUrl() {
        return "https://www.shadertoy.com/user/TAKUSAKU";
    }

    @Override
    public String getCredit() {
        return "https://www.shadertoy.com/view/3djfzy";
    }

    @Override
    public String getLicense() {
        return "Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License";
    }

    @Override
    public String getLicenseUrl() {
        return "https://www.shadertoy.com/terms";
    }

    @Override
    public String getSksl() {
        return sksl;
    }
}