glslsandbox.com中的表面位置变化是什么

glslsandbox.com中的表面位置变化是什么,glsl,shader,Glsl,Shader,vUv和surfacePosition Variable之间有什么区别?在GLSL沙箱中,Variable vec2 surfacePosition位于可滚动、可缩放的曲面上。在其默认位置,y坐标的范围为-1.0到1.0,而x坐标的范围与此类似,并根据窗口的纵横比进行了缩放 例如,这在分形渲染器中非常有用,允许用户平移和缩放分形。这是一个简单的Mandelbrot集合。单击左上角的“隐藏代码”按钮,然后使用鼠标左键进行平移,使用鼠标右键进行缩放 统一浮动时间; 均匀vec2小鼠; 均匀vec2

vUv和surfacePosition Variable之间有什么区别?

在GLSL沙箱中,
Variable vec2 surfacePosition
位于可滚动、可缩放的曲面上。在其默认位置,
y
坐标的范围为
-1.0
1.0
,而
x
坐标的范围与此类似,并根据窗口的纵横比进行了缩放

例如,这在分形渲染器中非常有用,允许用户平移和缩放分形。这是一个简单的Mandelbrot集合。单击左上角的“隐藏代码”按钮,然后使用鼠标左键进行平移,使用鼠标右键进行缩放

统一浮动时间;
均匀vec2小鼠;
均匀vec2分辨率;
可变vec2表面沉积;
常量浮点最大值=100。;
浮动曼德尔布罗特(vec2 z){
vec2c=z;
对于(浮动i=0;i4.)返回i;
z=vec2(z.x*z.x-z.y*z.y,2.*z.x*z.y)+c;
}
返回最大值;
}
真空总管(真空){
Vec2p=表面沉积;
gl_FragColor=vec4(mandelbrot(p)/max_-its);
}
同样的技术也可能被滥用,以提供三维平移和缩放。例如,这是曼德勒灯泡。它在你的GPU上更重,但是隐藏代码,你也可以平移和缩放它


在GLSL沙箱中,
可变vec2表面位置是可滚动、可缩放表面上的一个位置。在其默认位置,
y
坐标的范围为
-1.0
1.0
,而
x
坐标的范围与此类似,并根据窗口的纵横比进行了缩放

例如,这在分形渲染器中非常有用,允许用户平移和缩放分形。这是一个简单的Mandelbrot集合。单击左上角的“隐藏代码”按钮,然后使用鼠标左键进行平移,使用鼠标右键进行缩放

统一浮动时间;
均匀vec2小鼠;
均匀vec2分辨率;
可变vec2表面沉积;
常量浮点最大值=100。;
浮动曼德尔布罗特(vec2 z){
vec2c=z;
对于(浮动i=0;i4.)返回i;
z=vec2(z.x*z.x-z.y*z.y,2.*z.x*z.y)+c;
}
返回最大值;
}
真空总管(真空){
Vec2p=表面沉积;
gl_FragColor=vec4(mandelbrot(p)/max_-its);
}
同样的技术也可能被滥用,以提供三维平移和缩放。例如,这是曼德勒灯泡。它在你的GPU上更重,但是隐藏代码,你也可以平移和缩放它


我刚刚发布了您的GLSL沙盒问题的答案,您能将该问题留在这里并将ShaderToy问题作为新帖子发布吗?我刚刚发布了您的GLSL沙盒问题的答案,您能将该问题留在这里并将ShaderToy问题作为新帖子发布吗?谢谢,但未涵盖vUv。vUv和surfacePosition之间有什么区别?我不是ShaderToy专家,但据我所知,
vUv
不是ShaderToy本身的一部分,而是一个应用程序的一部分。用户可能希望使用模型的纹理坐标代替屏幕坐标(
gl_FragCoord.xy
)或
surfacePosition
坐标。因此,
vUv
表示模型自身的纹理坐标,在中被屏幕或曲面坐标所替代。谢谢,但不包括vUv。vUv和surfacePosition之间有什么区别?我不是ShaderToy专家,但据我所知,
vUv
不是ShaderToy本身的一部分,而是一个应用程序的一部分。用户可能希望使用模型的纹理坐标代替屏幕坐标(
gl_FragCoord.xy
)或
surfacePosition
坐标。因此,
vUv
表示模型自己的纹理坐标,该坐标在中替换为屏幕或曲面坐标。
uniform float time;
uniform vec2 mouse;
uniform vec2 resolution;

varying vec2 surfacePosition;

const float max_its = 100.;

float mandelbrot(vec2 z){
    vec2 c = z;
    for(float i=0.;i<max_its;i++){
        if(dot(z,z)>4.) return i;
        z = vec2(z.x*z.x-z.y*z.y,2.*z.x*z.y)+c;
    }
    return max_its;
}


void main( void ) {
    vec2 p = surfacePosition;
    gl_FragColor = vec4(mandelbrot(p)/max_its);
}