Кіріспе
Компьютерлік ғылымдағы интерфейс, адам-компьютерлік өзара әрекеттесу және өзара әрекеттесу дизайны
Компьютерлік ғылымда, адам-компьютерлік өзара әрекеттесу және өзара әрекеттесу дизайнында тікелей манипуляция – қызығушылық тудыратын объектілерді үздіксіз көрсетуді, сонымен қатар жылдам, қайтымды және біртіндеп болатын әрекеттермен және кері байланыспен қамтитын интерфейстерге қатысты тәсіл. Басқа өзара әрекеттесу стилдерінен, мысалы, командалық тілден өзгеше, тікелей манипуляцияның мақсаты – пайдаланушыға оларға ұсынылған объектілерді, физикалық объектілерді манипуляциялауға аздап та ұқсас әрекеттерді қолдана отырып, өзгертуге мүмкіндік беру. Тікелей манипуляцияның мысалы – тышқанмен оның бұрыштарын немесе жиектерін сүйреп, тіктөртбұрыш сияқты графикалық пішіннің мөлшерін өзгерту. Объектілер мен әрекеттердің нақты метафоралары бар болса, пайдаланушыға интерфейсті үйрену және пайдалану оңайырақ болады (кейбіреулер интерфейс табиғирақ немесе түсініктірек дейді), ал жылдам, біртіндеп болатын кері байланыс пайдаланушыға қателерді азайтуға және тапсырмаларды аз уақытта орындауға мүмкіндік береді, себебі олар әрекетті аяқтамас бұрын оның нәтижесін көріп, осы арқылы нәтижені бағалап, қателерді түзете алады. Бұл терминді 1982 жылы Бен Шнайдерман кеңселік бағдарламалар және десктоп метафорасы контекстінде енгізді. Академиялық ортадағы және болашақ пайдаланушы интерфейстерін зерттейтін компьютерлік ғалымдар көбінесе тактильді басқару мен кері байланысқа немесе дыбыстық басқару мен кері байланысқа, көптеген GUI-лердегі визуальды кері байланысқа қарағанда көбірек мән береді. Осының салдарынан, бұл термин осы орталарда кеңінен таралды.
WIMP/GUI интерфейстерінен айырмашылығы
Тікелей манипуляция терезелерді, белгішелерді, мәзірлерді және нұсқау құрылғысын (WIMP GUI) пайдаланатын интерфейстермен тығыз байланысты, себебі олар көбінесе кем дегенде біршама тікелей манипуляцияны қамтиды. Дегенмен, тікелей манипуляцияны осы басқа терминдермен шатастыруға болмайды, өйткені ол міндетті түрде терезелерді немесе тіпті графикалық шығаруды білдірмейді. Мысалы, тікелей манипуляция ұғымдары соқыр немесе көру қабілеті бұзылған пайдаланушыларға арналған интерфейстерде тактильді және дыбыстық құрылғылар мен бағдарламалық жасақтаманы қолдану арқылы жүзеге асырылуы мүмкін. Интерфейстің тікелей манипуляцияны қаншалықты деңгейде іске асыратынына байланысты шаралар жиі кездеседі. Мысалы, терезе интерфейстерінің көпшілігі пайдаланушыға терезені тышқанмен сүйреп, орнын өзгертуге мүмкіндік береді. Ескі жүйелерде есептеу мүмкіндіктерінің шектеулі болуына байланысты терезені сүйреу кезінде оны қайта салу мүмкін болмады. Оның орнына, терезенің тіктөртбұрышты сызығы сүйреу кезінде көрсетілетін. Пайдаланушы тышқан батырмасын босатқаннан кейін ғана терезенің толық мазмұны қайта суреттелді.
Компьютерлік графикада
Компьютерлік графиканың геометрияны жасау және өңдеу, анимация, нысандар мен камераларды орналастыру, жарықтандыру және басқа да эффектілер сияқты әртүрлі аспектілерін визуализациялау мен манипуляциялау қиын болғандықтан, тікелей манипуляция 3D компьютерлік графиканың маңызды бөлігі болып табылады. Стандартты тікелей манипуляция виджеттерінен өзге, ескі проблеманы жақсырақ шешу немесе жаңа, бірегей проблеманы шешу үшін жасалған көптеген арнайы виджеттер де бар. Виджеттер пайдаланушыға объектіні кез келген бағытта өзгертуге мүмкіндік береді, сонымен қатар ең көп қолданылатын бағыттарда оңай өзгертуге көмектесетін нұсқаулар мен шектеулер ұсынады, мүмкіндігінше виджеттің қызметін түсінікті етуге тырысады. Ең көп қолданылатын үш түрлендіру виджеті көбінесе стандартталған: аударма виджеті, ол аударылатын объектінің ортасынан өтетін және координаттық осьтерге сәйкес келетін үш жебеден тұрады. Виджеттің ортасын сүйреу арқылы объекті тышқан курсорының астында, камера жазықтығына параллель жазықтықта жылжиды, ал жебелердің кез келгенін сүйреу арқылы объекті тиісті ось бойымен жылжиды. Осьтер әлемдік кеңістікке, объектінің кеңістігіне немесе басқа кеңістікке қатысты болуы мүмкін. Айналу виджеті әдетте үш шеңберден тұрады, олар координаттық осьтерге және камера жазықтығына сәйкес келеді. Кез келген шеңберді сүйреу арқылы объекті тиісті осьтің айналысында айналады, ал басқа жерді сүйреу еркін айналуға мүмкіндік береді (виртуалды трекбол айналысы). Көлденең виджет әдетте үш қысқа сызықтан тұрады, олар координаттық осьтерге сәйкес келіп, қораптармен аяқталады, және виджеттің ортасында бір қорап болады. Осьтерге параллель қораптардың кез келгенін сүйреу тек сол ось бойынша пропорционалды емес масштабтауға әкеледі, ал орталық қорапты сүйреу барлық үш ось бойынша пропорционалды масштабтауға әкеледі. Объектінің нақты қолданылуына байланысты әртүрлі виджеттер қолданылуы мүмкін. Мысалы, компьютерлік графикадағы жарық, кез келген басқа нысан сияқты, түрлендіру (аударма және айналу) арқылы анықталады, бірақ оны кейде тек соңғы нүктелерінің орналасуымен орналастырып, бағыттайды. Бұл жарық көзінің орналасуын анықтап, одан кейін жарықтың нысанасын анықтау, оны белгілі бір орынға бағыттау үшін координаттық осьтер бойынша айналдырудан гөрі интуитивті болуы мүмкін. Басқа виджеттер белгілі бір құралға арналған болуы мүмкін, мысалы, содырдың конусын өзгертуге арналған шеттік басқару элементтері, сплиндік басқару нүктесінің орнын және тангенстік векторын анықтауға арналған нүктелер мен тұтқалар, размыту сүзгісінің енін немесе сурет салу щеткасының мөлшерін анықтауға арналған өзгермелі өлшемдегі шеңберлер, қол мен аяқ үшін IK нысандары немесе түстерді жылдам таңдауға арналған түстер дөңгелектері мен палитралары. Күрделі виджеттерде ғылыми визуализациядан алынған элементтер де болуы мүмкін, олар тиісті деректерді тиімді ұсыну үшін қолданылады (мысалы, бөлшектер әсерлері үшін векторлық өрістер немесе түстер карталарын көрсету үшін жалған түсті суреттер). 3D компьютерлік графикадағы тікелей манипуляция, сондай-ақ жалпы пайдаланушы интерфейсінің дизайны әлі де жаңару мен инновациялардың белсенді саласы болып табылады. CG суреттерін жасау процесі, әсіресе күрделі және сирек кездесетін тапсырмалар үшін, пайдаланушының қалауынша оңай немесе интуитивті болмайды. Мысалы, мәтін өңдеуге арналған пайдаланушы интерфейсі жиі қолданылады, ол жаңа пайдаланушылар үшін оңай оқытылады және мәтін өңдеудің көптеген мақсаттары үшін жеткілікті, сондықтан ол толығымен шешілген және стандартталған UI болып табылады. Алайда, 3D компьютерлік графиканың пайдаланушы интерфейстері көбінесе оқыну және пайдалану қиын, күрделі тапсырмалар үшін жеткілікті қуатты емес және/немесе оқыну және пайдалану қиын, сондықтан тікелей манипуляция және пайдаланушы интерфейстері әрбір қолданбада әртүрлі болады.
the translation widget, which usually consists of three arrows aligned with the orthogonal axes centered on the object to be translated. Dragging the center of the widget translates the object directly underneath the mouse pointer in the plane parallel to the camera plane, while dragging any of the three arrows translates the object along the appropriate axis. The axes may be aligned with the world space axes, the object space axes, or some other space. the rotation widget, which usually consists of three circles aligned with the three orthogonal axes, and one circle aligned with the camera plane. Dragging any of the circles rotates the object around the appropriate axis while dragging elsewhere will freely rotate the object (virtual trackball rotation). the scale widget, which usually consists of three short lines aligned with the orthogonal axes terminating in boxes, and one box in the center of the widget. Dragging any of the three axis aligned boxes effects a non uniform scale along solely that axis, while dragging the center box effects a uniform scale on all three axes at once. Depending on the specific standard uses of an object, different kinds of widgets may be used. For example, a light in computer graphics is, like any other object, also defined by a transformation (translation and rotation), but it is sometimes positioned and directed simply with its endpoint positions. This is because it may be more intuitive to define the location of the light source and then define the light's target, rather than rotating it around the coordinate axes to point it at a known position. Other widgets may be unique for a particular tool, such as edge controls to change the cone of a spotlight, points and handles to define the position and tangent vector for a spline control point, circles of variable size to define a blur filter width or paintbrush size, IK targets for hands and feet, or color wheels and swatches for quickly choosing colors. Complex widgets may even incorporate some from scientific visualization to efficiently present relevant data (such as vector fields for particle effects or false color images to display vertex maps). Direct manipulation, as well as user interface design in general, for 3D computer graphics tasks, is still an active area of invention and innovation. The process of generating CG images is not considered to be intuitive or easy in comparison to the difficulty of what the user wants to do, especially for complex and less common tasks. The user interface for word processing, for example, is commonly used. It is easy to learn for new users and is sufficient for most word processing purposes, so it is a mostly solved and standardized UI. However, the user interfaces for 3D computer graphics are usually either challenging to learn and use and not sufficiently powerful for complex tasks and/or difficult to learn and use, so direct manipulation and user interfaces will vary wildly from application to application.