Non-uniform rational B-spline

Düzgün olmayan rasyonel temelli eğri (İngilizce Non-uniform rational basis spline, NURBS), eğrileri ve yüzeyleri oluşturmak ve temsil etmek için bilgisayar grafiklerinde yaygın olarak kullanılan matematiksel bir modeldir. Hem analitik (ortak matematiksel formüllerle tanımlanan yüzeyler) hem de modellenmiş şekilleri işlemek için büyük esneklik ve hassasiyet sunar. NURBS yaygın olarak bilgisayar destekli tasarım (CAD ), imalat (CAM ) ve mühendislikte (CAE ) kullanılır ve IGES, STEP, ACIS ve PHIGS gibi çok sayıda endüstri çapında standardın parçasıdır . NURBS araçları ayrıca çeşitli 3B modelleme ve animasyon yazılım paketlerinde de bulunur. NURBS yüzeyleri, üç boyutlu uzayda bir yüzeye eşlenen iki parametrenin işlevleridir. Yüzeyin şekli kontrol noktaları ile belirlenir. NURBS yüzeyleri, kompakt bir biçimde basit geometrik şekilleri temsil edebilir. T-spline'lar ve alt bölme yüzeyleri, NURBS yüzeylerine kıyasla kontrol noktalarının sayısını iki kat azalttığı için karmaşık organik şekiller için daha uygundur. NURBS eğrilerini ve yüzeylerini düzenlemek oldukça sezgisel ve öngörülebilirdir. Kontrol noktaları her zaman doğrudan eğriye / yüzeye bağlanır veya bir lastik bantla bağlanmış gibi davranır. Kullanıcı arayüzünün türüne bağlı olarak, düzenleme, Bézier eğrileri için en açık ve yaygın olan bir elemanın kontrol noktaları aracılığıyla veya spline modelleme veya hiyerarşik düzenleme gibi daha yüksek seviyeli araçlar aracılığıyla gerçekleştirilebilir.

Bilgisayarlardan önce tasarımlar çeşitli çizim araçlarıyla kağıt üzerine elle çizilirdi . Cetveller düz çizgiler, kullanıldı pergel çevreler için ve protractors açılar için. Ancak bir geminin pruvasının serbest biçimli eğrisi gibi birçok şekil bu aletlerle çizilemezdi. Bu tür eğriler çekim tahtasında serbestçe çizilebilmesine rağmen, gemi yapımcıları genellikle elle yapılamayacak gerçek boyutlu bir versiyona ihtiyaç duyuyordu. Bu tür büyük çizimler, spline adı verilen esnek ahşap şeritlerin yardımıyla yapıldı. Spline'lar, "ördekler" adı verilen önceden belirlenmiş birkaç noktada yerinde tutuldu; ördekler arasında, yivli malzemenin esnekliği, şeridin bükülme enerjisini en aza indiren şekli almasına neden oldu, böylece kısıtlamalara uyan mümkün olan en pürüzsüz şekli oluşturdu. Ördekler hareket ettirilerek şekil ayarlanabilir.

1946'da matematikçiler spline şeklini incelemeye başladılar ve spline eğrisi veya spline fonksiyonu olarak bilinen parçalı polinom formülü türettiler. IJ Schoenberg, teknik ressamlar tarafından kullanılan mekanik eğriye benzerliğinden sonra spline işlevine adını verdi.

Bilgisayarlar tasarım sürecine dahil edilirken, bu tür eğrilerin fiziksel özellikleri, matematiksel hassasiyetle modellenebilmeleri ve gerektiğinde yeniden üretilebilmeleri için araştırıldı. Fransa'da Renault mühendisi Pierre Bézier ve Citroën'in fizikçi ve matematikçisi Paul de Casteljau öncü çalışmalar yaptı. Birbirlerine neredeyse paralel çalıştılar, ancak Bézier çalışmasının sonuçlarını yayınladığı için, Bézier eğrilerine onun adı verilirken, de Casteljau'nun adı yalnızca ilgili algoritmalarla ilişkilendirildi.

NURBS eğrilerinin ve yüzeylerinin gerçek zamanlı, etkileşimli olarak oluşturulması ilk olarak 1989'da Silicon Graphics iş istasyonlarında ticari olarak sağlandı. 1993 yılında, NöRBS adı verilen PC'ler için ilk etkileşimli NURBS modelleyicisi, Berlin Teknik Üniversitesi ile işbirliği yapan küçük bir başlangıç şirketi olan CAS Berlin tarafından geliştirildi.

Yapım aşamasında olan bir yüzey, örneğin bir motorlu yatın gövdesi, genellikle yama olarak bilinen birkaç NURBS yüzeyinden oluşur. Bu yamalar, sınırlar görünmeyecek şekilde birbirine takılmalıdır. Bu, matematiksel olarak geometrik süreklilik kavramı ile ifade edilir.

Konumsal süreklilik (G 0 ), iki eğrinin veya yüzeyin son konumları çakıştığı zaman geçerlidir. Eğriler veya yüzeyler yine de bir açıyla birleşerek keskin bir köşe veya kenara yol açabilir ve kırılmış vurgulara neden olabilir.

Teğetsel süreklilik (G¹), eğrilerin veya yüzeylerin uç vektörlerinin paralel olmasını ve keskin kenarları ekarte ederek aynı şekilde işaret etmesini gerektirir. Teğet olarak sürekli bir kenara düşen vurgular her zaman süreklidir ve bu nedenle doğal göründüğünden, bu süreklilik düzeyi çoğu zaman yeterli olabilir.

Eğrilik sürekliliği (G²) ayrıca uç vektörlerin aynı uzunlukta ve uzunluk değişim hızında olmasını gerektirir. Sürekli eğrilikli bir kenara düşen parlak noktalar herhangi bir değişiklik göstermez ve iki yüzeyin tek olarak görünmesine neden olur. Bu görsel olarak "mükemmel derecede pürüzsüz" olarak tanınabilir. Bu süreklilik düzeyi, tek bir sürekli yüzey oluşturan birçok iki kübik yama gerektiren modellerin oluşturulmasında çok kullanışlıdır.

Geometrik süreklilik esas olarak ortaya çıkan yüzeyin şeklini ifade eder; NURBS yüzeyleri fonksiyonlar olduğundan, yüzeyin türevlerini parametrelere göre tartışmak da mümkündür. Bu, parametrik süreklilik olarak bilinir. Belirli bir derecenin parametrik sürekliliği, o derecenin geometrik sürekliliğini ifade eder.

Birinci ve ikinci düzey parametrik süreklilik (C 0 ve C¹), pratik amaçlar için konumsal ve teğetsel (G 0 ve G¹) süreklilikle aynıdır. Bununla birlikte, üçüncü düzey parametrik süreklilik (C²), parametrelendirmesinin de sürekli olması nedeniyle eğrilik sürekliliğinden farklıdır. Uygulamada, tek tip B-spline'lar kullanılırsa C² sürekliliği elde etmek daha kolaydır.

C n sürekliliğinin tanımı, bitişik eğrilerin / yüzeylerin n inci türevinin ( ) bir eklemde eşittir. Eğrilerin ve yüzeylerin (kısmi) türevlerinin bir yönü ve bir büyüklüğü olan vektörler olduğuna dikkat edin; her ikisi de eşit olmalıdır.

Parlak noktalar ve yansımalar, en azından G² sürekliliğine sahip NURBS yüzeyleri olmadan elde edilmesi pratik olarak imkansız olan mükemmel düzleştirmeyi ortaya çıkarabilir. Bu aynı ilke, yüzey değerlendirme yöntemlerinden biri olarak kullanılır; bu yöntemle, üzerine yansıyan beyaz şeritlere sahip bir yüzeyin ışın izlemeli veya yansıma haritalanmış bir görüntüsü, bir yüzey veya bir dizi yüzey üzerindeki en küçük sapmaları bile gösterecektir. Bu yöntem, araba yüzeyindeki neon ışıklı tavanın yansımalarının kalitesinin kontrol edilmesiyle yüzey kalitesinin denetlendiği otomobil prototiplemesinden türetilmiştir. Bu yöntem aynı zamanda "Zebra analizi" olarak da bilinir.

Bir NURBS eğrisi, sırası, bir dizi ağırlıklı kontrol noktası ve bir düğüm vektörü ile tanımlanır. NURBS eğrileri ve yüzeyleri, hem B-spline'ların hem de Bézier eğrilerinin ve yüzeylerinin genelleştirmeleridir; birincil fark, NURBS eğrilerini rasyonel kılan kontrol noktalarının ağırlıklandırılmasıdır. (Sigara rasyonel bir deyişle, basit, B-spline her kontrol noktası normal homojen olmayan yerine daha [ 'w' no] koordinat oransal B-spline özel bir durum / alt küme vardır homojen koordinat. Bu, her kontrol noktasında "1" ağırlığa sahip olmaya eşdeğerdir; Rasyonel B-spline bir ağırlık olarak her bir kontrol noktasının 'w' kullanın. ) İki boyutlu kontrol noktaları ızgarası kullanılarak, düzlemsel yamalar ve kürelerin bölümleri dahil NURBS yüzeyleri oluşturulabilir. Bunlar iki değişkenle parametrelendirilir (tipik olarak s ve t veya u ve v olarak adlandırılır). Bu, NURBS haritalaması oluşturmak için rastgele boyutlara genişletilebilir .

Belirli bir sıra için NURBS kümesi, afin dönüşümler altında değişmez : döndürme ve öteleme gibi işlemler, NURBS eğrilerine ve yüzeylerine, kontrol noktalarına uygulanarak uygulanabilir.

Bir NURBS eğrisinin kuvveti, eğri üzerindeki herhangi bir noktayı etkileyen yakın kontrol noktalarının sayısını tanımlar. Eğri, matematiksel olarak eğrinin mertebesinden bir dereceden daha düşük bir polinom ile temsil edilir. Bu nedenle, ikinci dereceden eğrilere (doğrusal polinomlarla temsil edilenler) doğrusal eğriler, üçüncü dereceden eğrilere ikinci dereceden eğriler ve dördüncü dereceden eğrilere kübik eğriler denir. Kontrol noktalarının sayısı eğrinin kuvvetinden büyük veya ona eşit olmalıdır.

Pratikte, kübik eğriler en sık kullanılanlardır. Beşinci ve altıncı mertebeden eğriler bazen, özellikle sürekli yüksek mertebeden türevler elde etmek için kullanışlıdır, ancak daha yüksek mertebeden eğriler pratikte hiçbir zaman kullanılmaz, çünkü bunlar dahili sayısal problemlere yol açar ve orantısız şekilde büyük hesaplama süreleri gerektirme eğilimindedirler.

Kontrol noktaları, eğrinin şeklini belirler. Tipik olarak, eğrinin her noktası, bir dizi kontrol noktasının ağırlıklı toplamı alınarak hesaplanır. Her bir noktanın ağırlığı, geçerli parametreye göre değişir. D derecelik bir eğri için, herhangi bir kontrol noktasının ağırlığı, parametre uzayının d + 1 aralıklarında yalnızca sıfırdan farklıdır. Bu aralıklar içinde ağırlık, d derecesinin bir polinom fonksiyonuna (temel fonksiyonlar) göre değişir. Aralıkların sınırlarında, temel fonksiyonlar sorunsuz bir şekilde sıfıra gider, pürüzsüzlük polinomun derecesine göre belirlenir.

Örnek olarak, birinci derecenin temel işlevi bir üçgen işlevidir. Sıfırdan bire yükselir, sonra tekrar sıfıra düşer. Yükselirken, önceki kontrol noktasının temel işlevi düşer. Bu şekilde, eğri iki nokta arasında interpolasyon yapar ve ortaya çıkan eğri, aralıklı sınırlarda veya düğümlerde türevlenemeyen, sürekli olan bir çokgendir. Daha yüksek dereceli polinomlar buna bağlı olarak daha sürekli türevlere sahiptir. Aralık içinde temel fonksiyonların polinom doğasının ve yapının doğrusallığının eğriyi mükemmel bir şekilde pürüzsüz hale getirdiğine dikkat edin, bu nedenle süreksizlik sadece düğümlerde ortaya çıkabilir.

Pek çok uygulamada, tek bir kontrol noktasının yalnızca aktif olduğu aralıkları etkilemesi, yerel destek olarak bilinen oldukça istenen bir özelliktir. Modellemede, bir yüzeyin bir kısmının değiştirilmesine izin verirken diğer kısımların değişmeden kalmasına izin verir.

Daha fazla kontrol noktası eklemek, belirli bir eğriye daha iyi yaklaşıma izin verir, ancak yalnızca belirli bir eğri sınıfı tam olarak sınırlı sayıda kontrol noktasıyla temsil edilebilir. NURBS eğrileri ayrıca her kontrol noktası için bir skaler ağırlık içerir . Bu, kontrol noktalarının sayısını gereksiz yere yükseltmeden eğrinin şekli üzerinde daha fazla kontrole izin verir. Özellikle, tam olarak temsil edilebilen eğriler kümesine daire ve elips gibi konik bölümler ekler. NURBS'deki rasyonel terimi bu ağırlıkları ifade eder.

Kontrol noktaları herhangi bir boyutluluğa sahip olabilir. Tek boyutlu noktalar sadece parametrenin skaler bir fonksiyonunu tanımlar. Bunlar genellikle parlaklığı ve renk eğrilerini ayarlamak için görüntü işleme programlarında kullanılır. Üç boyutlu kontrol noktaları, 3B uzayda bir konum olan 'nokta' kelimesinin günlük anlamında kullanıldığı 3B modellemede bolca kullanılır. Çok boyutlu noktalar, bir robot kolunun farklı konumsal ve dönme ayarları gibi zamana bağlı değer kümelerini kontrol etmek için kullanılabilir. NURBS yüzeyleri bunun sadece bir uygulamasıdır. Her kontrol 'noktası' aslında bir eğri tanımlayan tam bir kontrol noktaları vektörüdür. Bu eğriler, derecelerini ve kontrol noktalarının sayısını paylaşır ve parametre uzayının bir boyutunu kapsar. Bu kontrol vektörlerinin parametre uzayının diğer boyutu üzerinde enterpolasyonuyla, yüzeyi tanımlayan sürekli bir eğri seti elde edilir.

Düğüm vektörü, kontrol noktalarının NURBS eğrisini nerede ve nasıl etkilediğini belirleyen bir parametre değerleri dizisidir. Düğüm sayısı her zaman kontrol noktalarının sayısı artı eğri derecesi artı birdir (yani kontrol noktalarının sayısı artı eğri sırası). Düğüm vektörü, parametrik alanı daha önce bahsedilen aralıklarla böler, genellikle düğüm aralıkları olarak anılır. Parametre değeri yeni bir düğüm aralığına her girdiğinde, yeni bir kontrol noktası aktif hale gelirken, eski bir kontrol noktası atılır. Düğüm vektöründeki değerlerin azalan sırada olması gerektiği, dolayısıyla (0, 0, 1, 2, 3, 3) geçerliyken (0, 0, 2, 1, 3, 3) geçerli değildir.

Ardışık düğümler aynı değere sahip olabilir. Bu daha sonra sıfır uzunlukta bir düğüm aralığını tanımlar, bu da iki kontrol noktasının aynı anda etkinleştirildiğini (ve tabii ki iki kontrol noktasının devre dışı bırakıldığını) gösterir. Bunun, ortaya çıkan eğrinin veya daha yüksek türevlerinin sürekliliği üzerinde etkisi vardır; örneğin, başka türlü pürüzsüz bir NURBS eğrisinde köşelerin oluşturulmasına izin verir. Çakışan düğüm bir dizi bazen belirli bir çoğu ile bir düğüm olarak adlandırılır. Çokluğu iki veya üç olan düğümler, çift veya üçlü düğüm olarak bilinir. Bir düğümün çokluğu, eğrinin derecesiyle sınırlıdır; çünkü daha yüksek bir çokluk eğriyi ayrık parçalara böler ve kontrol noktalarını kullanılmadan bırakır. Birinci derece NURBS için, her düğüm bir kontrol noktası ile eşleştirilir.

Düğüm vektörü genellikle sıraya eşit çokluğa sahip bir düğümle başlar. Bu mantıklıdır, çünkü bu, ilk düğüm aralığı üzerinde etkisi olan kontrol noktalarını etkinleştirir. Benzer şekilde, düğüm vektörü genellikle bu çokluğun bir düğümü ile biter. Bu tür düğüm vektörlerine sahip eğriler bir kontrol noktasında başlar ve biter.

Düğümlerin değerleri, giriş parametresi ile karşılık gelen NURBS değeri arasındaki eşleşmeyi kontrol eder. Örneğin, bir NURBS, zaman içinde uzayda bir yolu tanımlıyorsa, düğümler, işlevin kontrol noktalarından sonra ilerlediği zamanı kontrol eder. Bununla birlikte, şekilleri temsil etme amaçları için, yalnızca düğüm değerleri arasındaki farkın oranları önemlidir; bu durumda düğüm vektörleri (0, 0, 1, 2, 3, 3) ve (0, 0, 2, 4, 6, 6) aynı eğriyi üretir. Düğüm değerlerinin pozisyonları, parametre uzayının eğri uzayıyla eşleştirilmesini etkiler. Bir NURBS eğrisinin oluşturulması, genellikle parametre aralığında sabit bir adımla adımlanarak yapılır. Düğüm aralığı uzunlukları değiştirilerek, eğriliğin yüksek olduğu bölgelerde daha fazla numune noktası kullanılabilir. Diğer bir kullanım, parametre değerinin bir miktar fiziksel öneme sahip olduğu durumlarda, örneğin parametre zaman ise ve eğri bir robot kolunun hareketini tanımlıyorsa. Düğüm aralığı uzunlukları daha sonra, robot koluna veya çevresine zarar gelmesini önlemek için doğru olmak için gerekli olan hız ve ivmeye dönüşür. Haritalamadaki bu esneklik, NURBS'deki tek tip olmayan ifadesinin kastettiği şeydir.

Yalnızca dahili hesaplamalar için gerekli olan düğümler genellikle modelleme yazılımı kullanıcıları için yararlı değildir. Bu nedenle, birçok modelleme uygulaması düğümleri düzenlenebilir ve hatta görünür hale getirmez. Kontrol noktalarındaki varyasyona bakarak makul düğüm vektörleri oluşturmak genellikle mümkündür. NURBS yazılımının daha yeni sürümleri (örneğin, Autodesk Maya ve Rhinoceros 3D ) düğüm konumlarının etkileşimli olarak düzenlenmesine izin verir, ancak bu, kontrol noktalarının düzenlenmesinden önemli ölçüde daha az sezgiseldir.

Fonksiyonlar ve karşılık gelen alt sıra temel işlevleri sıfır olmadığında pozitiftir. N'deki tümevarım yoluyla, temel fonksiyonların tüm değerleri için negatif olmadığını izler ve . Bu, temel fonksiyonların hesaplanmasını sayısal olarak kararlı hale getirir.

Yine tümevarımla, parametrenin belirli bir değeri için temel fonksiyonların toplamının birlik olduğu kanıtlanabilir. Bu, temel işlevlerin birlik özelliğinin bölümü olarak bilinir.

Bir düğüm aralığı diğerlerinden oldukça kısadır. Bu düğüm aralığında, ikinci dereceden temel fonksiyonundaki tepe daha belirgindir ve neredeyse bire ulaşır. Tersine, bitişik temel işlevler daha hızlı sıfıra düşer. Geometrik yorumlamada bu, eğrinin karşılık gelen kontrol noktasına yakından yaklaştığı anlamına gelir. Çift düğüm durumunda düğüm açıklığının uzunluğu sıfır olur ve tepe tam olarak bire ulaşır. Temel işlev artık bu noktada farklılaştırılamaz. Komşu kontrol noktaları eşdoğrusal değilse eğri keskin bir köşeye sahip olacaktır.

Bir NURBS nesnesine bir dizi dönüşüm uygulanabilir. Örneğin, bazı eğri belirli bir derece ve N kontrol noktası kullanılarak tanımlanırsa, aynı eğri aynı derece ve N + 1 kontrol noktaları kullanılarak ifade edilebilir. İşlemde bir dizi kontrol noktası pozisyon değiştirir ve düğüm vektörüne bir düğüm eklenir. Bu manipülasyonlar, etkileşimli tasarım sırasında yoğun bir şekilde kullanılır. Bir kontrol noktası eklerken, eğrinin şekli aynı kalmalı ve sonraki ayarlamalar için başlangıç noktası oluşturmalıdır. Bu işlemlerden birkaçı aşağıda tartışılmaktadır.

Terimden de anlaşılacağı gibi, düğüm ekleme, düğüm vektörüne bir düğüm ekler. Eğrinin derecesi ise , sonra kontrol noktaları ile değiştirilir Yeni olanlar. Eğrinin şekli aynı kalır.

Bir düğüm, düğümün maksimum çokluğuna kadar birden çok kez eklenebilir. Bu bazen düğüm iyileştirme olarak adlandırılır ve tekrarlanan düğüm eklemeden daha verimli olan bir algoritma ile elde edilebilir.

Düğüm çıkarma, düğüm atmanın tersidir. Amacı, daha kompakt bir görünüm elde etmek için düğümleri ve ilgili kontrol noktalarını kaldırmaktır. Açıktır ki, eğrinin tam şeklini korurken bu her zaman mümkün değildir. Pratikte, bir düğümün kaldırılıp kaldırılamayacağını belirlemek için doğrulukta bir tolerans kullanılır. İşlem, kontrol noktalarının manuel olarak eklenmiş olabileceği etkileşimli bir oturumdan sonra veya basit bir dönüştürme işleminin gereksiz kontrol noktalarına yol açtığı farklı bir temsilden bir eğri içe aktarıldıktan sonra temizlemek için kullanılır.

Belirli bir derecedeki bir NURBS eğrisi, her zaman daha yüksek dereceli bir NURBS eğrisi ile temsil edilebilir. Bu, ayrı NURBS eğrilerini birleştirirken, örneğin, bir dizi NURBS eğrisi arasında enterpolasyon yapan bir NURBS yüzeyi oluştururken veya bitişik eğrileri birleştirirken sıklıkla kullanılır. Süreçte, farklı eğriler aynı dereceye, genellikle eğri kümesinin maksimum derecesine getirilmelidir. Süreç, derece yükseltme olarak bilinir.

Diferansiyel geometride en önemli özellik eğriliktir . Yerel özellikleri (kenarlar, köşeler vb.) Ve birinci ve ikinci türev arasındaki ilişkileri ve dolayısıyla kesin eğri şeklini açıklar. Türevleri belirledikten sonra hesaplaması kolaydır veya ikinci türevden yay uzunluğu olarak yaklaştırılır . Eğriliğin doğrudan hesaplanması bu denklemlerle parametreleştirilmiş eğrilerin poligonal gösterimlerine karşı büyük avantajı vardır.

Sıra üçtür, çünkü bir daire ikinci dereceden bir eğridir ve spline'ın sırası, parçalı polinom segmentlerinin derecesinden bir fazladır. Düğüm vektörü . Daire, çift düğümlerle birbirine bağlanmış dört çeyrek daireden oluşur. Üçüncü dereceden bir NURBS eğrisindeki çift düğüm normal olarak birinci türevde süreklilik kaybına yol açsa da, kontrol noktaları birinci türevin sürekli olacağı şekilde konumlandırılır. Aslında, eğri her yerde sonsuz derecede türevlenebilir, çünkü tam olarak bir daireyi temsil ediyor olması gerekir.

Eğri tam olarak bir daireyi temsil eder, ancak dairenin yay uzunluğunda tam olarak parametreleştirilmez. Bu, örneğin şu anlama gelir: yalan söylemez (temsil simetrik olduğundan her çeyrek dairenin başlangıç, orta ve bitiş noktaları hariç). Çemberin x koordinatı için tam bir rasyonel polinom ifadesi sağlayacağından, bu imkansız olurdu. imkansızdır. Daire, parametresi olarak bir tam devir yapar 0'dan , ancak bunun tek nedeni düğüm vektörünün keyfi olarak değerin katları olarak seçilmesidir. .