导航菜单

页面标题

页面副标题

Kreate v1.5.0 - RainbowWater.java 源代码

正在查看: Kreate v1.5.0 应用的 RainbowWater.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\u001c\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\u000e\n\u0002\b\r\n\u0002\u0010\u0007\n\u0002\b\u0005\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\u00138VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\u0014\u0010\u0015R\u0014\u0010\u0016\u001a\u00020\u0005X\u0096D¢\u0006\b\n\u0000\u001a\u0004\b\u0017\u0010\u0007¨\u0006\u0018"}, d2 = {"Lcom/mikepenz/hypnoticcanvas/shaders/RainbowWater;", "Lcom/mikepenz/hypnoticcanvas/shaders/Shader;", "<init>", "()V", "name", "", "getName", "()Ljava/lang/String;", "authorName", "getAuthorName", "authorUrl", "getAuthorUrl", "credit", "getCredit", "license", "getLicense", "licenseUrl", "getLicenseUrl", "speedModifier", "", "getSpeedModifier", "()F", "sksl", "getSksl", "hypnoticcanvas-shaders_release"}, k = 1, mv = {2, 0, 0}, xi = 48)
public final class RainbowWater implements Shader {
    public static final int $stable = 0;
    public static final RainbowWater INSTANCE = new RainbowWater();
    private static final String sksl = "\nuniform float uTime;\nuniform vec3 uResolution;\n\nvec3 pools(in vec2 uv)\n{\n    float dt  = .5+.5*sin(.18*uTime);\n    float dt2 = .5+.5*sin(.038*uTime);\n    float mdt = .2+.8*dt;\n    float mdt2 = .7+.3*dt2;\n    \n    float dt3 = .5+.5*sin(.14*uTime);\n    float dt4 = .5+.5*sin(.033*uTime);\n    float mdt3 = .2+.8*dt3;\n    float mdt4 = .7+.3*dt4;\n\n    float dt5  = .5+.5*sin(.11*uTime);\n    float dt6 = .5+.5*sin(1.5+.036*uTime);\n    float mdt5 = .2+.8*dt5;\n    float mdt6 = .7+.3*dt6;\n\n    float dt7  = .5+.5*sin(.3*uTime);\n    float mdt7 = .1+.9*dt7;\n\n    float dt8  = .5+.5*sin(1.5+.2*uTime);\n    float mdt8 = .9+.1*dt8;\n\n\n    //uv = vec2(sin(25.*uv));\n\n\n    vec3 c = vec3(0.);\n    float a = 1.;\n    float f = 1.;\n    float as = 0.;\n    for (int i = 0; i < 1; i++) {\n        for (int j = 0; j < 25; j++) {\n            //float p[] = float[](.2, .5, .3, 0.1, .4, .8, .8, .5);\n            //float wc[] = float[](.0, 1., .0, 1., .1, .2, .0, .1, 1.);\n            f = 2.*(1.+.3*float(j));//*(.5+.5*sin(157.*float(j)));\n            a = 1./(pow(1.23,float(j)));\n            //a = 1./(1.+float(j));\n            \n            float r2 = length(uv-vec2(sin(142.31*float(j)), sin(29.321*float(j))));\n\n            c.r += mdt*1.4*a*(.5+.5*sin(7.*uTime+f*mdt2*7.1*r2));\n            c.g += mdt3*1.4*a*(.5+.5*sin(7.*uTime+f*mdt4*7.1*r2));\n            //c.b += .1*a*(.5+.5*sin(11.*uTime+f*7.1*r2));\n            //c.g += .5*a*(.5+.5*sin(11.*uTime+f*5.1*r2));\n            c.b += mdt5*1.4*a*(.5+.5*sin(7.*uTime+f*mdt6*7.1*r2));\n            //c += vec3(r2);\n            //c.b += a*.7*sin(22.*mdt6+f*5.4*r2);\n            as += a;\n            //f *= 1.3+length(c);\n            //f *= 1.1;\n   \n            //a = 0.;\n        }\n    }\n    c /= as;\n   \n \n    return c;\n    \n}\n\n\nvec3 warp(in vec2 uv) {\n    vec3 c = pools(uv);\n    \n    const int iter = 5;\n    float amp = .55;\n    float f = .9;\n\n    float a = 1.; \n    for (int i = 0; i < iter; i++) {\n       a *= amp;\n    }\n       \n    for (int i = 0; i < iter; i++) {\n        a /= amp;\n        f *= 1.2;\n        c = a*pools(uv + f*vec2(c.r-c.g, c.g - c.b)) ;\n    }\n    return c;\n}\n\n\nvec4 main( vec2 fragCoord )\n{\n\n    ivec2 px = ivec2( fragCoord );\n    vec2 uv = fragCoord/uResolution.xy;\n    return vec4(warp(uv), 1.);\n\n}\n    ";

    @Override
    public float getSpeedModifier() {
        return 0.01f;
    }

    private RainbowWater() {
    }

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

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

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

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

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

    @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;
    }
}