दिलचस्प पोस्ट
एसक्यूएल तालिका "प्रविष्टि" प्रविष्टि बनाम एसक्यूएल तालिका प्रत्येक प्रविष्टि के लिए एक पंक्ति के साथ वीम संपादक से बाहर कैसे निकलते हैं? एंड्रॉइड: एक गतिविधि की वापसी पर कब्जा LINQ कुल एल्गोरिथ्म समझाया मेवेन और सिस्टम स्कोप में जार जोड़ना कैसे एमएपीपी पर काम करने के लिए htaccess पाने के लिए जावास्क्रिप्ट में असाइनमेंट को नष्ट करना PHP में RegexIterator का उपयोग कैसे करें HTML5 के साथ रियर कैमरा सक्षम करें जेपीए हैशोड () / बराबर () दुविधा बराबर (=) बनाम पायथन पंडों में मौजूदा डेटाफ्रेम में नया कॉलम जोड़ना पंडों समूह द्वारा सूची में पंक्तियों को समूहबद्ध करना जावा में पूर्णांक मूल्यों की तुलना करना, अजीब व्यवहार जावा में मेमोरी कैसे मुक्त हो?

आप एक छवि को तीन। जेएस कैनवास से कैसे बचा सकते हैं?

आप एक छवि को तीन। जेएस कैनवास से कैसे बचा सकते हैं?

मैं कैनवास 2 छवि का उपयोग करने का प्रयास कर रहा हूं लेकिन यह थ्रीजेस के साथ खेलना पसंद नहीं करता। चूंकि कैनवास को परिभाषित नहीं किया जाता है, जब तक कि इसमें एक कैनवास ऑब्जेक्ट को डिवाइज करने के लिए डिव नहीं होता है।

Canvas2Image: Save out your canvas data to images

वेब के समाधान से एकत्रित समाधान "आप एक छवि को तीन। जेएस कैनवास से कैसे बचा सकते हैं?"

चूंकि toDataURL कैनवास HTML तत्व की एक विधि है, जो 3 डी संदर्भ के लिए भी काम करेगा। लेकिन आपको दो चीजों का ध्यान रखना होगा

  1. सुनिश्चित करें कि जब 3 डी प्रसंग आरंभ होता है, तो आप सही करने के लिए preserveDrawingBuffer ध्वज को preserveDrawingBuffer करते हैं, जैसे:

     var context = canvas.getContext("experimental-webgl", {preserveDrawingBuffer: true}); 
  2. फिर उपयोगकर्ता canvas.toDataURL()canvas.toDataURL() छवि पाने के लिए

तीन जेएस में आपको रेंडरर को तत्काल तभी निम्नलिखित करना होगा:

 new THREE.WebGLRenderer({ preserveDrawingBuffer: true }); 

यह भी ध्यान रखें कि इस पर प्रभाव पड़ सकता है (पढ़ें: https://github.com/mrdoob/three.js/pull/421#issuecomment-1792008 )

यह केवल वेबल रेंडरर के लिए है , हालांकि, तीन जेएस कैनवास रेन्डरर के मामले में, आप बस renderer.domElement.toDataURL(); कर सकते हैं renderer.domElement.toDataURL(); सीधे, कोई प्रारंभिक पैरामीटर की आवश्यकता नहीं है

मेरा वेबलॉग प्रयोग: http://jsfiddle.net/TxcTr/3/ स्क्रीनशॉट पर ' पी ' दबाएं।

इस सवाल का उत्तर देने के लिए, मैंने अपनी टिप्पणी में लिंक का अनुसरण किया।

मैंने दिनेश ( https://github.com/mrdoob/three.js/pull/421#issuecomment-1792008 ) द्वारा पोस्ट की गई बातचीत को पढ़ा और एक ऐसे समाधान के साथ आया जो आपके आवेदन को धीमा नहीं करेगा।

  function render() { requestAnimationFrame(render); renderer.render(scene, camera); if(getImageData == true){ imgData = renderer.domElement.toDataURL(); getImageData = false; } } 

इसके साथ आप झूठ पर ड्रॉइंगबफ़र-फ्लैग की रक्षा कर सकते हैं और अभी भी तीन। जेएस से छवि प्राप्त कर सकते हैं। बस getImageData को सही पर सेट करें और रेंडर करें () कॉल करें और आप जाने के लिए अच्छा है

 getImageData = true; render(); console.debug(imgData); 

उम्मीद है कि यह मेरे जैसे लोग हैं जो उच्च एफपीएस की आवश्यकता है 🙂