मैंने मूल रूप से gamedev पर इस प्रश्न से पूछा, लेकिन किसी भी उत्तर ने समस्या को हल करने में मदद नहीं की, और मुझे अभी भी कोई संकेत नहीं है कि असली कारण क्या है। मुझे अक्सर पूछे जाने वाले प्रश्नों में एसई में प्रश्नों को दोबारा पोस्ट करने के बारे में कुछ नहीं देखा, इसलिए मैं उम्मीद कर सकता हूं कि यह ठीक है। इसके अलावा, पूर्व-निरीक्षण में सवाल शायद गेम विकास से सामान्य रूप से ग्राफिक्स प्रोग्रामिंग से अधिक संबंधित है।कैमरे घूर्णन करते समय दोहराए गए बनावट गंभीर रूप से विकृत/हिलते हैं
संपादित करें 1 शुरू होता है
मूल पोस्ट के व्यवहार केवल Windows XP और Windows 7 पर लागू होता है, फायरफॉक्स और क्रोम ब्राउज़र। उबंटू पर, ऐसा कोई विकृति नहीं है, लेकिन कैमरे को घूर्णन करते समय बनावट "हिलाएं" बनाते हैं। जब रोटेशन रुक जाता है, तो हिलना बंद हो जाता है, लेकिन बनावट पूरी तरह से सही स्थिति में नहीं हो सकती है।
संपादित करें 1 समाप्त होता है
संपादित 3 शुरू होता है
कार्यक्रम 4 विभिन्न कंप्यूटरों पर परीक्षण किया गया है, और के रूप में उनमें से किसी पर इरादा काम नहीं किया।
संपादित 3 समाप्त होता है
मैं WebGL में एक बड़ी वॉक्सेल जो मैं टाइलों बनावट प्रत्येक टाइल शीर्ष अंतरिक्ष में 1 की ओर लंबाई के साथ कवर करने के लिए चाहते हैं। इस परीक्षण परिदृश्य में कैमरा नकारात्मक जेड दिशा को इंगित कर रहा है और वोक्सेल के किनारे एक्स-वाई, एक्स-जेड, वाई-जेड विमानों में हैं।
छोटे voxels (यानी कम दोहराना) काफी अच्छी तरह से काम करते हैं, लेकिन लगभग 2000 x और y प्रति फेस दोहराता है (यानी वोक्सेल आकार 2000 * 2000 * 2000) बनावट वास्तव में बदसूरत लगती है। जब कैमरे को लंबवत रूप से चेहरे पर इंगित किया जाता है तो बनावट दोहराए जाने वाले आकार/मात्रा के बावजूद सही दिखती है, लेकिन कुछ डिग्री के किसी भी घूर्णन के ऊपर वर्णित आकार के voxels के लिए एक दृश्य समस्या का कारण बनता है। वोक्सेल आकार में वृद्धि विरूपण बढ़ जाती है। उलटा भी सच है: छोटे voxels के साथ बनावट कैमरा रोटेशन के बावजूद सही दिखते हैं। ऐसा लगता है कि आकार के लिए कोई कठोर सीमा मूल्य नहीं है, लेकिन प्रभाव लगभग शून्य से धीरे-धीरे बढ़ने लगता है जब वोक्सल लगभग 2000 प्रति पक्ष से आकार में बढ़ जाता है।
विज़ुअलाइज़ेशन के लिए http://imgur.com/a/spQIv देखें। पहली छवि यह है कि यह कैसा दिखना चाहिए, लेकिन जब कैमरा घुमाया जाता है, तो दूसरी छवि में रेखाएं विकृत हो जाती हैं। वोक्सेल आकार को बढ़ाकर और कैमरे को घूर्णन करके प्रभाव खराब हो जाता है। http://imgur.com/a/wRndy में दो गंभीर छवियां हैं जिनमें अधिक गंभीर प्रभाव है।
बनावट (एक एक्स प्रति बनावट) मूल रूप से 512 * 512 पीएक्स हैं। स्क्रीनशॉट किसी भी तरह से स्केल नहीं किया गया है।
मेरा पहला अनुमान नाव अशुद्धियों था, लेकिन उस के बाद से वस्तु 1000
मेरी दूसरी अनुमान के आदेश का केवल एक आयाम अजीब पूर्णांक किसी तरह का/नाव त्रुटि गोलाई, लेकिन जब से था है विश्वास करने के लिए काफी मुश्किल है सबकुछ हमेशा फ्लोट्स में संभाला जाता है, मुझे नहीं लगता कि यह कैसे हो सकता है।
तीसरी संभावना मैं सोच सकता हूं कि यह असंभव है और बनावट को कई बार दोहराना नहीं चाहिए। हालांकि, यह काफी संभावना आईएमओ लगता है। मेरा अनुमान (और आशा) यह है कि कुछ तरह की प्राथमिक समस्या है।
इस तरह की चीज़ का कारण बनने या आम तौर पर इस कारण के बारे में कोई सुझाव अच्छी तरह से सराहना की जाती है, क्योंकि मुझे लगता है कि इस समस्या के स्रोत को कम करने की कोशिश करने में मुझे बहुत मुश्किल समय लगता है।
मैं उपयोग कर रहा हूँ:
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_NEAREST);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.REPEAT);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.REPEAT);
gl.generateMipmap(gl.TEXTURE_2D);
और शेडर में:
#ifdef GL_ES
precision highp float;
#endif
मैं भी कुछ बहुत ही प्राथमिक गणनाएं निष्पादित: 32-बिट अधिकतम significand तैरता के लिए चारों ओर 8.4 मिलियन है। वोक्सेल साइड लम्बाई 2000 के लिए (जो मैंने देखा वह प्रभाव वह स्तर था जहां प्रभाव दिखाई दे रहा था), कोई भी समन्वय में फ्लोट राउंडिंग त्रुटि के लगभग 0.00025 की अपेक्षा कर सकता है। मानते हैं कि प्रत्येक दोहराने में स्क्रीन में लगभग 100 पिक्सल लगते हैं, त्रुटि 1 पिक्सेल से काफी कम होनी चाहिए, जो मामला नहीं है। जब तक मेरी गणना उपरोक्त गलत तरीके से नहीं की जाती, तब तक मैं नामांकित करता हूं कि Float32 को दोष नहीं देना है और यह कारण कहीं और होना चाहिए।
लाइन बनावट केवल समस्या को देखने के लिए उपयोग की जाती है। समस्या अन्य (अधिक प्राकृतिक) प्रकार के बनावट के साथ भी बनी रहती है।
संपादित 2 शुरू होता है
को सक्षम या अक्षम करने एंटीलायज़िंग़ नहीं दिखाई फर्क नहीं पड़ता
संपादित 2 समाप्त होता है
क्या आपने इसे विभिन्न कंप्यूटर/ब्राउज़रों पर आजमाया है? या "webgl.prefer-native-gl" सेटिंग? –
उत्कृष्ट बिंदु, मैं लगभग ऐसा करने के लिए भूल गया। मैंने Win XP पर नवीनतम फ़ायरफ़ॉक्स और क्रोम, और क्रोम पर उबंटू दोनों पर इसका परीक्षण किया है। विंडोज़ पर व्यवहार ब्राउज़र के बावजूद लगभग समान है। उबंटू पर कैमरे घूर्णन करते समय बनावट हिलाती है, लेकिन विकृत नहीं होती है। मैं इस अद्यतन के साथ सवाल संपादित कर दूंगा। मैंने आपके द्वारा उल्लिखित सेटिंग की कोशिश नहीं की है, लेकिन जब मैं Win XP कंप्यूटर पर जाता हूं तो इसे बाद में करूँगा। – Asta
यह विकल्प सही साबित हुआ है कि पेज बिल्कुल काम नहीं कर रहा है :( – Asta