JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://threejs.org/build/three.min.js"></script>
<script src="https://threejs.org/examples/js/shaders/CopyShader.js"></script>
<script src="https://threejs.org/examples/js/postprocessing/EffectComposer.js"></script>
<script src="https://threejs.org/examples/js/postprocessing/RenderPass.js"></script>
<script src="https://threejs.org/examples/js/postprocessing/ShaderPass.js"></script>
<script src="https://threejs.org/examples/js/shaders/GammaCorrectionShader.js"></script>
<div id="d0"></div>
JavaScript
$(function() {
let camera, scene, renderer;
let mesh, mesh2;
init();
animate();
function init() {
camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 1, 1000 );
camera.position.z = 400;
scene = new THREE.Scene();
const texture = new THREE.TextureLoader().load( 'https://threejs.org/examples/textures/crate.gif' );
texture.encoding = THREE.sRGBEncoding;
const geometry = new THREE.BoxGeometry( 200, 200, 200 );
const material = new THREE.MeshBasicMaterial( {
map: texture,
opacity: 0.4,
transparent: true
} );
const geometry2 = new THREE.BoxGeometry( 200, 200, 200 );
const material2 = new THREE.MeshBasicMaterial( {
color: 0xff0000,
opacity: 0.4,
transparent: true
} );
mesh = new THREE.Mesh( geometry, material );
mesh.position.x = 200;
scene.add( mesh );
mesh2 = new THREE.Mesh( geometry2, material2 );
mesh2.position.x = -200;
scene.add( mesh2 );
renderer = new THREE.WebGLRenderer( {
antialias: true,
alpha: true,
preserveDrawingBuffer: true
} );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
renderer.setClearColor(0xffffff);
renderer.outputEncoding = THREE.sRGBEncoding;
var container = $('#d0');
container.append(renderer.domElement);
var parameters = {
minFilter: THREE.LinearFilter,
magFilter: THREE.LinearFilter,
format: THREE.RGBAFormat,
stencilBuffer: false,
type: THREE.FloatType
};
var renderTarget = new THREE.WebGLMultisampleRenderTarget( window.innerWidth , window.innerHeight, parameters );
composer = new THREE.EffectComposer(renderer, renderTarget);
var renderPass = new THREE.RenderPass(scene, camera);
renderPass.clearColor = new THREE.Color(0xffffff);
composer.addPass(renderPass);
var effect = new...