वेबलॉग में टकराव का पता लगाने के बिना, किसी भी पुस्तकालय का उपयोग किए बिना तीन.जेएस?वेबग्ल में टक्कर का पता लगाने के लिए कैसे?
उत्तर
कैसे WebGL में टक्कर का पता लगाने के
आप नहीं है। वेबजीएल, ओपनजीएल की तरह ही सामान खींचने के लिए है। यह एक दृश्य का प्रबंधन नहीं करता है, इसमें "ऑब्जेक्ट्स" या टकराव जैसी उच्च स्तरीय चीजों की कोई धारणा नहीं है। यह सब बिंदुओं, रेखाओं, त्रिकोण और शेडर्स के बारे में है।
दृश्य प्रबंधन या टकराव से संबंधित कुछ भी वेबजीएल (और ओपनजीएल) के दायरे से बाहर है।
तो मैं इसे जेएस में कैसे गणना कर सकता हूं? –
@ डैनीफ़ॉक्स: वैसे ही आप इसे किसी अन्य भाषा में गणना करेंगे: विभिन्न ज्यामितीय चौराहे परीक्षण समीकरणों को हल करके, और परिणाम से टकराव निकालने के द्वारा। विषय के बारे में एक उत्कृष्ट पुस्तक है: http://realtimecollisiondetection.net/ – datenwolf
आप निश्चित रूप से शेडर्स का उपयोग करके ओपनजीएल (और शायद वेबजीएल) के साथ टकराव को हल कर सकते हैं। वस्तुओं को अलग-अलग रंग दें और फिर मिश्रण का उपयोग करके दोनों को गठबंधन करें। यदि परिणामस्वरूप छवि पर एक या अधिक पिक्सल हैं जो दो ऑब्जेक्ट्स से अलग रंग है (उदाहरण के लिए ऑब्जेक्ट से कुछ पिक्सेल अन्य ऑब्जेक्ट पिक्सल के साथ मिश्रित होते हैं), तो टक्कर होती है। – Willem
GPU पर रे टकराव का पता लगाने के लिए यह एक आसान तरीका है। विषय के बारे में निम्न ब्लॉग पोस्ट को चेकआउट करें।
http://blog.xeolabs.com/ray-picking-in-scenejs
मुख्य विचार एक बनावट के दृश्य (एक FBO का प्रयोग करके) प्रस्तुत करने के लिए एक शेडर कि रंग के बजाय वस्तु आईडी बचाता का उपयोग कर रहा है। फिर आप इस बनावट में एक लुकअप कर सकते हैं यह देखने के लिए कि किरण किनारे से टकराती है।
यह केवल दृश्य बिंदु से आने वाली किरणों या गैर-रूढ़िवादी ज्यामिति के परीक्षण के लिए काम करता है। – datenwolf
हां, समाधान केवल रे टकराव के साथ काम करता है, लेकिन सवाल यह नहीं बताता कि टकराव का पता लगाने की किस तरह की आवश्यकता थी। मेरा मुद्दा यह था कि कुछ टक्कर परीक्षण जीपीयू पर पूरी तरह से ठीक चल सकते हैं (लेकिन यह एक सामान्य समाधान नहीं है) – Mortennobel
धन्यवाद, लेकिन यह scene.js में है। मैं इसे बिना किसी लाइब्रेरी के करना चाहता हूं –
रविवार से मैं एक ही समस्या को हल करने की कोशिश कर रहा हूं। हालांकि www में बहुत अधिक जानकारी है, लेकिन मैं इसे अपने उदाहरण-कार्यक्रम पर काम करने में सक्षम नहीं था। जैसे ही मैं इसे हल करता हूं, मैं यहां अपना उदाहरण पोस्ट करूंगा।
मेरी आखिरी कोशिश वेबजीएल के लिए ग्लू-अनप्रोजेक्ट पोर्ट का उपयोग करना था।
समारोह (Winx, Winy, winZ, मॉडल, proj, देखने के लिए, objPos)
मैं अपने दृश्य-ड्राइंग समारोह से सीधे इस समारोह कॉल करने के लिए कोशिश की है: यह एक निम्नलिखित मानकों की जरूरत है परीक्षण उद्देश्यों के लिए।
var pMatrix = new mat4.ortho(iL, iR, iB, iT, fNearZ, farZ);
var mvMatrix = new mat4.create();
mat4.identity(mvMatrix);
mat4.translate(mvMatrix,[0,0,-40]);
var oMouseMatrix = mat4.create();
mat4.identity(oMouseMatrix);
//Rotate eye :-S
mat4.rotate(oMouseMatrix,((this.fAnimationXAngle/10) * Math.PI)/360.0,[0,1,0]);
mat4.rotate(oMouseMatrix,((this.fAnimationYAngle/10) * Math.PI)/360.0,[1,0,0]);
mat4.multiply(oMouseMatrix, mvMatrix, mvMatrix);
//Rotate model
mat4.rotateX(mvMatrix,this.fRotX * Math.PI/180.0);
mat4.rotateY(mvMatrix,this.fRotY * Math.PI/180.0);
mat4.rotateZ(mvMatrix,this.fRotZ * Math.PI/180.0);
var aTest = this.unProject(
this.pLastMouse.x,
this.pLastMouse.y,
0,
mvMatrix,
pMatrix,
[0,0,this.iWidth,this.iHeight]
);
this.iWidth & this.iHeight कैनवास और व्यूपोर्ट चौड़ाई/ऊंचाई कर रहे हैं - this.pLastMouse.x & .y कैनवास
zI.debug(aTest);
अंदर माउस निर्देशांक हैं लेकिन नतीजा है पूरी तरह से बकवास। मुझे लगता है कि मेरे कोड में कई त्रुटियां हैं। मैंने पिछले शुक्रवार को वेबजीएल के साथ खेलना शुरू कर दिया है। मैं इसे जल्दी छोड़ना नहीं चाहता था, लेकिन तब से मैंने कई समस्याएं हल की हैं, लेकिन यह मुझे पागल बना रहा है।
ओपनजीएल में यह मेरे लिए बहुत आसान था।
धन्यवाद, मैं इसे आज़माउंगा –
मैं निम्नलिखित वेबपेज (दुर्भाग्य से केवल जर्मन भाषा में उपलब्ध) http://www.peter-strohm.de/webgl/webgltutorial8.php
हम टक्कर पता लगाने को लागू करने में सक्षम थे की सिफारिश करेंगे और यहां तक कि एक के लिए अतिरिक्त जानकारी के साथ आईडी मानचित्रण (जैसे शो टूलटिप्स का उपयोग कर एक सर्वर पर API कॉल प्रदर्शन कर सकता है दृश्य में कुछ वस्तु)।
मुझे आशा है कि इससे थोड़ा सा मदद मिलेगी।
- 1. टक्कर का पता लगाने के लिए कैसे करें लेकिन box2d में टक्कर नहीं है?
- 2. टकराव का पता लगाने और टक्कर प्रतिक्रिया
- 3. बड़ी संख्या में मंडलियों की टक्कर का पता लगाने
- 4. माईस्क्ल/innodb में deadlocks का पता लगाने के लिए कैसे?
- 5. क्लासपाथ में डुप्लिकेट जेएआर का पता लगाने के लिए कैसे?
- 6. ओपनसीवी में ज्ञात वस्तुओं का पता लगाने के लिए कैसे?
- 7. किसी छवि में आकार का पता लगाने के लिए कैसे?
- 8. जावास्क्रिप्ट में JSON समर्थन का पता लगाने के लिए कैसे?
- 9. jQuery में क्षैतिज स्क्रॉलिंग का पता लगाने के लिए कैसे?
- 10. div तत्व में अतिप्रवाह का पता लगाने के लिए कैसे?
- 11. PHP में कोड निष्पादन का पता लगाने के लिए कैसे?
- 12. क्यूटी में उपयोगकर्ता निष्क्रियता का पता लगाने के लिए कैसे?
- 13. फ़ायरफ़ॉक्स में रीडायरेक्ट का पता लगाने के लिए कैसे?
- 14. का पता लगाने के लिए Ctrl +
- 15. आंकड़ा संरचना और कलन विधि अनियमित आकार चलती की टक्कर का पता लगाने के वस्तुओं
- 16. 2 डी टकराव का पता लगाने के लिए क्वाड्री
- 17. स्ट्रीम के अंत का पता लगाने के लिए कैसे?
- 18. ड्रैग के बाद 'फ्लिक' का पता लगाने के लिए कैसे?
- 19. स्वाइप पता लगाने के लिए
- 20. आवाज का पता लगाने
- 21. सबव्यूज़ में एक टैप जेस्चर का पता लगाने के लिए
- 22. 2 डी टकराव का पता लगाने के लिए क्वाड्री
- 23. छवि में हॉटस्पॉट का पता लगाने के लिए
- 24. Django सीएमएस - होमपेज का पता लगाने के लिए कैसे?
- 25. पायथन: डीबग दुभाषिया का पता लगाने के लिए कैसे करें
- 26. T-SQL समारोह का पता लगाने के लिए कैसे
- 27. मॉडल से विशेषता परिवर्तन का पता लगाने के लिए कैसे?
- 28. स्थान परिवर्तन का पता लगाने के लिए कैसे करें
- 29. क्लाइंट टाइमज़ोन का पता लगाने के लिए कैसे?
- 30. स्क्रिप्ट प्रवाह का पता लगाने के लिए कैसे करें
ऐसा करना मुश्किल हो सकता है। वैसे भी, आप उसके लिए पुस्तकालय क्यों नहीं चाहते हैं? –
मैं एंटी-लाइब्रेरी – ajax333221
@ AJAX333221 पुस्तकालय भी हमारे जीवन को और अधिक आसान बना देता हूं।:) –