|
@@ -0,0 +1,59 @@
|
|
|
+export const vertex = /* glsl */`
|
|
|
+varying vec3 vWorldDirection;
|
|
|
+
|
|
|
+#include <common>
|
|
|
+
|
|
|
+void main() {
|
|
|
+
|
|
|
+ vWorldDirection = transformDirection( position, modelMatrix );
|
|
|
+
|
|
|
+ #include <begin_vertex>
|
|
|
+ #include <project_vertex>
|
|
|
+
|
|
|
+ gl_Position.z = gl_Position.w; // set z to camera.far
|
|
|
+
|
|
|
+}
|
|
|
+`;
|
|
|
+
|
|
|
+export const fragment = /* glsl */`
|
|
|
+
|
|
|
+#ifdef ENVMAP_TYPE_CUBE
|
|
|
+
|
|
|
+ uniform samplerCube envMap;
|
|
|
+
|
|
|
+#elif defined( ENVMAP_TYPE_CUBE_UV )
|
|
|
+
|
|
|
+ uniform sampler2D envMap;
|
|
|
+
|
|
|
+#endif
|
|
|
+
|
|
|
+uniform float flipEnvMap;
|
|
|
+uniform float backgroundBlurriness;
|
|
|
+
|
|
|
+varying vec3 vWorldDirection;
|
|
|
+
|
|
|
+#include <cube_uv_reflection_fragment>
|
|
|
+
|
|
|
+void main() {
|
|
|
+
|
|
|
+ #ifdef ENVMAP_TYPE_CUBE
|
|
|
+
|
|
|
+ vec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );
|
|
|
+
|
|
|
+ #elif defined( ENVMAP_TYPE_CUBE_UV )
|
|
|
+
|
|
|
+ vec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );
|
|
|
+
|
|
|
+ #else
|
|
|
+
|
|
|
+ vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );
|
|
|
+
|
|
|
+ #endif
|
|
|
+
|
|
|
+ gl_FragColor = texColor;
|
|
|
+
|
|
|
+ #include <tonemapping_fragment>
|
|
|
+ #include <encodings_fragment>
|
|
|
+
|
|
|
+}
|
|
|
+`;
|