JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdn.jsdelivr.net/npm/three@0.116.1/build/three.js"></script>
<div id="tab">
<canvas id="threecanvas"></canvas>
<img src="https://i.postimg.cc/FRRc5gW6/pattern1.jpg">
</div>
CSS
body { margin: 0; }
#tab { display: flex; flex-direction: row; align-content: middle; }
canvas { display: inline-block; width: 300px; height:300px;}
img { width: 300px; height: 300px; display: inline-block; }
JavaScript
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera( 75, 1.0, 0.1, 1000 );
var threecanvas = document.getElementById("threecanvas");
var renderer = new THREE.WebGLRenderer({canvas: threecanvas });
var r=window.devicePixelRatio;
renderer.setPixelRatio(r);
renderer.outputEncoding=THREE.sRGBEncoding;
renderer.setSize( 300, 300);
var geometry = new THREE.PlaneGeometry(2,2);
var material = new THREE.MeshBasicMaterial();
var cube = new THREE.Mesh( geometry, material );
var textureLoader = new THREE.TextureLoader();
textureLoader.load( "https://i.postimg.cc/FRRc5gW6/pattern1.jpg", function ( map ) {
map.encoding = THREE.sRGBEncoding;
material.map = map;
material.needsUpdate = true;
} );
scene.add( cube );
camera.position.z = 1.3;
var animate = function() {
requestAnimationFrame( animate );
renderer.render( scene, camera );
};
animate();