Кіріспе
Компьютерлік графикада қисықтар мен беттерді бейнелеу әдісі. Бірыңғай емес рационалды негізді сплайн (NURBS) – негізді сплайндарды (B сплайндары) пайдаланатын математикалық модель, ол компьютерлік графикада қисықтар мен беттерді бейнелеу үшін кеңінен қолданылады. Ол аналитикалық (құрамындағы математикалық формулалармен анықталатын) және модельделген пішіндерді өңдеуде үлкен икемділік пен дәлдік ұсынады. Бұл көпбұрышты модельдеу немесе цифрлық мүсіндеуге қарамастан, қисық модельдеудің бір түрі. NURBS қисықтары компьютерлік көмекпен жобалауда (CAD), өндірісте (CAM) және инженерлік есептеулерде (CAE) жиі қолданылады. Олар IGES, STEP, ACIS және PHIGS сияқты көптеген салалық стандарттардың құрамына кіреді. NURBS беттерін жасау және өңдеу құралдары әртүрлі 3D графикалық, рендеринг және анимациялық бағдарламалық қамтамасыздарда кездеседі. Оларды компьютерлік бағдарламалар тиімді түрде басқара алады, сонымен қатар адамның оңай әрекеттесуіне мүмкіндік береді. NURBS беттері – үш өлшемді кеңістіктегі бетке бейнеленген екі параметрдің функциялары. Беттің пішіні бақылау нүктелерімен анықталады. NURBS бетін ықшам түрінде қарапайым геометриялық пішіндерді бейнелеуге болады. Күрделі органикалық пішіндер үшін T-сплайндары мен бөлінген беттер қолайлырақ, себебі олар NURBS беттерімен салыстырғанда бақылау нүктелерінің санын екі есеге азайтады. Жалпы алғанда, NURBS қисықтары мен беттерін өңдеу интуитивті және болжамды. Бақылау нүктелері әрқашан қисыққа немесе бетке тікелей қосылады немесе резеңке таспамен байланысқандай әрекет етеді. Пайдаланушы интерфейсінің түріне байланысты NURBS қисықтары мен беттерін өңдеу олардың бақылау нүктелері арқылы (Безиер қисықтарына ұқсас) немесе жоғары деңгейлі құралдар арқылы, мысалы, сплайн модельдеу және иерархиялық өңдеу арқылы жүзеге асырылуы мүмкін.
Non uniform rational basis spline (NURBS) is a mathematical model using basis splines (B splines) that is commonly used in computer graphics for representing curves and surfaces. It offers great flexibility and precision for handling both analytic (defined by common mathematical formulae) and modeled shapes. It is a type of curve modeling, as opposed to polygonal modeling or digital sculpting. NURBS curves are commonly used in computer aided design (CAD), manufacturing (CAM), and engineering (CAE). They are part of numerous industry wide standards, such as IGES, STEP, ACIS, and PHIGS. Tools for creating and editing NURBS surfaces are found in various 3D graphics, rendering, and animation software packages. They can be efficiently handled by computer programs yet allow for easy human interaction. NURBS surfaces are functions of two parameters mapping to a surface in three dimensional space. The shape of the surface is determined by control points. In a compact form, NURBS surfaces can represent simple geometrical shapes. For complex organic shapes, T splines and subdivision surfaces are more suitable because they halve the number of control points in comparison with the NURBS surfaces. In general, editing NURBS curves and surfaces is intuitive and predictable. Control points are always either connected directly to the curve or surface, or else act as if they were connected by a rubber band. Depending on the type of user interface, the editing of NURBS curves and surfaces can be via their control points (similar to Bézier curves) or via higher level tools such as spline modeling and hierarchical editing.
Тарих
Компьютерлер пайда болмай тұрып, жобалар қағаз бетіне қолмен, түрлі сызу құралдарын пайдалана отырып салынатын. Түзу сызықтар үшін сызғыштар, шеңберлер үшін компастар, ал бұрыштар үшін транспортирлер қолданылды. Бірақ кеме басының еркін қисығы сияқты көптеген пішіндерді осы құралдармен салу мүмкін емес еді. Мұндай қисықтарды сызу тақтасында қолмен салуға болатын болса да, кеме жасаушыларға көбінесе нақты өлшемдегі нұсқа қажет болатын, оны қолмен жасау мүмкін емес еді. Мұндай ірі суреттерді жасау үшін иілгіш ағаш жолақтары қолданылды, оларға «сплайн» деп аталатын. Сплайн алдын ала белгіленген нүктелерде бекітілді, бұл нүктелер «қаз» деп аталды (олар қорғасыннан жасалған және шамамен 7.6 см ұзын болды: «қаздың» «мүсізі» сплайнға қарсы басып тұратын; ескі яхта жобалау кітаптары осы әдістерді қолданған); «қаздар» арасындағы сплайн материалының серпімділігі жолақтың бүгілу энергиясын азайтатын пішінге ие болуына себеп болды, осылайша шектеулерге сәйкес келетін ең тегіс пішін жасалды. Пішін «қаздарды» жылжыту арқылы реттелуі мүмкін еді. 1946 жылы математиктер сплайн пішінін зерттей бастады және сплайн қисығы немесе сплайн функциясы деп аталатын бөлшектік полиномдық формуланы туындыстырды. И. Дж. Шенберг, суретшілер қолданатын механикалық сплайнға ұқсас болғандықтан, сплайн функциясына осы атауды берді. Компьютерлер жобалау процесіне енгізілген кезде, осы сплайнның физикалық қасиеттері зерттелді, осылайша оларды математикалық дәлдікпен модельдеуге және қажет болған жағдайда қайта жаңартуға болады. Францияда Renault инженері Пьер Безиер және Citroën физигі мен математигі Пол де Кастельжоу осы салада алғашқы жұмыстар жасады. Олар шамамен бірдей уақытта жұмыс істеді, бірақ Безиер өзінің жұмысының нәтижелерін жариялағандықтан, қисықтар оның есімімен аталды, ал де Кастельжоудың есімі тек осымен байланысты алгоритмдермен байланысты. NURBS бастапқыда тек автокөлік компанияларының жеке CAD пакеттерінде қолданылды. Кейін олар стандартты компьютерлік графикалық пакеттерінің бөлігіне айналды. NURBS қисықтары мен беттерін интерактивті рендерлеу 1989 жылы Silicon Graphics жұмыс станцияларында алғаш рет коммерциялық түрде қолжетімді болды. 1993 жылы CAS Berlin, Берлин техникалық университетімен ынтымақтастықта жұмыс істейтін шағын стартап компаниясы, NöRBS деп аталатын компьютерлер үшін алғашқы интерактивті NURBS модельдеушісін жасады.
Кезектілігі
NURBS қисығының реті қисықтағы кез келген нүктеге әсер ететін жақын орналасқан бақылау нүктелерінің санын анықтайды. Қисық математикалық түрде қисықтың ретінен бір дәреже кем көпмүшелікпен өрнектеледі. Сондықтан, екінші ретті қисықтар (сызықтық көпмүшеліктермен бейнеленген) сызықтық қисықтар, үшінші ретті қисықтар квадраттық қисықтар, ал төртінші ретті қисықтар кубтық қисықтар деп аталады. Бақылау нүктелерінің саны қисықтың ретінен кем болмауы керек. Іс жүзінде, кубтық қисықтар ең көп қолданылады. Бесінші және алтыншы ретті қисықтар кейде пайдалы, әсіресе үздіксіз жоғары ретті туындыларды алу үшін, бірақ одан жоғары ретті қисықтар практикалық түрде қолданылмайды, себебі олар ішкі сандық проблемаларға алып келеді және пропорционалдық емес есептеу уақытын қажет етеді.
Бақылау нүктелері
Басқару нүктелері қисықтың пішінін анықтайды. Әдетте, қисықтың әрбір нүктесі бірнеше бақылау нүктелерінің салмақталған қосындысы арқылы есептеледі. Әрбір нүкте салмағы басқару параметріне байланысты өзгереді. D дәрежелі қисық үшін кез келген бақылау нүктесінің салмағы параметр кеңістігінің d+1 аралықтарында ғана нөлден өзгеше болады. Бұл аралықтарда салмақ d дәрежелі полиномиялық функцияға (негізгі функциялар) сәйкес өзгереді. Аралықтардың шекараларында негізгі функциялар нөлге дейін тегіс өтеді, бұл тегістік полиномияның дәрежесімен анықталады. Мысалы, бірінші дәрежелі негізгі функция үшбұрыш тәрізді болады. Ол нөлден бірге дейін көтеріліп, содан кейін қайтадан нөлге төмендейді. Ол көтерілген кезде, алдыңғы бақылау нүктесінің негізгі функциясы төмендейді. Осылайша, қисық екі нүкте арасында интерполяцияланады, ал нәтижесіндегі қисық – үздіксіз көпбұрыш, бірақ аралық шекараларында немесе түйіндерде дифференциалдалмайды. Жоғары дәрежелі полиномдардың сәйкесінше көбірек үздіксіз туындылары болады. Ескеріңіз, аралық ішінде негізгі функциялардың полиномиялық сипаты және құрылымның сызықтығы қисықты өте тегіс етеді, сондықтан үздіксіздік тек түйіндерде ғана пайда болуы мүмкін. Көптеген қолданбаларда бір бақылау нүктесінің тек белсенді аралықтарға ғана әсер етуі, жергілікті қолдау деп аталатын өте қажетті қасиет болып табылады. Модельдеу кезінде ол беттің бір бөлігін өзгертуге мүмкіндік береді, ал қалған бөліктерін өзгертусіз қалдырады. Басқа бақылау нүктелерін қосу берілген қисыққа жақсырақ жуықтауға мүмкіндік береді, бірақ тек белгілі бір қисық кластарын ғана бақылау нүктелерінің шекті санымен дәл көрсетуге болады. NURBS қисықтарында әр бақылау нүктесі үшін скалярлық салмақ та қарастырылады. Бұл қисықтың пішінін бақылауға мүмкіндік береді, бірақ бақылау нүктелерінің санын артырмайды. Атап айтқанда, ол шеңберлер мен эллипс сияқты коникалық қималарды да дәл бейнелеуге болатын қисықтар жиынтығына қосады. NURBS терминіндегі «рационалды» осы салмақтарды білдіреді. Бақылау нүктелері кез келген өлшемде болуы мүмкін. Бір өлшемді нүктелер параметрдің скалярлық функциясын анықтайды. Бұлар әдетте кескінді өңдеу бағдарламаларында жарықтық пен түстік қисықтарды реттеу үшін қолданылады. Үш өлшемді бақылау нүктелері 3D модельдеуде кеңінен қолданылады, онда олар «нүкте» сөзінің күнделікті мағынасында, 3D кеңістіктегі орналасқан жер ретінде қолданылады. Көп өлшемді нүктелер уақытқа тәуелді мәндер жиынтығын басқару үшін пайдаланылуы мүмкін, мысалы, робот манипуляторының әртүрлі позициялық және бұрылу параметрлері. NURBS беттері осыған ұқсас қолданылады. Әрбір бақылау «нүктесі» шын мәнінде қисықты анықтайтын бақылау нүктелерінің толық векторы болып табылады. Бұл қисықтар өз дәрежесін және бақылау нүктелерінің санын бөліседі және параметр кеңістігінің бір өлшемін қамтиды. Осы басқару векторларын параметр кеңістігінің екінші өлшемінде интерполяциялау арқылы үзіліссіз қисықтар жиынтығы алынады, ол бетті анықтайды.
Торап векторы
Торап векторы — NURBS қисығына басқару нүктелерінің қай жерде және қалай әсер ететінін анықтайтын параметрлер мәндерінің тізбегі. Тораптардың саны әрқашан басқару нүктелерінің санына қисық дәрежесін қосып, бірге тең (яғни басқару нүктелерінің саны плюс қисық реті). Торап векторы параметрлік кеңістікті бұрын аталған аралықтарға бөледі, олар әдетте торап аралықтары деп аталады. Параметр мәні жаңа торап аралығына кірген сайын, жаңа басқару нүктесі белсенді болады, ал ескісі жойылады. Сондықтан торап векторындағы мәндер кемімейтін ретпен орналасуы керек, сондықтан (0, 0, 1, 2, 3, 3) жарамды, ал (0, 0, 2, 1, 3, 3) жарамсыз. Бір-бірінен кейін келетін тораптардың мәні бірдей болуы мүмкін. Бұл нөлдік ұзындықтағы торап аралығын анықтайды, яғни екі басқару нүктесі бір уақытта белсенді болады (әрине, екі басқару нүктесі деактивацияланады). Бұл нәтижедегі қисықтың немесе оның жоғары туындыларының үздіксіздігіне әсер етеді; мысалы, бұл басқаша тегіс NURBS қисығында бұрыштар жасауға мүмкіндік береді. Бірнеше торап кейде белгілі бір көптікке ие торап деп аталады. Екі немесе үш есе көптігі бар тораптарды қос немесе үштік тораптар деп атайды. Тораптың көптігі қисықтың дәрежесімен шектеледі, өйткені жоғары көптік қисықты ажыратылған бөліктерге бөледі және басқару нүктелерін пайдаланбай қояды. Бірінші дәрежелі NURBS үшін әрбір торап басқару нүктесімен жұптастырылады. Торап векторы әдетте ретке тең көбейткіші бар тораптан басталады. Бұл логикалық, өйткені бұл бірінші торап аралығына әсер ететін басқару нүктелерін белсенді етеді. Сол сияқты торап векторы әдетте осы көбейткіштегі тораппен аяқталады. Мұндай торап векторлары бар қисықтар басқару нүктесінде басталады және аяқталады. Тораптардың мәндері кіріс параметрі мен сәйкес NURBS мәні арасындағы сәйкестікті басқарады. Мысалы, егер NURBS уақыт бойынша кеңістікте жолды сипаттайтын болса, тораптар функцияның басқару нүктелерінен өткен уақытын басқарады. Алайда пішіндерді бейнелеу үшін тораптар мәндерінің айырмашылығының қатынастары ғана маңызды; бұл жағдайда торап векторлары (0, 0, 1, 2, 3, 3) және (0, 0, 2, 4, 6, 6) бірдей қисықты жасайды. Тораптық мәндердің орналасуы параметр кеңістігін қисық кеңістігіне бейімдеуге әсер етеді. NURBS қисығын көрсету әдетте параметрлер ауқымы бойынша белгіленген қадаммен қадам жасау арқылы жүзеге асырылады. Торап аралықтарының ұзындығын өзгерту арқылы жоғары қисықтығы бар аймақтарда көбірек үлгілік нүктелерді пайдалануға болады. Тағы бір пайдалану жағдайы — параметр мәнінің белгілі бір физикалық мағынасы бар кезде, мысалы, егер параметр уақыт болса және қисық робот қолының қозғалысын сипаттайтын болса. Торап аралықтарының ұзындығы жылдамдық пен үдеуге айналады, бұл робот қолына немесе оның айналасына зиян келтірмеу үшін дұрыс болуы керек. Мұндай бейімдеуге икемділік — NURBS-тегі «біркелкі емес» деген сөздің мағынасы. Ішкі есептеулер үшін ғана қажетті тораптар, әдетте, модельдеу бағдарламалық жасақтамасын пайдаланушылар үшін пайдалы емес. Сондықтан көптеген модельдеу бағдарламалары тораптарды өңдеуге немесе тіпті көруге мүмкіндік бермейді. Әдетте, басқару нүктелерінің өзгеруін қарастыра отырып, ұтымды торап векторларын анықтауға болады. NURBS бағдарламалық жасақтамасының соңғы нұсқалары (мысалы, Autodesk Maya және Rhinoceros 3D) торап позицияларын интерактивті өңдеуге мүмкіндік береді, бірақ бұл басқару нүктелерін өңдеуге қарағанда әлдеқайда интуитивті емес.
Торапты қосу
Терминнің өзі көрсететіндей, түйін енгізу түйін векторына түйін қосады. Егер қисықтың дәрежесі *p* болса, онда *n* бақылау нүктесі *n+p* жаңа нүктемен алмастырылады. Қисықтың пішіні өзгермейді. Түйіннің ең жоғары көптігіне дейін түйін бірнеше рет енгізілуі мүмкін. Бұл кейде түйінді нақтылау деп аталады және қайталап түйін енгізуге қарағанда тиімді алгоритм арқылы жүзеге асырылуы мүмкін.
Торапты алып тастау
Торапты алып тастау – түйін енгізудің кері процесі. Оның мақсаты – тораптарды және олармен байланысты басқару нүктелерін жою, нәтижесінде қисықтың ықшамдалған бейнесін алу. Әрине, қисықтың нақты пішінін сақтап, мұны жасау әрқашан мүмкін болмайды. Іс жүзінде, торапты жоюға болатынын анықтау үшін қателіктерге белгілі бір шешім (толеранттылық) қолданылады. Бұл процесс қолмен қосылған басқару нүктелері бар интерактивті сессиядан кейін, немесе басқа форматтан қисық импортталғаннан кейін, оның нәтижесінде артық басқару нүктелері пайда болған жағдайда тазалау үшін пайдаланылады.
a curve from a different representation, where a straightforward conversion process leads to redundant control points.
Степенің көтерілуі
Белгілі бір дәрежедегі NURBS қисығын әрқашан жоғары дәрежедегі NURBS қисығымен бейнелеуге болады. Бұл жиі жеке NURBS қисықтарын біріктіргенде, мысалы, NURBS қисықтарының жиынтығы арқылы интерполяцияланатын NURBS бетін жасағанда немесе жапсарлас қисықтарды біріктіргенде қолданылады. Осы процесте әртүрлі қисықтарды бірдей дәрежеге келтіру қажет, әдетте қисықтар жиынтығының ең жоғары дәрежесіне. Бұл процесс дәреже көтеру деп аталады.
e. g., when creating a NURBS surface interpolating between a set of NURBS curves or when unifying adjacent curves. In the process, the different curves should be brought to the same degree, usually the maximum degree of the set of curves. The process is known as degree elevation.
Иілгіш
Дифференциалдық геометриядағы ең маңызды қасиет – қисықтық. Ол жергілікті қасиеттерді (қабырғалар, бұрыштар сияқты) және бірінші және екінші туынды арасындағы байланыстарды сипаттайды, сонымен қатар қисықтың нақты пішінін анықтайды. Туындыларды анықтағаннан кейін, қисықтықты екінші туындыдан доға ұзындығы арқылы есептеу немесе жуықтау оңай. Осы теңдеулермен қисықтықты тікелей есептеу мүмкіндігі, параметрленген қисықтардың көпбұрышты ұсынылымдарынан басты артықшылығы болып табылады.