three.js is a library of webgl which draw in <canvas>
.
<canvas>
can sava as image whenever you want.
set three.js WebGLRenderer preserveDrawingBuffer as true:
const renderer = new THREE.WebGLRenderer({alpha: true,preserveDrawingBuffer: true });
save canvas as image:
<button id="save"> save image</button>
document.getElementById('save').onclick=()=>{
saveImage()
}
function saveImage() {
const canvas = document.getElementsByTagName("canvas")[0]
const image = canvas.toDataURL("image/png");
const a = document.createElement("a");
a.href = image.replace(/^data:image\/[^;]/, 'data:application/octet-stream');
a.download="image.png"
a.click();
}
codepen link :https://codepen.io/alwxkxk/pen/JjPMyNW