three实现三维破碎空间后处理特效效果代码

代码语言:html

所属分类:三维

代码描述:three实现三维破碎空间后处理特效效果代码

代码标签: three 三维 破碎 空间 后处理 特效

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>
  <meta charset="UTF-8">


 
  <script type="importmap">
  {
    "imports": {
      "three": "//repo.bfw.wiki/bfwrepo/js/module/three/build/158/three.module.js",
      "three/addons/": "//repo.bfw.wiki/bfwrepo/js/module/three/examples/158/jsm/"
    }
  }
</script>
  
  
  
<style>
body{
  overflow: hidden;
  margin: 0;
}
</style>

 
  
  
</head>

<body translate="no">
  
  
      <script type="module">
import * as THREE from "three";
import { OrbitControls } from "three/addons/controls/OrbitControls.js";

import { EffectComposer } from "three/addons/postprocessing/EffectComposer.js";
import { RenderPass } from "three/addons/postprocessing/RenderPass.js";
import { ShaderPass } from "three/addons/postprocessing/ShaderPass.js";

import { SepiaShader } from "three/addons/shaders/SepiaShader.js";
import { GammaCorrectionShader } from "three/addons/shaders/GammaCorrectionShader.js";

console.clear();

// load fonts
await (async function () {
  async function loadFont(fontface) {
    await fontface.load();
    document.fonts.add(fontface);
  }
  let fonts = [
    new FontFace(
      "Michroma",
      "url(https://fonts.gstatic.com/s/michroma/v19/PN_zRfy9qWD8fEagAPg9pTk.woff2)"
    )
  ];
  for (let font in fonts) {
    //console.log(fonts[font]);
    await loadFont(fonts[font]);
  }
})();

const ShaderShatter = {
  name: "ShatterShader",

  uniforms: {
    tDiffuse: { value: null },
    time: { value: 0.0 },
    aspect: { value: 1 },
    signature: { value: 
                        (function(){
                            let c = document.createElement("canvas");
                            c.width = 1024;
                            c.height = 128;
                            let $ = c.getContext("2d");
                                $.clearRect(0, 0, c.width, c.height);
                                $.font = `bold ${c.height * 0.7}px Michroma`;
                                $.textAlign = "center";
                                $.textBaseline = "middle";

                                $.fillStyle = "#fff";
                                $.fillText("849 # Shattered", c.width * 0.5, c.height * 0.5);
                          
                            let cTex = new THREE.CanvasTexture(c);
                            cTex.colorSpace = THREE.SRGBColorSpace;
                            return cTex;
                        }())}
    },

  vertexShader: `

		varying vec2 vUv;

		void main() {

			vUv = uv;
			gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );

		}`,

  fragmentShader: `

	.........完整代码请登录后点击上方下载按钮下载查看

网友评论0