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