2012-12-27 15 views
6

प्रश्न: क्या यह तीन .js sprites बनावट को फ़्लिप/मिरर करना संभव है?थ्री.जेएस: स्प्राइट फ्लिप करना संभव है?

पृष्ठभूमि: Three.js

निष्कर्ष की वर्तमान देव शाखा का उपयोग करते हुए अब तक: मैं पहली बार यह किसी भी प्रभाव के बिना 3 डी रोटेशन है बदलने के लिए try'd। तब मैं स्प्राइट कोड का निरीक्षण किया और देखा कि रोटेशन Sprite.js में इस पंक्ति में reseted है:

this.rotation3d.set(0, 0, this.rotation); 

बदलने मूल्यों कोई प्रभाव नहीं पड़ा नहीं था। गहराई से खोना मैं SpriteRenderer प्लगइन में समाप्त हुआ जहां मैं पूरी तरह से खो गया।

मेरी समझ यह है कि तीन.जेएस sprites को प्रस्तुत करने के लिए शेडर्स का उपयोग कर रहा है और यह एक बड़ा प्रदर्शन प्लस है। तो सरल चेहरों का उपयोग करके अपना खुद का स्प्राइट कार्यान्वयन लिखना गलत दिशा की तरह लगता है।

+0

तुम हमेशा तीन स्प्राइट के लिए अपने स्वयं के 'ShaderMaterial' आपूर्ति कर सकता है, लेकिन यह एक overkill की तरह लगता है। –

उत्तर

6

ओके, यह एक लंबा शॉट है, लेकिन अपने स्प्राइट के स्केल से -1 (दिशाओं में आप इसे फ़्लिप करना चाहते हैं) को सेट करने का प्रयास करें।

+0

यह काम करता है। सुरुचिपूर्ण और सरल। धन्यवाद :) –

2

एक बनावट को फ़्लिप करने का सबसे आसान तरीका वास्तव में GPU पर अपलोड करने से पहले बनावट छवि को फ़्लिप करना है।

+0

यह इतना लंगड़ा है, वास्तव में :) –

+0

लेकिन इसे करने का सबसे आसान तरीका है, भले ही आपको इसे रनटाइम में करना है। – Gero3

+0

यदि मेरा उत्तर काम करता है (मुझे यकीन नहीं है और अभी इसे परीक्षण करने में काफी सक्षम नहीं है), तो मैं तर्क दूंगा। –

2

बस एक विकल्प के रूप में यह पोस्टिंग:

texture = new three60.THREE.Texture(video); 
texture.repeat.set(-1, 1); 
texture.offset.set(1, 0); 
+0

यह मेरे लिए एक वीडियो बनावट है जो एक क्षेत्रीय ज्यामिति के बैकसाइड पर था। –

संबंधित मुद्दे