2012-04-28 37 views
6

मेरी ओपन परियोजना में बनाने के लिए, मैं गतिशील smoothed बहुभुज बनाने के लिए, इस तरह इसी तरह के हैं:ओपन: जटिल और सरल बहुभुज

enter image description here

समस्या चौरसाई प्रक्रिया में मुख्य रूप से निर्भर करता है। इस बिंदु तक मेरी प्रक्रिया, सबसे पहले यादृच्छिक रूप से रखे गए कोने के साथ एक वीबीओ बनाने के लिए है।

फिर, मेरे टुकड़े शेडर में, (मैं प्रोग्राम करने योग्य फ़ंक्शन पाइपलाइन का उपयोग कर रहा हूं) वहां चिकनाई प्रक्रिया होनी चाहिए, या दूसरे शब्दों में, कोर्ड्स के बीच पहले परिभाषित "रेखाओं" से वक्र बनाया गया था।

और बिल्कुल समस्या यह है: मैं थूज़ जटिल गणितीय एल्गोरिदम से बहुत परिचित नहीं हूं, जो जांच करेगा, अगर कोई बिंदु "चिकनी बहुभुज" के अंदर है या नहीं।

उत्तर

3

सबसे पहले, आप इसे टुकड़े टुकड़े में वास्तव में नहीं कर सकते हैं। टुकड़ा शेडर स्क्रीन पर लिखे जाने से पहले एक "पिक्सेल" (जो मूल रूप से, लेकिन वास्तव में नहीं, वास्तविक पिक्सेल) के अंतिम (आईएसएच) रंग को सेट करने के लिए सीमित है। यह वक्र पर नए अंक नहीं बना सकता है।

This page चिकनी वक्र बनाने के लिए विभिन्न एल्गोरिदम का एक अच्छा अवलोकन देता है।

सामान्य दृष्टिकोण एक ज्यामिति शेडर का उपयोग करके कई बिंदुओं को तोड़ने के लिए है, और फिर उन्हें सामान्य पॉलीगॉन की तरह प्रस्तुत करना है। लेकिन मुझे ब्योरा नहीं पता है। उदाहरण के लिए bezier geometry shader के लिए Google खोज आज़माएं।

रुको, मैं झूठ बोलता हूं। मुझे एक प्रोग्राम here मिला जो इसे टुकड़े टुकड़े में करता है।

+0

धन्यवाद! मुझे लगता है कि मैं जो खोज रहा था उसके लिए मैंने पाया: http://code.google.com/p/victamin/downloads/detail?name=GPUBezier.zip – cafaxo