Buckets:
ktongue/docker_container / simsite /frontend /node_modules /three /examples /jsm /shaders /VelocityShader.js
| import { | |
| UniformsLib, | |
| UniformsUtils, | |
| Matrix4 | |
| } from 'three'; | |
| /** | |
| * Mesh Velocity Shader @bhouston | |
| */ | |
| const VelocityShader = { | |
| name: 'VelocityShader', | |
| uniforms: UniformsUtils.merge( [ | |
| UniformsLib.common, | |
| UniformsLib.displacementmap, | |
| { | |
| modelMatrixPrev: { value: new Matrix4() }, | |
| currentProjectionViewMatrix: { value: new Matrix4() }, | |
| previousProjectionViewMatrix: { value: new Matrix4() } | |
| } | |
| ] ), | |
| vertexShader: /* glsl */` | |
| #define NORMAL | |
| #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) | |
| varying vec3 vViewPosition; | |
| #endif | |
| #include <common> | |
| #include <packing> | |
| #include <uv_pars_vertex> | |
| #include <displacementmap_pars_vertex> | |
| #include <normal_pars_vertex> | |
| #include <morphtarget_pars_vertex> | |
| #include <skinning_pars_vertex> | |
| #include <logdepthbuf_pars_vertex> | |
| #include <clipping_planes_pars_vertex> | |
| uniform mat4 previousProjectionViewMatrix; | |
| uniform mat4 currentProjectionViewMatrix; | |
| uniform mat4 modelMatrixPrev; | |
| varying vec4 clipPositionCurrent; | |
| varying vec4 clipPositionPrevious; | |
| void main() { | |
| #include <uv_vertex> | |
| #include <beginnormal_vertex> | |
| #include <morphnormal_vertex> | |
| #include <skinbase_vertex> | |
| #include <skinnormal_vertex> | |
| #include <defaultnormal_vertex> | |
| #include <normal_vertex> | |
| #include <begin_vertex> | |
| #include <morphtarget_vertex> | |
| #include <displacementmap_vertex> | |
| #include <morphtarget_vertex> | |
| #include <skinning_vertex> | |
| #ifdef USE_SKINNING | |
| vec4 mvPosition = modelViewMatrix * skinned; | |
| clipPositionCurrent = currentProjectionViewMatrix * modelMatrix * skinned; | |
| clipPositionPrevious = previousProjectionViewMatrix * modelMatrixPrev * skinned; | |
| #else | |
| vec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 ); | |
| clipPositionCurrent = currentProjectionViewMatrix * modelMatrix * vec4( transformed, 1.0 ); | |
| clipPositionPrevious = previousProjectionViewMatrix * modelMatrixPrev * vec4( transformed, 1.0 ); | |
| #endif | |
| gl_Position = projectionMatrix * mvPosition; | |
| #include <logdepthbuf_vertex> | |
| #include <clipping_planes_vertex> | |
| } | |
| `, | |
| fragmentShader: /* glsl */` | |
| #define NORMAL | |
| uniform float opacity; | |
| #include <packing> | |
| #include <uv_pars_fragment> | |
| #include <map_pars_fragment> | |
| #include <alphamap_pars_fragment> | |
| #include <alphatest_pars_fragment> | |
| #include <logdepthbuf_pars_fragment> | |
| #include <clipping_planes_pars_fragment> | |
| varying vec4 clipPositionCurrent; | |
| varying vec4 clipPositionPrevious; | |
| void main() { | |
| vec4 diffuseColor = vec4( 1.0 ); | |
| diffuseColor.a = opacity; | |
| #include <map_fragment> | |
| #include <alphamap_fragment> | |
| #include <alphatest_fragment> | |
| vec2 ndcPositionCurrent = clipPositionCurrent.xy/clipPositionCurrent.w; | |
| vec2 ndcPositionPrevious = clipPositionPrevious.xy/clipPositionPrevious.w; | |
| vec2 vel = ( ndcPositionCurrent - ndcPositionPrevious ) * 0.5; | |
| vel = vel * 0.5 + 0.5; | |
| vec2 v1 = packDepthToRG(vel.x); | |
| vec2 v2 = packDepthToRG(vel.y); | |
| gl_FragColor = vec4(v1.x, v1.y, v2.x, v2.y); | |
| #include <logdepthbuf_fragment> | |
| } | |
| ` | |
| }; | |
| export { VelocityShader }; | |
Xet Storage Details
- Size:
- 3 kB
- Xet hash:
- 6fbbe76d7a06acee5682f720de0c3901e2db534fa274c5037a29aa48cd0179da
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.