pos =projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.0);
pos 로 선언해서 쉐이더 단에서 사용할 수 있게끔 2D 투영된 위치로 연산한다.
vec4 cPos = pos/pos.w;
vec2 uv = vec2((cPos.x+1.0)/2.0, (cPos.y+1.0)/2.0);
깊이 버퍼도 필요 없는 이유가 z 버퍼도 같이 vec4 를 통해 쉐이더로 들어가기 때문에 바로 uv 좌표로 변환하면 된다.
이러면 uv 좌표가 메시 영역의 전체 uv 영역이 된다. 이 공간에 배경을 그림을 그려준다.
vec4 cPos = pos/pos.w;
vec2 uv = vec2((cPos.x+1.0)/2.0, (cPos.y+1.0)/2.0);
uv += sin((uv.xy)*100.0+(uTime*10.0))*0.005;
vec4 tex = texture(backgroundTexture, uv);
gl_FragColor = tex +0.1;
gl_FragColor.a=1.0;
/* 실제 렌더 */
backCube.material = useCube;
useCube.uniforms.backgroundTexture.value = backgroundTarget.texture;
useCube.uniforms.uTime.value = nowTime/1000;
cube.material =material;
renderer.setRenderTarget(renderTarget);
renderer.render(scene, camera);