|  | @@ -1,26 +1,120 @@
 | 
	
		
			
				|  |  |  <template>
 | 
	
		
			
				|  |  |    <div class="welcome">
 | 
	
		
			
				|  |  | -    <a
 | 
	
		
			
				|  |  | -      title="欢迎Star"
 | 
	
		
			
				|  |  | -      href="https://github.com/xiaoxian521/CURD-TS"
 | 
	
		
			
				|  |  | -      target="_blank"
 | 
	
		
			
				|  |  | -      >点击打开仓库地址</a
 | 
	
		
			
				|  |  | +    <a title="欢迎Star" href="https://github.com/xiaoxian521/CURD-TS" target="_blank">点击打开仓库地址</a>
 | 
	
		
			
				|  |  | +    <Renderer
 | 
	
		
			
				|  |  | +      ref="renderer"
 | 
	
		
			
				|  |  | +      antialias
 | 
	
		
			
				|  |  | +      resize
 | 
	
		
			
				|  |  | +      :orbit-ctrl="{ enableDamping: true, dampingFactor: 0.05 }"
 | 
	
		
			
				|  |  |      >
 | 
	
		
			
				|  |  | +      <Camera :position="{ x: -0, y: -100, z: 30 }" />
 | 
	
		
			
				|  |  | +      <Scene background="#ffffff">
 | 
	
		
			
				|  |  | +        <PointLight
 | 
	
		
			
				|  |  | +          ref="light1"
 | 
	
		
			
				|  |  | +          color="#0E09DC"
 | 
	
		
			
				|  |  | +          :intensity="0.85"
 | 
	
		
			
				|  |  | +          :position="{ x: 0, y: 0, z: 50 }"
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +        <PointLight
 | 
	
		
			
				|  |  | +          ref="light2"
 | 
	
		
			
				|  |  | +          color="#1CD1E1"
 | 
	
		
			
				|  |  | +          :intensity="0.85"
 | 
	
		
			
				|  |  | +          :position="{ x: 0, y: 0, z: 50 }"
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +        <PointLight
 | 
	
		
			
				|  |  | +          ref="light3"
 | 
	
		
			
				|  |  | +          color="#18C02C"
 | 
	
		
			
				|  |  | +          :intensity="0.85"
 | 
	
		
			
				|  |  | +          :position="{ x: 0, y: 0, z: 50 }"
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +        <PointLight
 | 
	
		
			
				|  |  | +          ref="light4"
 | 
	
		
			
				|  |  | +          color="#ee3bcf"
 | 
	
		
			
				|  |  | +          :intensity="0.85"
 | 
	
		
			
				|  |  | +          :position="{ x: 0, y: 0, z: 50 }"
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        <NoisyPlane
 | 
	
		
			
				|  |  | +          :width="200"
 | 
	
		
			
				|  |  | +          :width-segments="100"
 | 
	
		
			
				|  |  | +          :height="200"
 | 
	
		
			
				|  |  | +          :height-segments="100"
 | 
	
		
			
				|  |  | +          :time-coef="0.0003"
 | 
	
		
			
				|  |  | +          :noise-coef="5"
 | 
	
		
			
				|  |  | +          :displacement-scale="15"
 | 
	
		
			
				|  |  | +          :delta-coef="1 / 200"
 | 
	
		
			
				|  |  | +          :position="{ x: 0, y: 0, z: 0 }"
 | 
	
		
			
				|  |  | +        >
 | 
	
		
			
				|  |  | +          <PhysicalMaterial />
 | 
	
		
			
				|  |  | +        </NoisyPlane>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        <RefractionMesh ref="mesh" :position="{ x: 0, y: -20, z: 20 }" auto-update>
 | 
	
		
			
				|  |  | +          <TorusGeometry :radius="8" :tube="3" :radial-segments="8" :tubular-segments="6" />
 | 
	
		
			
				|  |  | +          <StandardMaterial color="#ffffff" :metalness="1" :roughness="0" flat-shading />
 | 
	
		
			
				|  |  | +        </RefractionMesh>
 | 
	
		
			
				|  |  | +      </Scene>
 | 
	
		
			
				|  |  | +    </Renderer>
 | 
	
		
			
				|  |  |    </div>
 | 
	
		
			
				|  |  |  </template>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <script lang='ts'>
 | 
	
		
			
				|  |  | +import {
 | 
	
		
			
				|  |  | +  Camera,
 | 
	
		
			
				|  |  | +  PhysicalMaterial,
 | 
	
		
			
				|  |  | +  PointLight,
 | 
	
		
			
				|  |  | +  RefractionMesh,
 | 
	
		
			
				|  |  | +  Renderer,
 | 
	
		
			
				|  |  | +  Scene,
 | 
	
		
			
				|  |  | +  StandardMaterial,
 | 
	
		
			
				|  |  | +  TorusGeometry,
 | 
	
		
			
				|  |  | +} from "troisjs";
 | 
	
		
			
				|  |  | +import NoisyPlane from "troisjs/src/components/noisy/NoisyPlane.js";
 | 
	
		
			
				|  |  | +import NoisySphere from "troisjs/src/components/noisy/NoisySphere.js";
 | 
	
		
			
				|  |  | +import NoisyText from "troisjs/src/components/noisy/NoisyText.js";
 | 
	
		
			
				|  |  |  export default {
 | 
	
		
			
				|  |  |    name: "welcome",
 | 
	
		
			
				|  |  | +  components: {
 | 
	
		
			
				|  |  | +    Camera,
 | 
	
		
			
				|  |  | +    NoisyPlane,
 | 
	
		
			
				|  |  | +    NoisySphere,
 | 
	
		
			
				|  |  | +    NoisyText,
 | 
	
		
			
				|  |  | +    PhysicalMaterial,
 | 
	
		
			
				|  |  | +    PointLight,
 | 
	
		
			
				|  |  | +    RefractionMesh,
 | 
	
		
			
				|  |  | +    Renderer,
 | 
	
		
			
				|  |  | +    Scene,
 | 
	
		
			
				|  |  | +    StandardMaterial,
 | 
	
		
			
				|  |  | +    TorusGeometry,
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  mounted() {
 | 
	
		
			
				|  |  | +    const renderer = this.$refs.renderer;
 | 
	
		
			
				|  |  | +    const light1 = this.$refs.light1.light;
 | 
	
		
			
				|  |  | +    const light2 = this.$refs.light2.light;
 | 
	
		
			
				|  |  | +    const light3 = this.$refs.light3.light;
 | 
	
		
			
				|  |  | +    const light4 = this.$refs.light4.light;
 | 
	
		
			
				|  |  | +    const mesh = this.$refs.mesh.mesh;
 | 
	
		
			
				|  |  | +    renderer.onBeforeRender(() => {
 | 
	
		
			
				|  |  | +      const time = Date.now() * 0.001;
 | 
	
		
			
				|  |  | +      const d = 100;
 | 
	
		
			
				|  |  | +      light1.position.x = Math.sin(time * 0.1) * d;
 | 
	
		
			
				|  |  | +      light1.position.y = Math.cos(time * 0.2) * d;
 | 
	
		
			
				|  |  | +      light2.position.x = Math.cos(time * 0.3) * d;
 | 
	
		
			
				|  |  | +      light2.position.y = Math.sin(time * 0.4) * d;
 | 
	
		
			
				|  |  | +      light3.position.x = Math.sin(time * 0.5) * d;
 | 
	
		
			
				|  |  | +      light3.position.y = Math.sin(time * 0.6) * d;
 | 
	
		
			
				|  |  | +      light4.position.x = Math.sin(time * 0.7) * d;
 | 
	
		
			
				|  |  | +      light4.position.y = Math.cos(time * 0.8) * d;
 | 
	
		
			
				|  |  | +      mesh.rotation.x += 0.02;
 | 
	
		
			
				|  |  | +      mesh.rotation.y += 0.01;
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  </script>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <style scoped>
 | 
	
		
			
				|  |  |  .welcome {
 | 
	
		
			
				|  |  | -  width: 100%;
 | 
	
		
			
				|  |  | -  height: 100%;
 | 
	
		
			
				|  |  | -  background: url("../assets/welcome.png") no-repeat center;
 | 
	
		
			
				|  |  | -  background-size: cover;
 | 
	
		
			
				|  |  | +  width: 100vw;
 | 
	
		
			
				|  |  | +  height: 100vh;
 | 
	
		
			
				|  |  |    position: absolute;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  </style>
 |