Начинающий
- Статус
- Оффлайн
- Регистрация
- 30 Июн 2024
- Сообщения
- 765
- Реакции
- 14
допустим у меня есть шейдер, но рендерить на блоке он не рендерит,
, кто знает скажите как рендерить я заебался, я пытался сделать по кваду и UV, по мешу и кваду, залупа получается
Код:
#version 150
#define iterations 17
#define formuparam 0.53
#define volsteps 20
#define stepsize 0.1
#define zoom 0.800
#define tile 0.850
#define speed 0.010
#define brightness 0.0015
#define darkmatter 0.300
#define distfading 0.730
#define saturation 0.850
uniform float Time;
uniform vec2 Resolution;
uniform float Alpha;
#define iTime Time
#define iResolution vec3(Resolution, 0.0)
#define iMouse vec4(0.0)
out vec4 fragColor;
void main() {
vec2 fragCoord = gl_FragCoord.xy;
vec2 uv = fragCoord.xy / iResolution.xy - 0.5;
uv.y *= iResolution.y / iResolution.x;
vec3 dir = vec3(uv * zoom, 1.0);
float time = iTime * speed + 0.25;
float a1 = 0.5 + iMouse.x / iResolution.x * 2.0;
float a2 = 0.8 + iMouse.y / iResolution.y * 2.0;
mat2 rot1 = mat2(cos(a1), sin(a1), -sin(a1), cos(a1));
mat2 rot2 = mat2(cos(a2), sin(a2), -sin(a2), cos(a2));
dir.xz *= rot1;
dir.xy *= rot2;
vec3 from = vec3(1.0, 0.5, 0.5);
from += vec3(time * 2.0, time, -2.0);
from.xz *= rot1;
from.xy *= rot2;
float s = 0.1, fade = 1.0;
vec3 v = vec3(0.0);
for (int r = 0; r < volsteps; r++) {
vec3 p = from + s * dir * 0.5;
p = abs(vec3(tile) - mod(p, vec3(tile * 2.0)));
float pa, a = pa = 0.0;
for (int i = 0; i < iterations; i++) {
p = abs(p) / dot(p, p) - formuparam;
a += abs(length(p) - pa);
pa = length(p);
}
float dm = max(0.0, darkmatter - a * a * 0.001);
a *= a * a;
if (r > 6) fade *= 1.0 - dm;
v += fade;
v += vec3(s, s * s, s * s * s * s) * a * brightness * fade;
fade *= distfading;
s += stepsize;
}
v = mix(vec3(length(v)), v, saturation);
fragColor = vec4(v * 0.01, Alpha);
}