Three.js柏林噪音 流动球体

编程入门 行业动态 更新时间:2024-10-23 17:28:36

Three.js柏林噪音 流动<a href=https://www.elefans.com/category/jswz/34/1716166.html style=球体"/>

Three.js柏林噪音 流动球体

代码:.js/tree/shader/
参考油管视频:=oKbCaj1J6EI
核心: 创建循环的图形 应用噪声 顶点按照法相偏移

CustomMaterial(): ShaderMaterial {const material = new ShaderMaterial({side: DoubleSide,uniforms: {iTime: { value: 1 },},vertexShader: `uniform float iTime;varying vec3 vNormal;varying vec3 vColor;#define PI 3.141592653589793${perlinNoiseFragment}${smoothModFragment}${fitFragment}void main() {vec3 transformed = position;vNormal = normal;//vec3 myNormal = normal * 3. ; vec3 myNormal = normal ;myNormal.y += iTime;float noiseValue = noise(myNormal) ;float pattern = fit(smoothMod(noiseValue * 5.,1.0,1.5),0.4,0.6,0.,1.);transformed += vec3(pattern) * normal;vColor = vec3(pattern);vec4 modelViewPosition = modelViewMatrix * vec4(transformed, 1.0);gl_Position = projectionMatrix * modelViewPosition;}`,fragmentShader: `varying vec3 vNormal;varying vec3 vColor;void main() {vec3 color = vec3(vColor);gl_FragColor = vec4(color, 1.0);}`,});return material;}

替换MeshStandardMaterial

 ReplaceMaterial(): MeshStandardMaterial {const material = new MeshStandardMaterial({color: "#aaa",emissive: "#ff3311",metalness: 0.5,roughness: 0.5,});material.onBeforeCompile = (shader) => {Object.assign(shader.uniforms, this.appendUniforms);shader.vertexShader = shader.vertexShader.replace("#include <common>",`#include <common>uniform float iTime;uniform float iStepCount;#define PI 3.141592653589793${perlinNoiseFragment}${smoothModFragment}${fitFragment}`);shader.vertexShader = shader.vertexShader.replace("#include <begin_vertex>",`#include <begin_vertex>vec3 myNormal = normal;myNormal.y += iTime;float noiseValue = noise(myNormal);float pattern = fit(smoothMod(noiseValue * iStepCount,1.0,1.5),0.4,0.6,0.,1.);transformed += vec3(pattern) * normal;`);};return material;}

更多推荐

Three.js柏林噪音 流动球体

本文发布于:2023-12-07 11:11:04,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1671082.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:球体   噪音   js   柏林

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!