three+webgl实现可调节参数的墨水和水模拟鼠标跟随动画效果代码

代码语言:html

所属分类:三维

代码描述:three+webgl实现可调节参数的墨水和水模拟鼠标跟随动画效果代码,通过lil-gui调节参数实现更多酷炫效果。

代码标签: three webgl 调节 参数 墨水 模拟 鼠标 跟随 动画

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

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

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

  
  
<style>
@import url(https://fonts.googleapis.com/css?family=Open+Sans:600);

.webgl {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  outline: none;
  background-color: #000000;
  cursor: move;
  /* fallback if grab cursor is unsupported */
  cursor: grabbing;
  cursor: -moz-grabbing;
  cursor: -webkit-grabbing;
}

#credits {
  position: absolute;
  width: 100%;
  margin: auto;
  bottom: 0;
  margin-bottom: 20px;
  font-family: "Open Sans", sans-serif;
  color: #544027;
  font-size: 0.7em;
  text-transform: uppercase;
  text-align: center;
}
#credits a {
  color: #7beeff;
}

#credits a:hover {
  color: #ff3434;
}
</style>

  
  
</head>

<body >
  <canvas class="webgl"></canvas>

<div id="credits">
  <p><a href="" target="blank">copyright</a></p>
</div>

<script type="x-shader/x-vertex" id="floorVertexShader">
  varying vec2 vUv; 

  #include <common>
  #include <shadowmap_pars_vertex>
  #include <logdepthbuf_pars_vertex>

	void main() {
		#include <beginnormal_vertex>
		#include <defaultnormal_vertex>
		#include <begin_vertex>

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

		#include <logdepthbuf_vertex>
		#include <worldpos_vertex>
		#include <shadowmap_vertex>

	}
</script>
  
<script type="x-shader/x-fragment" id="floorFragmentShader">
  uniform vec3 color;
  uniform sampler2D tScratches;
	varying vec2 vUv;
  
  #include <common>
  #include <packing>
  #include <lights_pars_begin>
  #include <shadowmap_pars_fragment>
  #include <shadowmask_pars_fragment>
	#include <logdepthbuf_pars_fragment>

	void main() {
			#include <logdepthbuf_fragment>
      vec3 col = color;
      vec4 scratchesCol = texture2D( tScratches, vUv);
      float inkValue = max( max(scratchesCol.r, scratchesCol.g), scratchesCol.b);
      col = mix(col, scratchesCol.rgb, inkValue);
      col.r = min(col.r, 1.0);
      col.g = min(col.g, 1.0);
      col.b = min(col.b, 1.0);
      
      col.gb -= (1.0 - getShadowMask() ) * .1;
      gl_FragColor = vec4(col, 1.0);
		 	#include <tonemapping_fragment>
			#include <colorspace_fragment>
		}
</script>  
<script type="x-shader/x-vertex" id="simulationVertexShader">
  precision highp float;

  uniform float time;
  varying vec2 vUv;

  void main() {
    vUv = uv;
    vec4 modelViewPosition = modelViewMatrix * vec4(position, 1.0);
    gl_Position = projectionMatrix * modelViewPosition; 
  }
.........完整代码请登录后点击上方下载按钮下载查看

网友评论0