Kể từ khi toDataURL là một phương pháp của nguyên tố canvas html, mà sẽ làm việc cho bối cảnh 3d quá. Nhưng bạn phải chăm sóc vài thứ.
Hãy chắc chắn rằng khi bối cảnh 3D được khởi tạo bạn thiết preserveDrawingBuffer
cờ là true, như vậy:
var context = canvas.getContext("experimental-webgl", {preserveDrawingBuffer: true});
Sau đó, người dùng canvas.toDataURL()
để có được những hình ảnh
Trong threejs bạn sẽ phải làm theo sau khi trình kết xuất được khởi tạo:
new THREE.WebGLRenderer({
preserveDrawingBuffer: true
});
Cũng xin lưu ý rằng điều này có thể có tác động hiệu suất. (Đọc: https://github.com/mrdoob/three.js/pull/421#issuecomment-1792008)
Đây là chỉ cho webgl renderer, trong trường hợp threejs canvasRenderer tuy nhiên, bạn chỉ có thể làm renderer.domElement.toDataURL();
trực tiếp, không có tham số khởi tạo cần thiết.
Thử nghiệm webgl của tôi: http://jsfiddle.net/TxcTr/3/ nhấn 'p' vào ảnh chụp màn hình.
Đạo cụ để gaitat, tôi vừa theo liên kết trong nhận xét của anh ấy để nhận câu trả lời này.
Nguồn
2013-03-22 05:51:55
Tôi không chắc chắn bạn có thể. Canvas 2D hỗ trợ điều này, nhưng tôi biết rằng một khung hình WebGL thì không. –
Hãy xem https://github.com/jeromeetienne/threejsboilerplate/blob/master/vendor/threex/THREEx.screenshot.js – gaitat