घुमावदार आकृतियों की हार्डवेयर-त्वरित ड्राइंग


11

कैसे जल्दी से एक घुमावदार आकार आकर्षित करने के लिए?

  • "जल्दी" से मुझे लगता है कि एक को यथासंभव हार्डवेयर सुविधाओं का उपयोग करना चाहिए

  • "घुमावदार" से मेरा मतलब है कि द्विघात या घन बेज़ियर घटता द्वारा परिभाषित सीमाएं

  • "आकार" से मेरा मतलब है कि या तो "वसा" स्ट्रोक (यानी 1px से अधिक चौड़ा) या सम-विषम / गैर-शून्य भरा "2 डी घुमावदार बहुभुज", संभवतः छेद के साथ (यानी "ओ")

मैं पूछ रहा हूं क्योंकि मुझे जिन विकल्पों के बारे में पता है उनमें कई कमियां हैं:

  • आकृति को त्रिभुजित करना और इसे OpenGL को भेजना - CPU पर सबसे कठिन काम करता है और बहुत अधिक / कुछ त्रिकोण (अर्थात बेकार / मोटे) का उपयोग कर सकता है

  • बनावट एटलस - बनावट को हर परिवर्तन (आकार, स्केल, रोटेशन, ...) पर फिर से जोड़ना / अपलोड करना है।

  • दूरी के क्षेत्र पर हस्ताक्षर - बड़े पैमाने पर विवरण बहुत सुंदर नहीं दिखते हैं या बनावट को फिर से जोड़ना / अपलोड करना है

  • NV_path_rendering - यह हो सकता है, अगर यह केवल एनवीडिया के कार्ड पर काम नहीं कर रहा था

  • OpenVG - यह हो सकता है, अगर यह केवल मोबाइल पर काम नहीं कर रहा था

  • ?


* यह मुझे लगता है कि OpenVG बिल्कुल आगे नहीं बढ़ रहा है, इसे हल्के ढंग से डालने के लिए। क्या किसी को इसकी भविष्य की संभावनाओं के बारे में कुछ पता है? क्या आज के समय में सब पर नज़र रखना उचित है?

** ओपन 5+ पॉलीगॉन के उड़ान भरने के साधन प्रदान करता है। यह किसी भी तरह "triangulating" विकल्प से जाल को परिष्कृत करने के लिए इस्तेमाल किया जा सकता है ताकि आकार सीमा कम से कम अभ्यस्त "angled" दिखे?


2
यह जीपीयू रत्न लेख पिक्सेल
छाया

2
@yuriks हाँ, लूप और ब्लिन, इसके बारे में पूरी तरह से भूल गए। लेकिन क्या यह पेटेंट नहीं है?
इकिर हाना

SIGGRAPH एशिया 2014 में प्रकाशित बड़े पैमाने पर समानांतर वेक्टर ग्राफिक्स भी देखें ।
lhf

आपके प्रश्न और लूप और ब्लाइन पेपर में आपके द्वारा सूचीबद्ध विकल्पों के बीच, मुझे लगता है कि आपने सभी संभावनाओं को समाप्त कर दिया है।
नाथन रीड

आप यहां बताए गए अनुसार एक पंक्ति को tessellate कर सकते हैं । या आप एक संगणक shader में triangulate कर सकते हैं।
nikitablack

जवाबों:


2

बेज़ियर नियंत्रण बिंदुओं को बहुभुज में बदलने के लिए आप ओपनगैल 4.x टेसेलेशन शेड का उपयोग कर सकते हैं।

"टसेसेलेशन शेडर बेज़ियर" के लिए एक Google खोज ने इस रूपरेखा को बेज़ियर सतहों और घटता के टसेलेशन का वर्णन करते हुए पाया:

http://web.engr.oregonstate.edu/~mjb/cs519/Handouts/tessellation.1pp.pdf

यह सीपीयू से जीपीयू के लिए बेजियर मूल्यांकन को बंद कर देता है और बस में डेटा प्रवाह को कम करता है।


3
आप इस उत्तर को थोड़ा विस्तृत करके, या यहाँ तक कि आगे की व्याख्या करने वाली किसी चीज़ से जोड़कर भी सुधार सकते हैं।
नाथन रीड

1
इस उत्तर का विस्तार करने का एक तरीका यह होगा कि लेखक द्वारा उल्लिखित कमियों को दूर किया जाए और बताया जाए कि आपका दृष्टिकोण उन लोगों के साथ कैसे मदद करता है।
ट्राइकोप्लाक्स

0

एक हार्डवेयर के साथ घुमावदार ड्राइंग कर सकते हैं। GPU Gems 3 में वर्णित एक विधि है जो यह बताती है कि यह कैसे करना है। उपयोगकर्ता @yuriks वास्तव में यह टिप्पणी करता है। मैंने वास्तव में आपके लिए एक त्वरित प्रदर्शन करने के लिए एक गंदा डेमो बनाया है।

वक्र

चित्र 1 : HW त्वरित वक्र आकृति (एक त्रिभुज को खींचा गया) और वेबल स्रोत

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.