curtains.jsを複数表示させたい。
WebGLアニメーションライブラリcurtains.jsを使用したいと思っています。
3枚画像を配置させたところ、最初の1枚目は問題なく表示されたのですが
残り2枚が表示されません。
html
1<body> 2<div id="page-wrap"> 3 <div id="canvas"></div> 4 <div class="curtain" data-vs-id="simple-plane-vs" data-fs-id="simple-plane-fs"> 5 <img src="../images/p01.jpg" data-sampler="simplePlaneTexture" /> 6 </div> 7 <div class="curtain" data-vs-id="simple-plane-vs" data-fs-id="simple-plane-fs"> 8 <img src="../images/p02.jpg" data-sampler="simplePlaneTexture" /> 9 </div> 10 <div class="curtain" data-vs-id="simple-plane-vs" data-fs-id="simple-plane-fs"> 11 <img src="../images/p03.jpg" data-sampler="simplePlaneTexture" /> 12 </div> 13</div> 14 15<script id="simple-plane-vs" type="x-shader/x-vertex"> 16 #ifdef GL_ES 17 precision mediump float; 18 #endif 19 20 // default mandatory variables 21 attribute vec3 aVertexPosition; 22 attribute vec2 aTextureCoord; 23 24 uniform mat4 uMVMatrix; 25 uniform mat4 uPMatrix; 26 27 // our texture matrix uniform 28 uniform mat4 simplePlaneTextureMatrix; 29 30 // custom variables 31 varying vec3 vVertexPosition; 32 varying vec2 vTextureCoord; 33 34 uniform float uTime; 35 uniform vec2 uResolution; 36 uniform vec2 uMousePosition; 37 uniform float uMouseMoveStrength; 38 39 40 void main() { 41 42 vec3 vertexPosition = aVertexPosition; 43 44 // get the distance between our vertex and the mouse position 45 float distanceFromMouse = distance(uMousePosition, vec2(vertexPosition.x, vertexPosition.y)); 46 47 // calculate our wave effect 48 float waveSinusoid = cos(5.0 * (distanceFromMouse - (uTime / 75.0))); 49 50 // attenuate the effect based on mouse distance 51 float distanceStrength = (0.4 / (distanceFromMouse + 0.4)); 52 53 // calculate our distortion effect 54 float distortionEffect = distanceStrength * waveSinusoid * uMouseMoveStrength; 55 56 // apply it to our vertex position 57 vertexPosition.z += distortionEffect / 15.0; 58 vertexPosition.x += (distortionEffect / 15.0 * (uResolution.x / uResolution.y) * (uMousePosition.x - vertexPosition.x)); 59 vertexPosition.y += distortionEffect / 15.0 * (uMousePosition.y - vertexPosition.y); 60 61 gl_Position = uPMatrix * uMVMatrix * vec4(vertexPosition, 1.0); 62 63 // varyings 64 // here we use our texture matrix to calculate correct texture coords values 65 vTextureCoord = (simplePlaneTextureMatrix * vec4(aTextureCoord, 0.0, 1.0)).xy; 66 vVertexPosition = vertexPosition; 67 } 68 </script> 69 <script id="simple-plane-fs" type="x-shader/x-fragment"> 70 71 #ifdef GL_ES 72 precision mediump float; 73 #endif 74 75 uniform float uTime; 76 uniform vec2 uResolution; 77 uniform vec2 uMousePosition; 78 79 varying vec3 vVertexPosition; 80 varying vec2 vTextureCoord; 81 82 uniform sampler2D simplePlaneTexture; 83 84 85 void main( void ) { 86 87 // get our texture coords 88 vec2 textureCoords = vec2(vTextureCoord.x, vTextureCoord.y); 89 90 // apply our texture 91 vec4 finalColor = texture2D(simplePlaneTexture, textureCoords); 92 93 // fake shadows based on vertex position along Z axis 94 finalColor.rgb -= clamp(-vVertexPosition.z, 0.0, 1.0); 95 // fake lights based on vertex position along Z axis 96 finalColor.rgb += clamp(vVertexPosition.z, 0.0, 1.0); 97 98 // handling premultiplied alpha (useful if we were using a png with transparency) 99 finalColor = vec4(finalColor.rgb * finalColor.a, finalColor.a); 100 101 gl_FragColor = finalColor; 102 } 103 </script> 104 105<script src="https://www.curtainsjs.com/build/curtains.js" type="text/javascript"></script> 106<script src="https://www.curtainsjs.com/examples/simple-plane/js/simple.plane.setup.js" type="text/javascript"></script> 107 108</body>
demoのSimple planeをベースにしています。
同じdemo内のMultiple planesを参考に見ているのですが
無知すぎて複数適応させる記述の仕方が分からずにいます。
どなたかご教授よろしくお願い致します。
あなたの回答
tips
プレビュー