正在查看: Kreate v1.5.0 应用的 Heat.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Kreate v1.5.0 应用的 Heat.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.mikepenz.hypnoticcanvas.shaders;
import com.mikepenz.hypnoticcanvas.RuntimeEffect;
import com.mikepenz.hypnoticcanvas.shaders.Shader;
import kotlin.Metadata;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.Intrinsics;
@Metadata(d1 = {"\u0000(\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0007\n\u0002\b\u0003\n\u0002\u0010\u000e\n\u0002\b\u0012\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0004\b\u0007\u0018\u00002\u00020\u0001B\u0011\u0012\b\b\u0002\u0010\u0002\u001a\u00020\u0003¢\u0006\u0004\b\u0004\u0010\u0005J(\u0010\u0019\u001a\u00020\u001a2\u0006\u0010\u001b\u001a\u00020\u001c2\u0006\u0010\u001d\u001a\u00020\u00032\u0006\u0010\u001e\u001a\u00020\u00032\u0006\u0010\u001f\u001a\u00020\u0003H\u0016R\u000e\u0010\u0002\u001a\u00020\u0003X\u0082\u0004¢\u0006\u0002\n\u0000R\u0014\u0010\u0006\u001a\u00020\u00078VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\b\u0010\tR\u0014\u0010\n\u001a\u00020\u00078VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\u000b\u0010\tR\u0014\u0010\f\u001a\u00020\u00078VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\r\u0010\tR\u0014\u0010\u000e\u001a\u00020\u00078VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\u000f\u0010\tR\u0014\u0010\u0010\u001a\u00020\u00078VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\u0011\u0010\tR\u0014\u0010\u0012\u001a\u00020\u00078VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\u0013\u0010\tR\u0014\u0010\u0014\u001a\u00020\u00038VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\u0015\u0010\u0016R\u0014\u0010\u0017\u001a\u00020\u0007X\u0096D¢\u0006\b\n\u0000\u001a\u0004\b\u0018\u0010\t¨\u0006 "}, d2 = {"Lcom/mikepenz/hypnoticcanvas/shaders/Heat;", "Lcom/mikepenz/hypnoticcanvas/shaders/Shader;", "filmGrainIntensity", "", "<init>", "(F)V", "name", "", "getName", "()Ljava/lang/String;", "authorName", "getAuthorName", "authorUrl", "getAuthorUrl", "credit", "getCredit", "license", "getLicense", "licenseUrl", "getLicenseUrl", "speedModifier", "getSpeedModifier", "()F", "sksl", "getSksl", "applyUniforms", "", "runtimeEffect", "Lcom/mikepenz/hypnoticcanvas/RuntimeEffect;", "time", "width", "height", "hypnoticcanvas-shaders_release"}, k = 1, mv = {2, 0, 0}, xi = 48)
public final class Heat implements Shader {
public static final int $stable = 0;
private final float filmGrainIntensity;
private final String sksl;
public Heat() {
this(0.0f, 1, null);
}
@Override
public float getSpeedModifier() {
return 0.1f;
}
public Heat(float f) {
this.filmGrainIntensity = f;
this.sksl = "\nuniform float filmGrainIntensity;\nuniform float uTime;\nuniform vec3 uResolution;\n\n// Inspired by https://www.shadertoy.com/view/wdyczG\n// Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License:\n// https://creativecommons.org/licenses/by-nc-sa/3.0/deed.en\nmat2 Rot(float a) {\n float s = sin(a);\n float c = cos(a);\n return mat2(c, -s, s, c);\n}\n\nvec2 hash(vec2 p) {\n p = vec2(dot(p, vec2(2127.1, 81.17)), dot(p, vec2(1269.5, 283.37)));\n return fract(sin(p)*43758.5453);\n}\n\nfloat noise(in vec2 p) {\n vec2 i = floor(p);\n vec2 f = fract(p);\n\n vec2 u = f*f*(3.0-2.0*f);\n\n float n = mix(mix(dot(-1.0+2.0*hash(i + vec2(0.0, 0.0)), f - vec2(0.0, 0.0)),\n dot(-1.0+2.0*hash(i + vec2(1.0, 0.0)), f - vec2(1.0, 0.0)), u.x),\n mix(dot(-1.0+2.0*hash(i + vec2(0.0, 1.0)), f - vec2(0.0, 1.0)),\n dot(-1.0+2.0*hash(i + vec2(1.0, 1.0)), f - vec2(1.0, 1.0)), u.x), u.y);\n return 0.5 + 0.5*n;\n}\n\nfloat filmGrainNoise(in vec2 uv) {\n return length(hash(vec2(uv.x, uv.y)));\n}\n\nvec4 main( vec2 fragCoord ) {\n vec2 uv = fragCoord / uResolution.xy;\n float aspectRatio = uResolution.x / uResolution.y;\n \n // Transformed uv\n vec2 tuv = uv - .5;\n\n // Rotate with noise\n float degree = noise(vec2(uTime*.05, tuv.x*tuv.y));\n\n tuv.y *= 1./aspectRatio;\n tuv *= Rot(radians((degree-.5)*720.+180.));\n tuv.y *= aspectRatio;\n\n // Wave warp with sine\n float frequency = 5.;\n float amplitude = 30.;\n float speed = uTime * 2.;\n tuv.x += sin(tuv.y*frequency+speed)/amplitude;\n tuv.y += sin(tuv.x*frequency*1.5+speed)/(amplitude*.5);\n \n \n // Light gradient colors\n vec3 cornsilk = vec3(237, 203, 182) / vec3(255);\n vec3 indigoDye = vec3(246, 223, 171) / vec3(255); // Indigo Dye (#1E4872)\n \n vec3 dun = vec3(105, 70, 51) / vec3(255);\n vec3 paynesGray2 = vec3(218, 80, 42) / vec3(255); // Payne's Gray 2 (#3C576C)\n \n // Intermediate gradient colors\n vec3 blueGray = vec3(64, 33, 18) / vec3(255); // Blue Gray (#6E96B9)\n vec3 paynesGray = vec3(44, 20, 11) / vec3(255); // Payne's Gray (#436682)\n \n \n // Interpolate between light and dark gradient\n float cycle = sin(uTime * 0.5);\n float t = (sign(cycle) * pow(abs(cycle), 0.6) + 1.) / 2.;\n vec3 color1 = mix(cornsilk, indigoDye, t);\n vec3 color2 = mix(dun, paynesGray2, t);\n vec3 color3 = mix(blueGray, paynesGray, t);\n vec3 color4 = mix(paynesGray, blueGray, t);\n \n // Blend the gradient colors and apply transformations\n vec3 layer1 = mix(color3, color2, smoothstep(-.03, .2, (tuv * Rot(radians(-5.))).x));\n vec3 layer2 = mix(color4, color1, smoothstep(-.02, .2, (tuv * Rot(radians(-5.))).x));\n \n vec3 color = mix(layer1, layer2, smoothstep(.05, -.3, tuv.y));\n \n // Apply brightness increase and contrast boost\n color = color * 1.2; // Increase brightness slightly\n color = pow(color, vec3(1.1)); // Apply a mild contrast boost\n \n // Apply film grain\n color = color - filmGrainNoise(uv) * filmGrainIntensity;\n \n return vec4(color, 1.0);\n}\n ";
}
public Heat(float f, int i, DefaultConstructorMarker defaultConstructorMarker) {
this((i & 1) != 0 ? 0.1f : f);
}
@Override
public String getName() {
return "heattttt";
}
@Override
public String getAuthorName() {
return "ykleij";
}
@Override
public String getAuthorUrl() {
return "https://www.shadertoy.com/user/ykleij";
}
@Override
public String getCredit() {
return "https://www.shadertoy.com/view/l3yyDd";
}
@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 this.sksl;
}
@Override
public void applyUniforms(RuntimeEffect runtimeEffect, float time, float width, float height) {
Intrinsics.checkNotNullParameter(runtimeEffect, "runtimeEffect");
Shader.DefaultImpls.applyUniforms(this, runtimeEffect, time, width, height);
runtimeEffect.setFloatUniform("filmGrainIntensity", this.filmGrainIntensity);
}
}