TW202347098A - 具有廣泛使用性的三維圖形使用者介面的系統及方法與對應的可讀式媒體 - Google Patents
具有廣泛使用性的三維圖形使用者介面的系統及方法與對應的可讀式媒體 Download PDFInfo
- Publication number
- TW202347098A TW202347098A TW112104572A TW112104572A TW202347098A TW 202347098 A TW202347098 A TW 202347098A TW 112104572 A TW112104572 A TW 112104572A TW 112104572 A TW112104572 A TW 112104572A TW 202347098 A TW202347098 A TW 202347098A
- Authority
- TW
- Taiwan
- Prior art keywords
- dimensional
- user interface
- graphical user
- vector
- graphical
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 239
- 230000033001 locomotion Effects 0.000 claims abstract description 469
- 239000013598 vector Substances 0.000 claims abstract description 434
- 238000001514 detection method Methods 0.000 claims abstract description 31
- 230000006870 function Effects 0.000 claims description 108
- 230000008569 process Effects 0.000 claims description 64
- 230000009471 action Effects 0.000 claims description 37
- 238000012545 processing Methods 0.000 claims description 37
- 238000013473 artificial intelligence Methods 0.000 claims description 35
- 238000013528 artificial neural network Methods 0.000 claims description 31
- 230000007246 mechanism Effects 0.000 claims description 28
- 238000009877 rendering Methods 0.000 claims description 28
- 230000003993 interaction Effects 0.000 claims description 26
- 238000012706 support-vector machine Methods 0.000 claims description 25
- 230000000694 effects Effects 0.000 claims description 22
- 230000002452 interceptive effect Effects 0.000 claims description 13
- 239000003086 colorant Substances 0.000 claims description 9
- 230000000007 visual effect Effects 0.000 claims description 9
- 238000005286 illumination Methods 0.000 claims description 7
- 238000010801 machine learning Methods 0.000 claims description 7
- 238000011065 in-situ storage Methods 0.000 claims description 6
- 230000009466 transformation Effects 0.000 claims description 5
- 230000001131 transforming effect Effects 0.000 claims description 4
- 230000006399 behavior Effects 0.000 claims description 3
- 238000002059 diagnostic imaging Methods 0.000 claims description 2
- 238000003860 storage Methods 0.000 claims description 2
- 230000001149 cognitive effect Effects 0.000 claims 1
- 238000013480 data collection Methods 0.000 claims 1
- 238000003384 imaging method Methods 0.000 claims 1
- 238000005457 optimization Methods 0.000 claims 1
- 230000008447 perception Effects 0.000 claims 1
- 230000001953 sensory effect Effects 0.000 claims 1
- 239000011159 matrix material Substances 0.000 abstract description 38
- 238000005516 engineering process Methods 0.000 description 41
- 241000699666 Mus <mouse, genus> Species 0.000 description 39
- 238000006073 displacement reaction Methods 0.000 description 28
- 230000036544 posture Effects 0.000 description 27
- 230000008859 change Effects 0.000 description 23
- 238000013519 translation Methods 0.000 description 22
- 238000013461 design Methods 0.000 description 18
- 238000005259 measurement Methods 0.000 description 11
- 238000009987 spinning Methods 0.000 description 11
- 238000009792 diffusion process Methods 0.000 description 10
- 210000004247 hand Anatomy 0.000 description 9
- 230000035945 sensitivity Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000010422 painting Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000004043 dyeing Methods 0.000 description 5
- 210000002414 leg Anatomy 0.000 description 5
- 230000003213 activating effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 4
- 239000000428 dust Substances 0.000 description 4
- 230000001815 facial effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000001356 surgical procedure Methods 0.000 description 4
- 241000282412 Homo Species 0.000 description 3
- 241000699670 Mus sp. Species 0.000 description 3
- 210000004556 brain Anatomy 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000002708 enhancing effect Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 210000004197 pelvis Anatomy 0.000 description 3
- 208000024891 symptom Diseases 0.000 description 3
- 206010034719 Personality change Diseases 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000009193 crawling Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000975 dye Substances 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 210000001624 hip Anatomy 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 239000000049 pigment Substances 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 210000000707 wrist Anatomy 0.000 description 2
- 238000010146 3D printing Methods 0.000 description 1
- 241000282472 Canis lupus familiaris Species 0.000 description 1
- 101710103327 Hydroxyacid-oxoacid transhydrogenase, mitochondrial Proteins 0.000 description 1
- 101100246038 Mus musculus Ptpn5 gene Proteins 0.000 description 1
- 240000007643 Phytolacca americana Species 0.000 description 1
- 101710172984 Probable hydroxyacid-oxoacid transhydrogenase, mitochondrial Proteins 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 210000000617 arm Anatomy 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000001217 buttock Anatomy 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000010224 classification analysis Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 238000009940 knitting Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000004579 marble Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000005293 physical law Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000010453 quartz Substances 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000611 regression analysis Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000035807 sensation Effects 0.000 description 1
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 1
- 238000010186 staining Methods 0.000 description 1
- 230000000946 synaptic effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 210000003371 toe Anatomy 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002023 wood Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0346—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/0304—Detection arrangements using opto-electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0338—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of limited linear or angular displacement of an operating part of the device from a neutral position, e.g. isotonic or isometric joysticks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0354—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
- G06F3/03543—Mice or pucks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0354—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
- G06F3/03547—Touch pads, in which fingers can move on a surface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0362—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 1D translations or rotations of an operating part of the device, e.g. scroll wheels, sliders, knobs, rollers or belts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/042—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/003—Navigation within 3D models or images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- Algebra (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Architecture (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
- Position Input By Displaying (AREA)
Abstract
一種具有三維圖形使用者介面的系統及方法。此三維圖形使用者介面提供一種加強的使用者接合互動的經驗,該經驗是經由一個使用者以一些獨立的自由度操控一個任意大小的物件的運動,並且使用足夠的自由度來代表該運動所取得的。在操作的時候,該三維圖形使用者介面從一個特殊的三維導航器上使用色彩偵測以及運動偵測的方法取得具有絕對地址形式的位置資料以及平移與旋轉運動向量。該三維導航器把色彩指標資料轉換給該三維圖形使用者介面使用,在該轉換過程裡,該三維導航器使用一個矩陣來代表一個物件的運動的6個自由度。
Description
本發明與一種三維圖形使用者介面(three- dimensional graphical user interface,3D GUI)有關,該三維圖形使用者介面亦可簡稱為三維圖形介面、三維人機介面、或三維視窗,該三維圖形使用者介面可以使用在一個電腦、一個電子顯示屏幕(electronic display)、一個控制系統(control system)、或一個機電系統(electro-mechanical system)上。本發明三維圖形使用者介面係藉由提供給一個三維物件(3-dimensional, (3D) object)絕對地址(absolute address)、線性(Linear)以及非線性(Non-linear)運動向量(motion vector),使得該三維物件能夠按照物理運動學(Kinematics)的原理,以至少三個彼此獨立的自由度 (degrees of freedom)運動;同時本發明可使用一個圖像呈現器材 (graphic rendering device),將上述該物件或該運動呈現給使用者觀看。
習知在一般的情形下,一個所謂的圖形使用者介面 (graphical user interface, GUI),是指一個軟體模組(software module),該軟體模組鑲嵌在一個電子系統或一台電腦裡面。或者更明確地說,該軟體模組可以嵌入在一個電子系統或電腦的作業系統(operating system)裡面,或是嵌入在一個或複數個網路伺服器(server)上。對於一個圖形使用者介面而言,它的最終目的就是要使它的使用者感覺到自己能夠與一個顯示器件(displaying device)裡所展示出來的一些特徵圖形(graphical features)接合互動(engage);例如,該些特徵圖形(graphical features)是一些圖符(icons),一些功能欄(menu bars),一些標題欄(title bars),或是一些標籤頁(ribbons)等等。
一個圖形使用者介面(graphical user interface, GUI)不僅能夠提供以上所述的這些特徵圖形(features)給一個使用者,同時也可以提供給該使用者一些與圖形輸出沒有關係的功能;比如說,該功能與聲音的播放(audio),語音的辨識(speech recognition),指紋辨識(fingerprint reading),智慧型機器(intelligent agents),機器人的操作(robotic manipulation)等等有關;或者,該功能與一些先進的分析技術(advanced techniques of analysis)有關;比如說,該功能與機器學習(machine learning)有關;或者,該功能與神經網路(neural networks)有關;再或者,該功能與一個自動化的設備打開或關閉一個電子器材有關;再或者,該功能與調查使用者的習慣(habits)欲望(desires)有關。
我們所謂的一個圖形使用者介面是設計良好的(a well-designed GUI),是指該圖形使用者介面能夠容易地與使用者接合互動(i.e., engages its users relatively easily);同時,該介面能夠開創一些直覺的(intuitive)/直接(direct)的人機交互反應(interactions)。在過去數十年來,電腦的圖形使用者介面都是二維的(two-dimensional, 2D),比如說,該電腦上的圖符(icons),游標(cursor)等等,都是二維的。當三維數位圖案(3D digital graphics)的時代來臨時,一種與三維數位圖案相互對應的接合互動型圖形使用者介面(user-engaging type of 3D GUI)的需求亦隨之誕生,該圖形使用者介面是一種三維圖形使用者介面,該三維圖形使用者介面能夠將一些新的機能考慮進來;比如說,該些新的功能至少包括以一種直覺(intuitive),直接(direct),及時(real-time),以及智慧(intelligent)的方式來移動一個三維卡通裡的角色;或者,該圖形使用者介面能夠按照一個使用者的指令(instruction),以一種直覺(intuitive),直接(direct),即時(real-time),以及智慧(intelligent)的方式去操控一個機器人。
過去有許多習知的技術提出一些改善圖形使用者介面功能的方法,該些方法能夠使得一個圖形使用者介面的設計獲得改善;或者,該些方法能夠使一個圖形使用者介面具有更多樣(versatile)的功能,但是上述的這些努力都無法提供本發明所提供的功能。比如說, Ullman (US 9,405,430) 揭露了一種圖形使用者介面, 該圖形使用者介面包含一種功能選擇樹(menu tree),該功能選擇樹能夠使一個游標在進行選擇指令時,減少其過程中所須要移動的距離。Anzures (US 8,736,561)所揭露的是一種調整一個圖案化物件 (graphical object)的內容(content)或涵意(context)的方法。Tseng (US 8,954,887)所揭露的是一種圖形使用者介面,當一個觸控屏幕被其使用者按壓超過一段時間以後,其圖形使用者介面會彈出一個新的視窗。
Kushman (US 9,189,254)所揭露的是一種自動化工具(automated tool),該自動化工具能夠透過各個使用者的圖形介面,與一個網站(web site)上複數個的使用者接合互動。Fostall (US 9,690,446)所揭露的是一些手指的姿態(profiles of finger gestures),該些手指的姿態是由一個觸控屏幕面板所偵測到的,該些手指的姿態使得該觸控屏幕面板的圖形使用者介面用起來變得更具直覺性(more intuitive)。Matthews (US 8,527,896)所揭露的是一種神經網路系統(neural network system),該神經網路系統針提供一種時域與頻域之間的轉換器(time-domain-to-frequency-domain converter),該轉換器能夠在該神經網路系統提取特徵信號(features)之前,針對該些輸入信號作時域與頻域之間的轉換,進而使得該神經網路系統的信號處理器(processor)能夠降低其工作負擔。
圖1D所繪示的是一個以往的二維(two-dimensional, 2D)圖形顯示器(graphical displaying device), (115);該二維圖形顯示器可以是一個電腦監視器(monitor)。圖1D同時也示出一種圖形使用者介面(105),該圖形使用者介面(105)被應用在前述的一個二維圖形顯示器(115)上,值得注意的是,該圖形使用者介面(105)也是二維的;因此之故,如圖1D進一步所繪示的,位於該圖形使用者介面(105)上的特徵圖形(graphical features),例如圖符(108),它的格式(format)也是二維的。基於以上所述的關聯性(correspondence),一個圖1A裡面繪示的傳統的導航器(101),例如:滑鼠,所提供的運動向量,它的格式也是二維的;有關於這個現象,圖1C有進一步的示出。
如圖1C與1D所示, 當電腦系統(112)運作時,它是藉由一個使用者在二維的參考平面(104)上移動導航器(101)達到其移動游標(111)的目的;該二維的參考平面(104)可以是一個滑鼠墊或是一個桌面。當該滑鼠(101)沿著該二維參考表面(104)移動時,它的影像偵測器(102)會擷取一系列有關該二維參考表面(104)的影像,並且將對其作比較,然後該滑鼠(101)將一些相對運動向量(relative motion vectors)傳給一個電子系統(112),或傳給一個或一群伺服器(Servers),該些伺服器是以一個網路連結起來,該網路可以是一個網際網路(internet),也可以指示成一種功能與上述網際網路類似的連結方法。
當圖1D裡所出示的電腦(112)接收到前述的運動向量資料時,圖1B裡所出示的二維圖形使用者介面(105)裡的游標(111)會作出相對應的運動。圖1C更進一步解釋其細部的步驟;如圖1C所示,當滑鼠(101)在一個滑鼠墊或是一個桌面(104)上以一個二維運動向量(Δu, Δv)移動時,一個位於二維圖形使用者介面(105)裡的游標(111)會產生一個相對應的運動向量(∆x, ∆y)。
在本發明裡,一個三維圖形使用者介面可以如圖2A的(207)所繪示,當一個以往的二維導航器(101)被使用在一個如(207)的三維圖形使用者介面(3D GUI)上時,它會面對幾個挑戰:第一點,當一個二維滑鼠的資料要被轉換成三維的格式,以方便後續三維圖形使用者介面使用時,它所需要作的矩陣(matrix, array, tensor, etc.)轉換程序(transformation process)會耗費掉中央處理器(CPU)或圖形處理器(GPU)很多的能量以及時間。第二點,而且這一點可能比前述的第一點還重要,以往的二維滑鼠(101)無法提供一個三維圖形使用者介面角位移的資料(angular displacement data);最後一點,以往的二維導航器(101)缺乏一個可以廣泛使用的方法(a comprehensive means),該方法可以提供深度的數值(depth value)。
因此,本發明的目的,即在提供一種具有廣泛使用性(“pervasive”, comprehensive and fully integrated, 亦即功能廣泛,完整整合的)的三維圖形使用者介面(3-dimensional graphical user interface, 3D GUI)的系統及方法。
與本發明有相同申請人的US10,254,855揭露了一個高解析度與高敏感度(high resolution and high sensitivity)的三維導航器,該發明尚未揭露的技術是一個三維圖形使用者介面應如何使用機器人的運動學,立體視角,人工智慧,並且在處理大小如一個像素的物件如何賦予該物件6個自由度等功能,以使一個電腦能夠與一個使用者緊密地接合互動。
於是,本發明之一觀點,提供一種系統,至少包括:
一種記憶體以及至少一種處理器,該處理器與一個電腦、一個顯示系統、一個電子系統、或一個機電系統 (electro-mechanical system)的該記憶體耦合(coupling);該系統上有一種顯示器件(display device),該顯示器件上呈現出一個三維圖形使用者介面(three-dimensional graphical user interface,3D GUI)。
其中,該三維圖形使用者介面能夠在一個由該三維圖形使用者介面所代表的三維空間(3D space)裡以至少具有三個自由度(degrees of freedom)的運動移動一個三維的物件,該運動具有線性運動向量(linear motion vector)或/以及非線性運動向量(non-linear motion vector)的特性。
其中,該線性運動向量與該非線性運動向量分別代表平移(translational)與旋轉(rotational)運動,該線性運動向量與該非線性運動向量是從一個導航器(navigational device)在一個參考表面上的一個單一的姿態運動(a single gestural motion)所產生的,在產生該線性運動向量與該非線性運動向量的時候,該系統沒有使用其它的輸入器件或運動偵測器件。
在一些實施態樣中,其中,在該物件被從一個參考表面上量測絕對地址(absolute position)的該導航器移動以後,該物件的位置的準確度(positional accuracy)在該移動過程裡保持穩定,不受定位的累積誤差(accumulated errors of position)所影響。
在另一些實施態樣中,其中,該三維空間包含一個預先決定好的向量場(vector field),該向量場能夠與該導航器所提供的該線性運動向量或/以及該非線性運動向量結合,從而形成該物件的一個新的運動向量,其中,該新的運動向量的大小(magnitude)與方向(directionality)與不使用該導航器時所形成該物件的另一運動向量不同。
在另一些實施態樣中,其中,該三維圖形使用者介面所代表的該三維空間裡包含有複數個二維的平面,其中,每一個該二維的平面代表一個特殊的應用程式或功能。
在一些實施態樣中,其中,活化(activating)或非活化(de-activating)該些二維的平面需要提供給一個物件或游標一個非線性運動向量。
在另一些實施態樣中,其中,一個可被該系統取得或觸及的(accessable)物件的主要的性質是由一個矩陣 的資料來代表,而不是由一個定義一個數學的點的單一數值來代表,該物件是一個游標、一個圖形實體(graphical entity),或一個物理上的物體(physical object)。該矩陣如實施方式中的公式(8)所示。
在另一些實施態樣中,該系統至少還包含有一些獨立的軟體模組,該些軟體模組以一種層狀的架構,部份地或完整地,儲存於該系統的該記憶體裡,其中一些軟體模組獨立地(separately)專注於立體繪圖法(perspectives)以及/或機器人運動(robotic kinematics)的工作,該些軟體模組可以分別運作(separately)或合作(collaboratively)運作。
在另一些實施態樣中,其中,該三維圖形使用者介面使用一個裝載於該系統的該記憶體裡面的作業系統(operating system),並且藉由該線性運動向量與該非線性運動向量使一個使用者與一個顯示在該三維圖形使用者介面裡面的一個物件互動,或與一個被該電腦、該電子系統、或該機電系統控制的物件互動,其中,該線性運動向量與該非線性運動向量可以賦予或產生在一個圖形實體(graphical entity)上,該圖形實體可以小至如一個像素(pixel)大,或小至如一個圖形使用者介面的最小繪圖單位,例如一個體素(voxel)大小。
於是,本發明之另一觀點,提供一種系統,至少包含:
一種記憶體以及至少一種處理器,該處理器與一個電腦、一個顯示系統、一個電子系統、或一個機電系統的該記憶體 耦合;該系統能夠增強一個使用者與一個三維景致(3D scenery)的接合互動的經驗(experience of engaging),該三維景致是被呈現在一個三維顯示器件裡,該三維景致裡有複數個三維向量圖形(vector graphics)。
其中,該系統能夠調整一個鑲嵌於一個三維圖形呈像器件(3D graphical rendering device)裡的2.5D座標系統(2.5D coordinate system)的一立體視角 (perspective angle)。
其中,該立體視角是該2.5D座標系統的X 軸與Z 軸的一夾角(angle of intersection),或是該2.5D座標系統的的X 軸與Y 軸的一夾角。
該系統能夠使一個操作者將複數個圖形向量(graphical vectors)以及/或一些運動向量視覺地(visually)分類(classify)成幾個不同的類別(different classes),其中該等圖形向量是用來架構(construct)該等三維向量圖形的實體(entities),其中每一個該類別(class)代表一個特殊的特徵圖形(features)的組合,該特徵圖形與該等三維向量圖形有關,該特徵圖形與其它類別的該特徵圖形不同。
在一些實施態樣中,其中,當該系統經由給定一個世界空間照相機(world space camera)的 一個起始的三維位置,隨後以一系列的平移以及旋轉運動向量將該立體視角送達到一個特定立體視角角度(perspective angle)的時候,該視覺的分類(visual classifying)達到一個最優化的條件(optimal condition)。
在另一些實施態樣中,其中,該系統能夠藉由操控該三維景致與該使用者接合互動,其中一些展示於該三維景致裡的圖形化物件是以一些三維的節點(node;例如頂點 vertex)作代表,該些三維的節點具有三維地址以及三維運動向量的特性,其中每一個三維地址具有X、Y、以及Z的組成成分,或至少有一個三維運動向量具有ΔX、ΔY、以及ΔZ;以及/或α、β、以及γ的組成成分;其中該些節點根據一個游標與該些節點的互動被分類成幾個類別。
於是,本發明之另一觀點,提供一種使用者與複數個物件接合互動(engaging) 的方法,該方法於電腦上執行,該複數個物件位於一個顯示器件裡的三維圖形使用者介面裡面,該方法至少包括以下的步驟:
提供一個三維導航器,該三維導航器能夠與該三維圖形使用者介面通訊(communicating),該三維導航器是在一個參考表面上移動。
或者,使用一個具有線性運動向量或/以及非線性運動向量特性的控制器件來與該三維圖形使用者介面通訊,該三維導航器或該控制器件沿著躺在一個表面上的二維的向量運動,該表面具有至少三種顏色(tinted by tri- coloration) 或至少三種不同波長範圍。
將該二維的向量轉換(transforming)為一個三維的向量,或將該二維的向量轉換為一個維度比二維高的向量,該轉換是一種針對該染上三種顏色的表面的一塊區域的輝度值(hue value)所作出的轉換,該區域的影像是由一個位於該三維導航器或該控制器件內的彩色影像偵測器(color-sensitive image sensor)所擷取的。
於是,本發明之另一觀點,提供一種系統,能夠控制一個連接於該系統上的機器人,該系統至少包含有:
一種記憶體以及至少一種處理器,該處理器與一個電腦、一個顯示系統、一個電子系統、或一個機電系統的該 記憶體耦合;該系統上有一種顯示器件,該顯示器件上呈現出一個三維圖形使用者介面(3D GUI)。
一個導航器,該導航器能夠以即時(real time)的方式操控該 機器人的位置與運動。
其中,該機器人的位置與運動具有三個以上的自由度,該機器人的位置與運動都是能夠被該系統使用該導航器,以在原位(in-situ)的方式控制的。
其中,該三維圖形使用者介面(3D GUI)能夠監控三個以上的該自由度,該運動能夠被該三維圖形使用者介面(3D GUI)修改。
在一些實施態樣中,其中,該機器人是一個具有任意形狀的結構,或是一個具有關節的結構。
在一些實施態樣中,其中,該具有任意形狀的結構是一個卡通角色,或其它的圖形化結構。
在另一些實施態樣中,其中,該機器人是該三維圖形使用者介面(3D GUI)以外的一個可以移動的器件。
在另一些實施態樣中,其中,該機器人如果是看不到的但是還是可以被一個使用者控制的,該機器人的功能如同一台立體相機(perspective camera),該立體相機是從一個由該機器人所指定的特定的位置, 立體視角(perspective angle)看進去一個由該三維圖形使用者介面(3D GUI)所呈現的景致。
在另一些實施態樣中,其中,如果該系統被架構成一個狀態,使得該機器人是看不到但是還是可以被一個使用者控制著,該機器人執行其中一種功能:(a)執行一個簽名程序;(b)執行一個繪圖程序的功能;(c)執行一個動畫裡的卡通的一種功能;(d)執行一個動畫式電子遊戲(video game)裡的一個角色的動作;(e)執行一種三維影像診斷的程序;執行上述其中一個功能的該機器人可以被視為一個操作者的肉體的手指、手部、脕部、肘部、手臂、腿、頭、或軀幹。
於是,本發明之另一觀點,提供一種電腦系統,該電腦系統至少包含有:
一種顯示器件;一種記憶體;一個系統或至少一種處理器,該系統或該至少一種處理器與一個電腦、一個顯示系統、一個電子系統、或一個機電系統的該 記憶體耦合;該系統還包含有一種或一種以上的顯示器伺服器(display server)。
一個三維圖形使用者介面(3D GUI),該三維圖形使用者介面被投射在一個該顯示器件上,該三維圖形使用者介面至少包含有一種層形架構的軟體模組(layered configuration of software modules),該層形架構的軟體模組儲存於該電腦系統的該記憶體內,該層形架構的軟體模組能夠與該處理器互動並且被該處理器執行。
該三維圖形使用者介面能夠在該顯示器件上建立起一些區域,該些區域被稱為視窗(windows);在該些視窗裡,一些圖形化物件(graphical objects)可以被顯示在一個三維座標系統裡;其中該些圖形化物件可以由一些位於該三維座標系統裡的絕對位置(absolute positions)來代表。
該圖形化物件可以遵循物體的三維運動學(Kinematics)裡的平移運動以及旋轉運動來移動,該圖形化物件的三維運動的總合自由度(至少包括平移運動以及旋轉運動)至少有三個,該圖形化物件的位置的準確度不會因為該移動而損失掉。
一個三維的導航器,該三維的導航器能夠選擇是否使用一個應用介面(application interface,API)來與該三維圖形使用者介面(3D GUI)交互反應,而且該三維的導航器能夠提供一個該三維座標系統裡的絕對位置給一個在該三維圖形使用者介面(3D GUI)裡展示的該圖形化物件。
藉由執行儲存於該電腦系統的該記憶體裡的該些軟體模組,使得該圖形化物件在該顯示器件裡以至少三個自由度在兩個該絕對位置之間移動;在該移動的期間,該圖形化物件的運動遵循運動學(Kinematics)裡的平移運動以及旋轉運動來移動。
在一些實施態樣中,其中,該些軟體模組包含一些該處理器可讀而且可執行的指令,該些指令是用來產生一些機器人的動作,或按照三維運動學(three- dimensional kinematic)以及立體畫法(perspective)的法則產生一些圖形化的動作(graphical actions)。
在另一些實施態樣中,其中,該些軟體模組在運作上更被一個顯示器伺服器(display server)管理,使得該些軟體 模組的功能適當地顯示在該視窗裡。
在另一些實施態樣中,其中,該些軟體模組包括一些處理模組(process modules),該些處理模組獨立地控制游標的移動、立體畫法的操控(perspective manipulation)、機器人、以及機器學習的程序。
於是,本發明之另一觀點,提供一種於三維圖形使用者介面(3D GUI)同時與複數個三維的物件接合互動的方法於電腦上執行,該方法是由一個三維導航器的一個預先設定好的動作所引起的,該方法是用來啟動一種機構,該機構是選擇/不選擇一個事件的狀態用的,其中該預先設定好的動作至少包含以下的步驟:
當一個使用者在一個二維的參考表面上移動該三維導航器的時候,藉由將一隻手指置於該三維導航器的上表面,使得一個位於該三維圖形使用者介面(3D GUI)裡的一個三維游標以對應(corresponding)的方式在一個二維的平面上移動,該二維的平面的傾斜的狀況(tilting condition)是按照該手指在該三維導航器的表面的位置所控制的。
在一個動作開始的時候,該使用者壓下一個位於該三維導航器上的按鍵或壓下一個位於該三維導航器上的該機構以決定一個第一個端點的位置,該三維導航器位於一個二維的參考表面上;持續壓著該按鍵或持續保持該機構在壓下的狀態,直至該游標沿著該二維的平面已經移動了一段距離,到達了第二個端點,使用該第一個端點與該第二個端點作為對角線,該三維圖形使用者介面(3D GUI)在一個三維空間裡建立起一個體積,該體積使得一個使用者能夠選擇/不選擇該些被該體積包圍的物件。
該導航器的表面上具有一種偵測器,該偵測器能將該手指在該表面上的一個二維運動/位址轉換為一個三維的運動/位址信號。
於是,本發明之另一觀點,提供一種在原位(in-situ)的方式控制/調整一個機器人的運動的方法,該方法於電腦上執行並且至少包括以下的步驟:
將一些矩陣相乘,其中每一個矩陣的維度是不小於三。
使用一個能夠同時提供三維的平移以及旋轉運動向量的移動器件(maneuvering device),使得該機器人上的一個被選擇的關節或可移動的零件改變其位置或運動,同時該機器人上其它未被選擇的關節或零件繼續經歷未改變的預先設定好的動作。
在一些實施態樣中,其中,該機器人的運動的方法為一種三維的螺旋運動 (3D spiral)。
在另一些實施態樣中,其中,該機器人的運動的方法至少包含有前進運動學 (forward kinematics) 與逆向運動學 (inverse kinematics) 的方法,其中,至少有一個由該前進運動學與/或該逆向運動學的方法所產生的運動是由該移動器件所產生的。
在另一些實施態樣中,其中,該機器人的運動的方法可以被使用來一種驅動一個動畫式電子遊戲,卡通動畫,或電影裡的一個互動式角色的運動。
於是,本發明之另一觀點,提供一種在電腦上執行的圖像呈現方法,該方法是在一個電腦、一電子控制系統、或一機電系統上創造出一種數位印象派的圖像呈現效果(digital impressionistic graphical rendering effect),該方法至少包含以下幾個步驟:
在一個三維圖形使用者介面(3D GUI)裡產生一個三維的圖形化物件,該三維的圖形化物件具有一些基本性質,其中一個基本性質是該三維的圖形化物件具有一個體積;其中該三維的圖形化物件是由一些彼此相連的頂點(vertices)所架構起來的,其中該些頂點定義一個外部形狀由一些小平面(facets)所形成的該三維的圖形化物件。
在該電腦、該電子控制系統、或該機電系統的一記憶體裡,創造出一個特徵向量空間(feature vector space),該特徵向量空間是用來代表該三維的圖形化物件用的,其中每一個頂點與一個多維度的特徵向量空間(multidimensional feature vector)有關,並且其中每一個頂點都具有一個法 向量垂直於一個與該頂點相對應的小平面。
在該電腦、該電子控制系統、或該機電系統的該記憶體裡,該三維圖形使用者介面使用一些彼此清楚的界限(distinct margines)將一些該多維度的特徵向量分離開來(亦即分類,classifying),將該些法向量與該些小平面對準幾個方向, 使得該些頂點與由該些頂點所定義的小平面以一種觀看者能夠看得到的(perceivable)而且可識別的(recognizable)方式分類。
在一些實施態樣中,其中,該方法使用一個在彩色或染過色的(tinted)二維參考平面上以可受控制的方式移動的三維導航器去接觸(access)一個被選擇的頂點,同時,藉由碰觸(touch)該三維導航器的一種表面元件(surface element) 來改變該三維導航器內部的一個照明系統(system of illumination)的一些照光強度(intensities),使得該被接觸的頂點的法向量的方向改變,同時也改變該圖形化物件在該頂點附近的視覺特性(visual characteristic)。
於是,本發明之另一觀點,提供一種在電腦上執行的三維圖像呈現(graphical rendering)方法,該方法至少包含以下的步驟:
以參考至少一個消失點(vanishing point)的方式呈現一些三維圖形向量(graphical vectors)。
其中一個消失點的位置可以被一種人工智慧的技術(artificial intelligence technique)操控。
將其中一些被該方法追蹤的三維圖形向量分組,其中每一組與其它組之間形成一種界限(margin),該界限是能夠被該方法的使用者識別的(is configured to be recognized)。
其中當該界限達到不同的數值的時候,該方法產生一些圖像呈現效果(graphical rendering effects),或支持一個使用者與該方法之間一些不同層次的互動(levels of interaction)。
在一些實施態樣中,其中,該人工智慧的技術至少包含支援向量機(support vector machine,SVM)或神經網路(neural network)。
在另一些實施態樣中,其中,該人工智慧的技術至少包含一種可以被一個使用者控制的人工方法。
於是,本發明之另一觀點,提供一種非暫態性 (non- transitory)的電腦可讀式的媒體(computer readable storage medium),該媒體具有一些指令(instructions),當該些指令被一個處理器(processor)執行的時候,該處理器在一個顯示系統裡呈現出一個三維圖形使用者介面(3D GUI),並且執行一些操作,該些操作至少包含:
以一種具有至少三個獨立的自由度的運動移動一個被該三維圖形使用者介面(3D GUI)呈現出來的三度空間裡的一個物件,該運動帶有線性運動向量以及/或非線性運動向量的特徵。
其中,該線性運動向量以及/或該非線性運動向量分別代表平移運動向量以及旋轉運動向量,該線性運動向量以及/或該非線性運動向量是由一個位於一個參考表面之上的導航器的單一姿態運動所產生的,在產生該線性運動向量以及/或該非線性運動向量的時候該導航器不需要應用其它的輸入或其它的移動偵測器件。
為了解決以上所述的習知技術的短處,本發明的一個目的就是提供一種具有廣泛使用性(“pervasive”, comprehensive and fully integrated, 亦即功能廣泛,完整整合的)的三維圖形使用者介面(3-dimensional graphical user interface, 3D GUI),該三維圖形使用者介面使一個電腦、電子控制系統、或機電系統能夠藉由使用足夠的自由度來操控一個物件的運動,增強使用者與其接合互動的經驗(enhances the user’s engagement experience);值得注意的是,上述的操控可以實施在不論任何大小的物件上;比如說,該物件可以小至像一個像素(Pixel)一般的大小,或該物件可以大到是一個網路,該網路是由複數個電腦所組成的。 讀者應注意,在本發明文件裡,從此處開始,所有有關於三維圖形使用者介面(3D GUI)的揭露,均可以使用圖2A 裡所繪示的三維圖形使用者介面(207)作代表,同時,為了簡化說明起見,上述的三維圖形使用者介面(207)有時會被指示成「本發明三維圖形使用者介面」,或「本三維圖形使用者介面」,或「本三維圖形介面」。
為了達到以上的目的,一個三維圖形使用者介面必須要提供一個三維物件絕對地址,線性與非線性運動向量,使得其使用者能夠得到一種直接接合互動的經驗(experience of engaging directly with 3D object),該直接接合互動的經驗使得該使用者感覺到自己與一個三維物件之間的接合互動是非凡的,透明(transparent)的;該接合互動是如此的透明,如此的非凡,以致於該使用者不再感覺到自己是在透過使用一個圖形使用者介面與一個三維物件作接合互動的。此外,當一個電腦、電子控制系統、或機電系統提供一個如美國專利號US10,254,855所揭露的高解析度與高敏感度(high resolution and high sensitivity)的三維導航器給本發明三維圖形使用者介面時,本發明三維圖形使用者介面能夠提供給使用者最完整的功能與便利(fullest capabilities and advantages);有關於上述高解析度與高敏感度的三維導航器的功能,本發明會在以後的篇幅(例如,實施例的第1節)作更進一步的揭露。
值得注意的是,該高解析度與高敏感度的三維導航器,能夠提供給一個物件/體(object)絕對地址(absolute address); 在整個運動期間,該高解析度與高敏感度的三維導航器所提供給該物體的位置能夠保持一致的準確性;與此相反的是,以往的導航器所提供給物體的位置資訊,是藉由一連串的逼近算法(successive approximations)得到的,此種逼近算法會使得一個以往的導航器所偵測到的運動資訊的準確性隨其使用時間的長度而持續地衰退。本發明三維導航器之所以能夠準確地偵測到上述運動資訊,是其在一個特殊的彩色或染過色的參考表面(specially tinted reference surface)上運動的結果。更進一步地說明,本發明三維圖形使用者介面能夠提供一個2.5D 座標系統(一個二維的座標系統加上一個獨立的旋轉軸(a 2D system with a separate rotational axis),此一2.5D座標系統能夠藉由提供給使用者與三維的景物之間的互動(interacting with 3D scenery),幫助其了解該三維的景物;更明確地說,本發明三維圖形使用者介面是一種使用三維向量圖形(3D vector graphics)的呈像方法(renderings)。
本發明三維圖形使用者介面能夠以具有六個自由度的線性與非線性運動向量移動一個世界空間照相機/立體照相機(perspective camera/perspective camera);藉由移動此一世界空間照相機,本發明達到操控一個立體視角(perspective angle)的目的(在本發明裡,「世界空間照相機」與「立體相機」具有相同的意義與功能)。本發明三維圖形使用者介面能夠藉由操控該立體視角,將一些三維圖形向量(3D graphical vectors),以及或一些三維運動向量分類(classify);此處讀者應特別注意的是,本發明所指示的三維圖形向量(3D graphical vectors),是一種用於建構前述三維向量圖形(3D vector graphics),或三維運動向量所使用的基本圖形實體(basic graphical entities),該三維圖形向量可以用來指示該三維向量圖形或該三維運動向量與使用者接合互動的程度(levels of user engagement)。
本發明主張以下三件美國優先權:(1) 美國申請案號16/056752,申請日 2018年8月7日;(2) 美國申請案號16/164928,申請日2018年10月19日;(3)美國申請案號16/456009,申請日 2019年6月28日。
本發明與以下的美國發明或中國申請案有關:(1) 美國專利號US 9,720,525,申請日2012年5月29日;(2)美國申請案號 13/834,085,申請日2013年3月15日;(3) 美國專利號US 9,733,727,申請日2013年10月15日;(4)美國專利號US 10,254,855,申請案號14/294,369,申請日2014年6月3日;(5) 美國專利號US9,703,396,申請日2013年7月12日;(6)中國專利申請號201410673274.7,申請日2014.11.19。
如以上所述,本發明所揭露的是一種三維圖形使用者介面 (three-dimensional graphical user interface,3D GUI); 圖2A 的 (207) 所繪示的是該三維圖形使用者介面被使用在一個電子系統上,比如說,該電子系統是一個電腦。這樣的器件 (具有(207) 的電子系統) 提供給一個三維物件絕對地址 (absolute address),線性與非線性運動向量 (linear and non-linear motion vectors),賦予它的使用者一種直接與該三維物件接合互動的經驗 (experience of engaging)。例如,圖2A 的三維圖形使用者介面 (207) 裡的卡通精靈 Genie (204) 在位置 (x’, y’, z’) 上接受到不同的移動方向 (亦即,從n” 改變至n’”),這使得一個受精靈 Genie (204) 控制的飛毯 (201) 根據旋轉平面 (Plane
abc) 不同的向量 n 以及 n’做出相對應的移動 (詳細內容會在以後的節裡有所討論),本發明所揭露的三維圖形使用者介面不僅提供了架構以及操控一個三維結構 (亦即,該精靈 204或一個三維景致) 的方法,同時也提供一個以許多自由度來操控一個像機器人這樣的三維物件的完整的方法。
經過多年的技術發展, 習知的圖形使用者介面 (GUI) 幾經演化,現在已能夠提供許多種形態的外觀景致 (outlooks), 此處的外觀景致泛指一種視覺表現的一般形式 (general forms of visual presentation),同時,習知的圖形使用者介面也提供了一些特殊的機能 (special features),該些特殊的機能至少包括翱翔的圖符 (hovering icons),以及游標迅速抓住物件的功能 (snapping)。如果我們從上述的外觀景致作一般性的判斷,一個圖形使用者介面可以按照其賦予給其所出示的物件的自由度 (degrees of freedom, DOF),大致分為二維 (2D),2.5維 (2.5D),或三維 (3D) 幾類 (此處的 2.5D 的意思是指一個座標系統除了具有以2D 的格式標示物體座標位置的能力之外,它同時還具有一個旋轉軸,該旋轉軸與使用在該2D 格式上的另兩個座標軸彼此獨立; 2.5D hereinafter means 2D format with a separate rotational axis capability)。
但是,從如何增強使用者接合互動,學習的經驗的觀點來看,一個圖形使用者介面的效能並非僅只是其所提供的整體外觀景致的函數,它也包含了一些由軟體與硬體工程結合起來所產生的更精緻更複雜的效應。
比如說,當一個圖形使用者介面把一個圖符展示成翱翔 (hovering) 的樣子的時候,它的觀察者可能會以為該圖形使用者介面具有真正三維呈現圖像的能力 (true 3D rendering capability);但是當該觀察者發現該圖形使用者介面不能夠以三維的方式移動該翱翔的圖符時,事實上,一個圖形使用者介面最終的能力與價值是由該圖形使用者介面與它的使用者之間的全面性互動 (full interaction) 來決定的,而不是由一些表面現象來決定的。
游標迅速抓住物件的功能 (cursor snapping) 是另一個例子;該機能原先是為了彌補以往的導航器定位準確性不足的問題而設計的,這個問題是所有相對運動偵測器普遍都有的。但是,當一個現代的圖形使用者介面裝備上觸控機能時 (touch-sensitive feature; 注意, 此種具備觸控功能的圖形使用者介面仍然算是一種習知技術),它就已經具備使用絕對地址來接近圖符的能力了。結果,前述的游標迅速抓住物件的機能 (cursor snapping) 變成一個較不重要的機能,而以上所述的游標定位準確性不足的問題也變成了一個只有對歷史有興趣的人才有想知道問題,或更明確地說,該問題只有受到以往的導航器的影響 (圖 1A 裡的 (101))。
近年來,整個圖形使用者介面工業的成長已經遲緩下來。偶爾地,當一種新的輸入器被引介到市場時,使用該新的輸入器的圖形使用者介面的效能便可以改善到一定的範圍,不過過去在圖形使用者介面工業裡,很少有戲劇性的改變能夠形成一個鮮明的標誌。隨著近年來電子工業逐漸進入較為完整的三維圖形的時代,許多鼓吹者歡呼著迎接一個即將到來電子工業的劇變。與這些期待一致發生的是,一些新的噱頭器件 (“gimmicky” devices) 也出現在市場上,比如說,有些噱頭器件是嵌有深度相機的眼鏡,有些噱頭器件是虛擬實境 (virtual reality) 的頭戴裝置 (headsets) 或眼罩,等等。
不幸的是,直到現在,上述許多鼓吹者所期待的電子工業革命並沒有發生。在本發明裡,我們指出來,在上述許多鼓吹者所期待的電子工業革命到來之前,有一些基本問題必須要先被解決。比如說,一個三維圖形使用者介面如何以一種廣泛而且實際可行的方式與一個使用者接合互動,就是一個上述的基本問題。本發明的目的就是要提供一個真正能與使用者接合互動的三維圖形使用者介面,藉由這個三維圖形使用者介面,本發明完成了圖形使用者介面技術的演化歷程。
第 1 節 . 從一個導航器裡直接取得絕對位址是避免累積定位誤差的一個有效的辦法
大多數的電腦使用者都有這樣的經驗:當一個電腦的作業系統所使用周邊系統的功能進步時,該作業系統的圖形使用者介面的效能亦隨之變得越來越好;但是很少人對以上這個現象有更深入的了解,而且該了解是使用基本物理學來精確地解釋一個圖形使用者介面是如何與一個使用者作到有完整的接合互動的。
自從滑鼠第一次被介紹到電腦工業時,它就是一個偵測相對運動的器件 (a relative motion detection device),這樣的一個偵測相對運動的滑鼠是不知道它在一個參考表面上什麼絕對地址的;由於這個限制,一個操作者必須要在一個參考表面上,像爬行一樣,一步一步地移動滑鼠,方能將屏幕上的游標駕駛到它最後的目的地。
這個過程的準確性可能不如很多人的預期。為了使游標移動的過程更加有效率,微軟視窗作業系統 (比如說:Windows 10,等) 在往後的版本裡加上了一種新的功能,該種新的功能使得一個游標能夠自動地被放置在某些預先指定的位置上 (游標迅速抓住物件的功能,snapping)。這種功能減少了一個游標在圖形使用者介面上爬行時的微小步階,從而使得該圖形使用者介面大大地降低了消耗的能量與時間。
但是這並不表示一個高效能的圖形使用者介面只需要很簡單地從一個複雜的導航器裡取得輸入資料,然後加以利用就能了事的,這類複雜的導航器可以是一個電磁追蹤器 (electromagnetic tracker),一個深度相機 (depth camera),一個加速度量測器 (accelerometer),或一個與雷射有關的導航器 (laser associated navigational device)。我們分析到最後,會明白使本發明三維圖形使用者介面能夠變得比習知技術與使用者之間更為互動 (more interacting) 的 (動作接合得更緊密, more engaging) 原因,至少包括本發明基本定位的方法以及其移動物件的方法 (basic means of positioning and maneuvering); 在本發明裡,上述的基本定位方法採用了絕對地址定位法 (absolute addressing);上述移動物件的方法,是指為一個物件,或是複數個物件,同時提供平移與旋轉運動向量 (providing translational motion vector and rotational motion vector simultaneously)。
為了達到以上所述的與使用者之間更為互動的目的,本發明三維圖形使用者介面與一個特殊的三維導航器,亦即圖2B 的 (202),合作,該特殊的三維導航器是被揭露在美國專利號US10,254,855,本發明與 該案完整地結合,並且將該案整份發明納入當作參考文獻。正是由於本發明三維圖形使用者介面與該三維導航器的緊密合作,才使得一個電腦或一個電子系統成為一個真正與使用者接合互動的電腦或電子系統。其它的導航器雖然也可以與本發明三維圖形使用者介面合併使用,它們所獲得的效能通常比上述的本發明三維圖形使用者介面與上述的特殊的三維導航器 (亦即圖2B 的202) 的緊密合作 所獲得的效能差。
因此,本發明三維圖形使用者介面的一個方面是:當本發明三維圖形使用者介面與前面討論的高解析度,高敏感度三維導航器 (圖2B 的202) 合併使用時,本發明三維圖形使用者介面能夠為一個物件提供絕對地址。其結果是,當該高解析度,高敏感度三維導航器在一個特殊的彩色或染過色的參考表面 (specially tinted reference surface, 例如圖2D 裡的 (205T)) 上移動的時候,與該高解析度,高敏感度三維導航器相對應的游標/物件能夠維持其定位的準確性,而不會遭遇到定位的準確性持續衰退的問題。有了維持定位的準確性的功能,前述的游標迅速抓住物件的功能 (snapping) 就幾乎不再需要了。
第 2 節 . 把一個物件當作是真實的物體而不是數學點看待是本發明三維圖形使用者介面一個重要的功能
本發明三維圖形使用者介面還有更進一步的方面,這個方面指的是本發明三維圖形使用者介面能夠同時提供給一個物件平移 (translational,或稱之為線性,linear) 以及旋轉 (rotational,或稱之為非線性,non-linear) 運動向量。由於習知技術把所有的物件都當作數學的點 (mathematical point) 來處理,習知技術,包括當今最先進的圖形使用者介面,缺乏一種可以廣泛使用的方法,該方法能夠直接把一個物件的平移與旋轉運動向量結合起來; 此處讀者應留意,在數學上,我們稱一個點為point;而在繪畫上,我們稱一個圖案裡的點為dot;在本發明裡,這兩個名詞(數學的點,繪畫的點;point,dot)可以交換使用 (interchangeable);如果在任何情況它們還有特別的區分,我們會提醒注意。
本發明的讀者應該幾乎不需要任何人的提醒就清楚知道,在真實世界裡,所有物體在運動時,它們都是同時執行平移與旋轉運動的。這個道理很簡單,真實的物體不會僅僅是一些數學點,它們還會在物理學上有其延伸的性質 (physical extension)。因此,當一個圖形使用者介面打算提供一種活龍活現的,完全接合互動的經驗給其使用者時,它就必須要提供一種能夠同時操控一個真實物體以上兩種運動 (平移、旋轉) 的方法,而這個問題過去是被以往的二維用者圖形介面 (2D GUI) 隱藏起來的。
在一個以往的二維用者圖形介面裡,一個物件的位置是用一個二維座標系統裡的兩個參數來指示的;比如說,該兩個參數是 (X, Y) 與此相對應的是,一個二維的物件的運動向量也是用一組二維的參數來指示的;例如,我們可以用前述的二維座標系統裡的兩個參數的改變量 (ΔX, ΔY) 來指示一個二維的物件的運動向量。因此,當一個使用者使用一個以往的二維的導航器 (比如說,一隻滑鼠) 來移動一個位於二維用者圖形介面裡的物件時,他/她雖然還是會在遇到某些複雜的運動需求時多多少少遇到一些技術上的挑戰,但是在一般簡易的運動需求情況下,該使用者會覺得該物件的自由度與該傳統的二維的導航器的自由度是大致相當的。
當三維圖形使用者介面變得越來越普遍時 (這個情況是被本發明三維圖形使用者介面所導引出來的),以上所述發生在以往的二維用者圖形介面上的「巧合」,亦即位置空間的自由度與運動向量的自由度相同,在三維圖形使用者介面裡,這樣的幸運就不復存在了。簡言之,一個三維的物體不但會平移,而且會旋轉,而且多數的時候,一個三維的物體會同時作以上這兩種運動。從數學的角度來看以上這兩種運動,在一個三維座標系統裡,一個平移運動有三個自由度 (亦即ΔX, ΔY, 和 ΔZ);在一個三維座標系統裡,一個旋轉運動也有三個自由度 (例如,圖4B裡的α, β,和γ )。
當上述兩個類型的運動結合起來時,一個三維圖形使用者介面必須要能夠提供 6 個自由度給一個物件的運動才能在一個三維的空間裡完全自由地移動該物件。同樣地,一個希望被該三維圖形使用者介面使用的三維導航器也必須要能夠提供6 個自由度給該三維圖形使用者介面,才能達到使其能夠在一個三維的空間裡完全自由地移動一個物件的目的。過去習知技術並沒有辦法應付這兩個技術的要求。
在一個以往的二維圖形使用者介面,一個微小的物件可以用一個很小的繪圖的實體,像素 (pixel),或體素 (voxel) 來代表。當一個繪圖的實體小到像素 (pixel),或體素 (voxel) 這種尺度大小時,其所對應的物體被以往的圖形使用者介面當作一個數學的點 (mathematical point) 或繪畫的點 (graphical dot) 來處理;值得注意的是,一個數學的點是沒有物理上的延伸性 (extension,比如說,體積) 或方向性 (directionality) 的。由於以往的二維圖形使用者介面採納了以上所述的限制,並且把它當成自己的基本設計法則,有關於旋轉運動方面的功能,差不多都被以往的二維圖形使用者介面拋棄了。如果一個情況需要一個以往的二維圖形使用者介面去旋轉一個物件,那麼,如圖1B 所示,該以往的維圖形使用者介面必須要用很笨拙而且不直接的方法去作上述的旋轉的工作。我們現在來看一下圖 1B,在一個以往的二維圖形使用者介面 (105) 裡面,游標 (111) 的運動是由一個平移運動向量 (∆x, ∆y) 來指示的;請注意,游標 (111) 的運動並沒有旋轉運動的成份。
當一個應用程式偶爾需要一個使用者提供一個旋轉運動向量給一個比一個像素還要大的物體時 (例如,該物體為一個十字 113),以往的二維圖形使用者介面並沒有直接的辦法;以往的二維圖形使用者介面必須經過一些不直接的程序來完成上述旋轉的工作,比如說,以往的二維圖形使用者介面必須靠拖曳 (dragging) 一個點 (114) 一段距離,該點與旋轉軸點 (pivot point),P (x, y),是彼此分離的; 然後,藉由使用線性代數 (linear algebra),以往的二維圖形使用者介面才能夠導出一個旋轉角度 (rotational angle)。
從以上揭露的內容,我們可以看到在一個圖形使用者介面裡用任意的方法來移動物件可能會導致該圖形使用者介面導出一些無法預測的旋轉運動向量的結果。比如說,當我們不知道前述旋轉軸點 P 與拖曳 (dragging) 點 (114) 之間的距離的時候,我們就無法預測前述旋轉運動向量的結果。現在我們可以明白,使用不同的方法來移動一個物體,會導致不同的平移運動向量與旋轉運動向量的結合。
從以上揭露的內容,我們可以看到,在一個如本發明逼真的三維圖形使用者介面裡,由於大部分在三維世界裡運動的物體都是同時以平移運動向量與旋轉運動向量運動的,上述的情況 (使用者無法預測旋轉運動向量的結果) 僅僅是很多情況之中一小部分的情況而已。
如果一個圖形使用者介面設計工程師對於基礎物理定律不具備相當好的知識 (比如說,差不多所有三維的物體都有旋轉運動),這樣的圖形使用者介面設計工程師會很容易不自覺地掉入以往二維圖形使用者介面的陷阱,也就是放棄了旋轉一個小如像素大小的物件的機能。在下面的幾個段落裡,我們會提出一個例子,這個例子顯示一個游標移動的方法與過程可以深深地影響一個三維圖形使用者介面的效能,該三維圖形使用者介面需要使用到旋轉運動以及游標的方向性 (同時,該三維圖形使用者介面也會使用到平移運動)。
第 3 節 . 在同一時間裡使用一個三維圖形使用者介面與複數個的三維物件接合互動
請再參考圖 1B 與1C,以上所述的旋轉一個物件的過程 (例如,旋轉十字 (113)) 具有一個不幸的特徵:在旋轉該物件 (113) 的期間 (例如,拖曳 (dragging) 一個點 (114)),游標 (111) 本身並不會旋轉。在下世代的電子器件裡,上述的特徵並不能滿足一個與使用者有高度的接合互動 (engaging) 效能的三維圖形使用者介面的需求。
今天,一個使用者在同一時間裡與複數個物件接合互動是一個普通的情形。如圖1A 所示,當一個以往二維圖形使用者介面要同一時間與複數個物件接合互動時,該以往二維圖形使用者介面的操作者會按壓下滑鼠鍵 (例如,103) 然後在一個滑鼠墊或桌面 (104) 上朝一個傾斜方向 (slantwise direction) 拖曳 (dragging) 一段距離;如此一來,就會有複數個的圖符 (亦即 (108),(109),以及(110)) 被一個用虛線繪示的長方形區塊 (107) 包圍起來。從以上所述的區塊與圖符之間的幾何關係 (包圍),顯示上述區塊 (107) 所包圍的幾個圖符/物件,亦即 (108),(109),以及 (110),已經被其電子系統,如圖1D 裡的 (112),選擇出來,預備要進行後續的工藝程序。與幾十年前發明的原來沒有游標拖曳 (dragging) 的功能的圖形使用者介面相比,以上這種在同一時間裡使用一個二維的圖形使用者介面與複數個的二維物件進行接合互動的功能,它所表示的是一個更高層次的與使用者之間的接合互動效能。
當一個器件工程師試圖把一個二維的圖形使用者介面的能力延伸到一個三維圖形使用者介面時,他/她必須要開發出來一種方法或過程,此種方法或過程使得該三維圖形使用者介面能夠在空間裡指定一個三維的體積,以便該三維圖形使用者介面能夠與一群被該三維的體積所包圍的三維物件接合互動。有關於這一點,我們會希望這樣的過程與前述的以往二維圖形使用者介面所使用的過程相似,也就是說,我們會希望藉由在一個參考表面上如圖2D 裡的 (205),拖曳 (dragging) 一個特殊的三維導航器 (亦即圖 2B 裡的 (202)),達到在一個三維圖形使用者介面裡移動一個三維游標的目的。有關於這一個目的,圖 5A 與5B 顯示了它的解答。
請小心地注意,如圖5A 所示,為了要讓一個操作者能夠在三維空間裡指定一個長方體積 (比如說,盒子 (501A)),該操作者必須要沿著該長方體積 (501A) 的對角線(
)拖曳 (dragging) 游標 (504A)。如圖2A 所示,根據本發明三維圖形使用者介面的基本設計法則,上述該游標拖曳 (dragging) 過程需要指定一個特定的旋轉平面 (亦即圖5A 裡的平面a
1b
1c
1,本發明從此處開始即稱呼該平面為旋轉平面),這個平面是為了讓游標 (圖5A 裡的 (504A)) 在上面爬行用的。
當我們使用本發明的導航器 (202) 的時候,上述指定該旋轉平面的工作是交給姿態偵測機構 (203) 來處理的 (有時後我們也會稱之為外觀偵測機構)。習知技術,例如滑鼠,並沒有任何專門負責處理以上所述的工作的機構 (亦即一種專門用來傾斜一個游標的姿態的機構)。圖 5A 以及圖 5B 所出示的是,當我們選擇不同的旋轉平面時,這會導致我們選擇出來的長方體積不同 (也就是說,(501A) 與 (501B) 的形狀與大小並不相同); 該兩長方體積 ((501A) 與 (501B)) 的形狀與大小的不同可以很容易地從其對角線 (亦即
以及
) 看出來。明確地說,旋轉平面a
1b
1c
1是由對角線
產生的,它是用來指示長方體積 (501A) 用的; 旋轉平面a
2b
2c
2是由對角線
產生的,它是用來指示長方體積 (501B) 用的; 當我們比較以上兩個長方體積 ((501A) 與 (501B)) 時,我們會明白只有長方體積 (501B) 能夠完全包圍賽車 (502) ;舉一個證據,輪子 (503) 是被長方體積 (501B) 包圍的。在另一方面,由旋轉平面a
1b
1c
1所產生的長方體積 (亦即501A) 只能包圍賽車 (501) 的一個部分 (請注意,輪子 (503) 沒有被長方體積 (501A) 包圍)。
如果一個圖形使用者介面設計工程師對本發明三維圖形使用者介面的基本特性不了解,以上所述的有利於與使用者接合互動的能力就會在無意中損失掉,該能力是一種在一個三維空間裡沿著一個特定的旋轉平面拖曳 (dragging) 三維導航器 (202) 的能力。
事實上,以上這個問題是今天市場上大多數的導航器與圖形使用者介面都有的一個特殊問題。順著這個共通性,今天我們可以看到有許多繪圖程式 (graphical sketching programs) 都是倚賴兩個器件/程序來完成一個以上所述的工作的;比如說,該工作需要合併兩個各自分離,獨立的動作才能把上述的一個工作作完,該兩個各自分離,獨立的動作的其中一個動作與一個旋轉鈕 (rotational knob) 有關,另一個動作與一個以往的二維導航器有關。
這些類型的器件/程序的基本產品設計法則堅持要求一個三維物件要一直被當作是一個數學的點來處理,而不考慮它的尺寸大小 (比如說,該三維物件可以小至如一個像素大小,或大到如整個屏幕一般大小,等等)。
由於缺乏對真實的三維物體的基本物理性質的了解,習知技術把平移一個物件的工作與旋轉一個物件的工作委派給不同的導航器/程序來處理 (比如說,使用兩個分離的器件/程序來作上述的工作)。
一旦一個三維物件的移動程序 (我們也可以把游標 (504) 當作一個三維物件) 必須要分割成許多中間的步驟,或分給許多不同的器件來完成時,前述本發明三維導航器的拖曳 (dragging) 程序也就差不多被消滅了; 因此,當一個使用者使用這樣一個習知的圖形使用者介面的時候,該使用者與該圖形使用者介面之間的接合互動的程度,以及該使用者的創造力,兩者都是立刻降低的。習知的圖形使用者介面技術缺乏真正的三維導航器的支持。這使得習知的三維圖形使用者介面僅僅是一個「類似三維」的圖形使用者介面,也就是說習知的圖形使用者介面技術並沒有任何有效而且直接的方法,該方法能夠以一種廣泛可行的方式移動一個三維物件 (有關於「類似三維」(“quasi-3D”) 在第5節討論)。
為了提供給一個三維物件一些特殊的運動向量,而且這些特殊的運動向量是光學滑鼠很難產生的,當代最先進的「類似三維」(“quasi 3D”) 圖形使用者介面必須要限制一個三維物件的某些方面的行動,以使其觸及,或使用其它的它所需要用到的自由度。
現在我們能夠較為清楚地明白為什麼連習知技術裡最佳的圖形使用者介面也沒有足夠的自由度去描述一個物件的三維運動。比如說,現在有許多專業的繪圖程式 (例如:AUTOCAD®,3DS MAX®,MAYA®,Microsoft® PowerPoint,等等) 仍然使用習知的二維的滑鼠來移動一個三維物件/游標,使其具備某種「類似三維」圖形使用者介面的功能。
在一個使用以上的專業繪圖程式來編輯一個三維物件的輪廓的示範性過程裡,一個操作者能夠使用一個自由度少於6個的方法來修改一個三維物件的邊緣/小平面 (edges/facets), 在使用該方法時,該專業繪圖程式會保持其它幾個邊緣/小平面不改變; 但是這種臨時起意的分割 (ad hoc divisional process) 一個物件運動的自由度的方法在遇到一些需要高效能的應用時,幾乎不能被接受; 類似這樣的應用至少包括動畫式電子遊戲 (video games),醫療用機器人 (medical robots),或機器人模擬器 (simulators); 這些應用沒有留給一個使用者把一個動作切割成很多個中間動作的時間。
還有很多其它的專業是需要一個操作者運用複雜手法的,當它們使用一個臨時起意的分割物件運動的自由度的方法來修改一個三維物件的特性的時候,比如說,邊緣/小平面 (edges/facets) 等等,它們也會遇到相同的障礙。
第 4 節 . 一個提供絕對地址的導航器可以消除該導航器所偵測到的相對運動的累積誤差
在第1節裡,我們已經簡略地解釋以往的二維導航器 (例如,圖1A裡的 (101)) 只能提供相對運動向量。今天,有許多市場上看得到的導航器屬於偵測相對運動 (detecting relative motions) 這一類型。
這樣的導航器是否有足夠的能力勝任現今的三維圖形使用者介面的需求? 一個本發明三維圖形使用者介面的使用者有時候會靠著用手推移一個物件來完成許多高度技巧性的工作。例如,一個數位繪圖藝術家可能會需要以很高的定位準確性 (high positional accuracy) 來描繪一個圖形化物件 (graphical object) 或一個解剖圖樣 (anatomical design)。這種工作會比較喜歡一個操作者使用絕對地址。面對這種情形,大多數今天市場上的相對運動偵測器是過時 (適用性不足) 的。為了幫助讀者容易了解相對運動偵測器在這方面的缺點,以下幾段解釋它的幾個基本問題。
當一個操作者使用一個以往的二維導航器 (圖1裡的 (101)) 來移動一個屏幕上的游標/物件的時候,該導航器 (滑鼠) 的定位準確經常會受到不可預期的誤差的影響,該不可預期的誤差是由於參考表面上的微觀的灰塵顆粒/表面缺陷的密度與形狀會隨著地點的改變而改變造成的。其結果是,當一個滑鼠在參考表面 (104) 上移動時,該滑鼠 (圖1A 裡的(101)) 所導出來的以往導航器的運動向量會不斷地起伏 (fluctuating)。當一個物件的最終的運動向量 (圖3A 裡的
) 是由許多小步階 (small step) 組建起來的時候 (例如,圖3A 裡的
,
, …
以及
),上述的定位不準確問題就變得更加嚴重。
那也就是說,當一個操作者在任意一個參考表面 (圖1A裡的 (104)) 上拖曳 (dragging)一個以往導航器 (圖1A 裡的101) 一段距離以後,這個過程就等於要求一個接收該以往導航器 (滑鼠) 的運動向量資料的圖形使用者介面 (圖1B 裡的 (105)) 去積分 (累積) 以上所述的這些小步階 (亦即圖 3A 裡的
,
, …
以及
),而隨著這樣的程序,其所帶來的結果是,嵌入在上述這些小步階裡面的誤差也被累積起來。
受到上述這種相對運動偵測器與生具來的問題的影響 (亦即誤差會被累積起來),當一個使用相對運動導航器 (圖1A 裡的101) 來移動物件/游標的以往二維圖形使用者介面 (圖1B裡的(105)),在它把屏幕上的游標 (圖1B 裡的 (111)) 移動了一段距離以後,會不可避免地逐漸失去它的定位準確性。
使用一些臨時湊合的方法/器材 (例如,增加一個導航器的擷取圖像的禎率,frame rate) 來改進前述的相對運動的準確性可以暫時解決問題;但是上述的誤差累積的情況從來就沒有離開過。解決這種問題的最終解決方法就是使用絕對地址,這也就是為什麼近年來一些高解析度與高敏感度的觸控顯示屏幕越來越普及的原因。
圖3A與圖 3B 所示出的是比較兩個導航器性能的差別,也就是說,圖 3A與圖 3B是比較一個相對運動偵測器 (比如說,圖1A裡的以往導航器 (101)) 與一個絕對地址偵測器 (比如說,圖2B裡的本發明三維導航器 (202)) 的性能的差別。如圖3A 所示,當一個圖形使用者介面使用一個以往的相對運動偵測器 (例如,在一個參考表面 (104) 上移動),其所產生的相對應的運動向量
可以被表示為:
(1)
此處
,
, …
以及
代表一些由所述的導航器 (101) 所產生的中間相對運動向量 (亦即之前所述的小步階)。
如之前已經解釋過的,在每一個以上所述的中間相對運動向量裡 (亦即
等),都存在一個由量測所造成的誤差 (亦即
),這個量測所造成的誤差主要是由於參考表面 (104) 不同密度/輪廓形狀的灰塵顆粒/缺陷所造成的。因此,當該相對運動偵測器 (101) 完成了它的旅程,到達目的地B’的時候,其最終運動向量的誤差總合 (亦即Tolerance_relative_motion) 是一個累加的數值 (summation),這個累加的數值可以用以下的公式 (2) 表達:
(2)
如公式 (2) 所示,Tolerance_relative_motion的數值是把每一個小步階的誤差所得出來的 (亦即把所有Error
bx; x = 1~ n) 加總起來。值得注意的是,公式 (2) 的數列是一個發散數列 (a divergent series,亦即理論上n 可以是一個使用者要多大有多大的數值;隨著n數值的選擇,Tolerance_relative_motion的數值也相對應地增加);因此之故,當一個操作者在參考表面上 (圖 1A 的 (104)) 一步一步地移動滑鼠的軀殼 (圖1A裡的(101)) 時,一種與其相對應的量測誤差會持續地被加到上述Tolerance_relative_motion的最終數值上。由於Error
bx永遠是一個正數,當n 到達一定的數目以後,上述Tolerance_relative_motion就會因為數值過大而無法再被當作是一個正常的數值。一旦這個情況發生,就表示該導航器 (圖1A 裡的 (101)) 的準確性已經超過了誤差容許範圍 (誤差已經過大),此時與其相對應的游標移動程序,甚至與該導航器有關的一些應用,都必須要被中止 (通常這是由一個圖形使用者介面來控制的),此外,一個游標必須要重設它最後得到的經由相對運動來取得有關於位置的資料。這個基本的缺點使得當代最先進的相對運動偵測器無法持續地而且穩定地提供相對運動向量給一個使用者,以便使該使用者能夠用很長的線來勾畫一個物件的輪廓 (許多藝術的素描或草圖都屬於這個類別)。
在下世代的三維圖形使用者介面裡 (比如說,本發明的三維圖形使用者介面),有許多的應用都需要一個輸入器件持續地而且穩定地提供位置資料; 一個傳統的導航器的禎率 (frame per second) 能夠一秒鐘跑上千禎的圖像,但是要偶爾就會發生的定位準確性失控的問題,這樣的傳統的導航器可能無法被一個專業工作者接受。比如說,當一個專業的數位繪圖藝術家使用一個像 MAYA 或 3DS MAX這樣的專業繪圖藝術程式來描繪一個卡通角色的時候,他/她會不希望當他/她在一個參考表面上移動滑鼠的時候,該專業繪圖藝術程式的定位準確性會持續地衰退。
使用觸控屏幕產品 (比如說,WACOM,這種產品依靠一種獨特的尖筆去戳 (poke) 一個顯示面板的表面,該面板的表面上包含有一種格子 (grid),該種格子是由一些精細的透明導體所做成的) 可以暫時減輕上述問題的嚴重性,但是這種觸控屏幕產品的自由度是遠少於 6 個的。因此,儘管觸控屏幕產品的自由度有限,以上所述的獨一無二的特性使得今天的觸控屏幕產品在繪製靜態的圖畫的時候會比其它的產品更有用。由於前面所述的問題 (觸控屏幕的自由度遠少於 6 個) 並沒有真的離開消失,當一個繪圖藝術家使用觸控屏幕產品了一陣子以後,該繪圖藝術家可能會感受到不舒適,其原因即在於該觸控屏幕能夠容許的自由度很有限。
圖 3B 所繪示的是一個運動偵測器 (亦即本發明所揭露的三維導航器),該運動偵測器能夠從一個彩色或染過色的參考表面 (205T) 上量測到絕對地址。如圖3B 所示,當本發明所揭露的三維導航器 (202) 在一個被三個顏色染色的 (tinted by a means of tri-coloration) 參考表面 (205T) 移動時 (請注意,在本發明裡,我們把一個彩色或染過色的參考表面指示為 (205T);同一個表面,但是沒有彩色或沒有被染過色的,我們把它指示為(205) 以示區別),使用美國專利號US10,254,855所教示的方法,該三維導航器 (202) 能夠將其所量測到的色彩指標資料 (color index data) 轉變成三維的位置資料 (3D positional data,亦即 X,Y,Z),因此,該三維導航器 (202) 最後的運動向量
可以用以下的公式表達:
(3)
此處(X
C,Y
C,Z
C)以及(X
C’,Y
C’,Z
C’)代表向量 的兩個端點,C 以及C’,的絕對地址。如圖 3B 所示,量測
所產生的誤差可以由累積上述量測
兩個端點 (亦即 C 以及C’) 的絕對位址所產生的誤差來表示,該兩個端點的量測誤差分別為Error
C以及 Error
C’(注意,這個量測
的過程只會引發兩個誤差)。當一個圖形使用者介面在計算最終位移資料
時,它的Tolerance_absolute_address 數值可以被表示為:
(4)
此處讀者須要細想一下,Tolerance_absolute_address不會受到之前所述的中間步階 (intermediate steps) 的影響。現在我們明白儘管有一些習知的光學滑鼠聲稱它們可以把擷取影像的禎率提高到一個駭人的每秒數千禎的程度,囿限於以上所述的與生具來的問題,這些習知技術的功效仍然有限。
偶爾的時候,當一個繪畫作品 (例如,卡通) 裡的一個優美的筆劃需要一個使用者產生很長系列的相對運動向量時,以往的導航器很容易失敗。一個使用絕對地址的運動偵測器的定位誤差則不會隨著量測的次數 (例如,用來量測位址的擷取圖像的禎率) 增加而惡化。此處我們要重申,量測位址的準確性不衰退這種的現象不會發生在量測相對運動向量的器件上; 也正是這個基本的原因,才能解釋為什麼我們能夠預見藝術繪圖的操作員以及機器人工業等會為了它們在專業工作上的表現,偏好使用本發明的三維導航器 (202),並且把該導航器連接到本發明的三維圖形使用者介面上。
如果我們使用前面所揭露的知識來分析今天市場裡的一些導航器的特性,我們可以獲得一個結論,一個高解析度與高敏感度的觸控面板可以被視為一個提供X-Y平面絕對地址的器件 (比如說,WACOM 的產品等等);另一方面,上述這樣的觸控面板仍然在忍受一個基本的限制,這個限制就是這樣的觸控面板不能夠提供給一個位於一個三維圖形使用者介面裡的物件 6 個自由度。同樣的情形發生在大部分使用觸控板 (touch pad) 的筆記電腦上 (比如說,由Synaptics Corp. 提供的觸控板),也就是說,這類使用觸控板的電腦無法很容易地供6 個自由度給一個位於一個三維圖形使用者介面裡的物件。一個使用幾個按鍵來指定一個物件的特定的運動 (比如說,該特定運動是一個平移運動) 的遊戲機控制器 (game console),大體來說,算是一個相對運動偵測器。
最後,一個深度相機 (depth camera) 應該算是一個混合產品,也就是說,它可以以絕對地址的方式提供Z (depth 深度) 值,但是鑲嵌在該深度相機裡的 RGB 影像偵測器所提供的運動向量是相對的 (ΔX,ΔY)。其它的器件,比如說具有三維觸控壓力偵測功能的智慧型手機 (3D touch force sensitive Smartphone) 等等,它們也是面臨同一類型的情況,也就是說,例如,藉由量測電容值,一個鑲嵌在該具有三維觸控功能的智慧型手機裡的觸控面板可能可以偵測到一個 X-Y平面 (亦即該觸控面板) 上的絕對地址,但是它的觸摸壓力偵測機制可能是使用一層壓電式的薄膜,而壓電式的薄膜所偵測到的是一個相對運動 (亦即ΔZ)。當我們把以上兩種機制合併到一個系統上的時候,這樣的合併的系統未必能導致一個有意義的結果,該有意義的結果是指以一種真正三維的方式來移動一個物體的功能。
一個內嵌在一個智慧型手機裡的陀螺儀偵測器 (gyro-sensor) 可以為該智慧型手機加上偵測旋轉的功能;但是,陀螺儀畢竟也是一個相對運動偵測器,而且對於一個智慧型手機的電路板而言,陀螺儀與顯示面板是焊在一個電路板上面的兩個性質截然不同的器件。因此,我們可以看到習知的導航器件都不能為一個三維物件同時提供平移與旋轉運動向量,而且很多導航器件是根本不提供旋轉運動向量的。
當本發明三維圖形使用者介面使用以上所述的以往導航器,並且以一種即時的方式 (in a real-time manner) 來控制一個三維物件的運動的時候,該三維物件的一些運動,特別容易是一些旋轉運動,會需要被限制住。當本發明三維圖形使用者介面與本發明所揭露的三維導航器 (圖2B 裡的 (202)) 合作的時候,本發明三維圖形使用者介面能夠同時提供給一個三維物件平移運動向量,旋轉運動向量,以及絕對地址;有關於該三維導航器的完整規格,它是揭露在美國專利號US10,254,855。
第 5 節 . 一個能夠提供 6 個自由度的三維圖形使用者介面的基本優點
從以上的判斷我們可以明白一個圖形使用者介面的效能是深受其所使用的導航器的基本能力的影響的。由於習知技術缺乏一個有效的辦法來解決以上所述的問題 (亦即為一個三維的物件提供一個「本質」的旋轉運動向量,“intrinsic” rotation motion vector,而不管它的體積是大是小),當今最先進的圖形使用者介面雖然宣稱自己擁有提供三維游標移動的功能,這些圖形使用者介面仍然只是一些「類似三維」的圖形使用者介面。
當我們用「類似」,quasi,來形容一個圖形使用者介面時,我們的意思是該圖形使用者介面仍然能夠以三維的方式呈現一個靜態的物件 (亦即該物件有三維的地址,深度值 (depth value),而且它有體積 (volume)),但是當一個三維的物件需要用相當多的自由度來移動時 (比如說,平移與旋轉運動),該「類似三維」圖形使用者介面並沒有一個可以廣泛使用的方法來讓它的使用者與一個三維物件接合互動。這個基本的限制所導致的結果是,一個「類似三維」圖形使用者介面 (“quasi 3D” GUI) 的效能是相當有限的。
一個外行人看到一個圖形使用者介面能夠提供三維地址,他/她可能會作出錯誤的推測,以為任何一個能夠提供給一個三維的物件具有三個獨立參數的地址的導航器都必然符合一個充分條件 (sufficient condition),該充分條件使得該導航器能夠在三維空間裡自由地移動物體。
事實上,供給一個三維的物件三個獨立的參數只不過是滿足了提供給一個物件三維性質的必要條件 (亦即最低條件, minimal) 而已。過去有很多各式各樣的導航器都是受到了以上所述的錯誤的預期的驅使而開發出來的,這類的導航器都是企圖用三個參數來移動一個三維物件 (比如說,(Δx,Δy,Δz),這是一個相對運動向量;或 (X,Y,Z),這是一個絕對地址)。
今天, 我們可以發現市場上有許多導航器都屬於以上這種類型。比如說,一個虛擬實境 (virtual reality,VR) 的頭戴裝置 (headset,圖4E裡的405) 使用 (Δx,Δy,Δz) 來移動它的顯示器件裡的景致/物件;一個三維列印機 (3D printer) 使用 (Δx,Δy,Δz) 來通知它的列印機噴頭控制噴到模型上的塑膠的位置以及量;一個電磁波運動追蹤器 (electromagnetic motion tracker) 使用(Δx,Δy,Δz) 來指定一個動畫式電子遊戲裡的物件的位置; 一個三維觸控顯示器使用 (Δx,Δy,Δz)來移動一個物件;一個動畫式電子遊戲機按照按下的按鍵 (例如A,B,X,Y) 的設定功能,提供出一個特定的數值,比如說,該特定的數值是 (Δx,Δy,Δz),等等。
在物理的世界裡,一個三維物體的運動差不多在所有的時候都有超過三個的自由度 (一組完整的三維運動應該有6 個,或是比6 個還多的自由度)。以此觀之,當上述的器件遇到需要以一個廣泛的方式 (comprehensive manner) 來操控一個位於三維空間裡的物體的位置的時候,上述的器件都短少了幾個自由度。
為了遮蔽這個問題 (亦即以往的導航器所能提供的自由度不足的問題),有一些「類似三維」圖形使用者介面會使用獨有的軟體套件,該獨有的軟體套件藉由在一段時間裡限制一個使用者的某一種自由度,使得該使用者能夠使用到其它的自由度。明顯地,此種自由度交換法是一種權宜的方法。
總之,雖然一個真實的物體的運動包括平移與旋轉的元素,習知技術 (例如,虛擬實境頭戴裝置,深度相機,動畫式電子遊戲機,電磁波追蹤器,等等) 並沒有切實可行的方法去區分一個物體的平移與旋轉運動,或把該物體的旋轉運動向量很容易的計算出來; 因此,旋轉運動向量實際上是被習知技術忽略的,而習知技術 (亦即以往導航器) 所送給一個電子系統的資料永遠被當作是平移運動向量的。現在我們有了第二個基本理由解釋為什麼本發明稱呼這類的圖形使用者介面為「類似三維」圖形使用者介面。
此處的形容詞「類似」(quasi) 的意思是指一個「類似三維」圖形使用者介面裡的物件的外觀可能與一個真正三維圖形使用者介面裡的物件的外觀很相似,但是一旦到了與使用者互動時,上述的「類似三維」圖形使用者介面就缺乏有效的方法來產生複雜的運動。因此,上述的「類似三維」圖形使用者介面只能產生一些「初步的」(rudimentary) 自由度來讓一個使用者移動一個三維物件。
這個缺乏足夠可以使用的自由度的問題在遇到一個物件的指定動作沒有太多「動態」的時候,可能不是很明顯 (亦即,在這個情形下,有一些自由度是保持在未被使用的狀態的),但是當一個動畫式電子遊戲或一個卡通角色的是非常活躍的時候 (亦即該動畫式電子遊戲或該卡通角色的動作相當地生動而有變化),上述這個缺乏足夠可以使用的自由度的問題就會變得嚴重起來。
在過去,有一些圖形使用者介面把提供給一個物件的平移運動向量與旋轉運動向量的工作分派給不同的器件/程序; 在這種情況下,一個與兩個不同的器件/程序一起工作的圖形使用者介面並沒有辦法提供一個廣泛可以使用的,明瞭的,以及直接的辦法同時把上述兩種不同的運動整合成一個。
其結果是:儘管一個靜態電子圖形藝術作品的呈像效果可以非常的漂亮 (例如,今天最先進的卡通電影的渲染效果 (shading) 可以相當地逼真),很多物體的運動的動態仍然相當僵硬與機械化。這是由於這些最先進的卡通電影所使用的繪圖程式 (例如,3DS MAX® 或 MAYA® 等) 的圖形使用者介面沒有為其所編輯的物件提供足夠的自由度 (亦即 6 個或 6個以上) 造成的。
在以上所述的這些繪圖程式裡,一個使用者能夠選擇一些特殊的圖符/指令(icons/instructions),該些圖符/指令是被用來在一段時間裡,指定一個物件的一些特定的旋轉或平移運動用的。例如,如果一個操作者按 (亦即選擇的意思) 了一個圖符,該圖符是被指定為提供旋轉運動用的,他/她就能夠旋轉一個三維物件,在旋轉該三維物件時間裡,不容許該三維物件進行其它的運動 (例如,平移)。
當一個卡通角色採用以上所述的方法來繪製的時候,通過這樣的限制自由度的過程,該卡通角色在其繪畫的過程裡必須要在一段時間裡限制一個或更多的自由度 (這個程序可以藉由選擇一些特定的圖符來完成),以便其能夠使用到所需要的自由度. 靠著在繪製一張繪圖上一會在這裡限制某一個自由度,另一會那裡限制另一個自由度,一個繪圖藝術家最後仍然能夠以每一個單一筆劃都少於 6 個自由度的方式完成描繪的過程,但是在經歷過一段冗長的描繪過程以後,整個卡通角色的行為/樣式可能會變得相當機械化以及不夠逼真,而以上所述的根本原因並非是一個對藝術外行的人能夠輕易瞭解的。
當一個人只是在一個屏幕上畫一兩筆劃,以上所述的病癥可能並不明顯。但是,當一個卡通角色已經被很多筆劃建造起來的時候 (其中每一個單一筆劃都遭受到自由度不足的問題或多或少的影響),以上所述的病癥就會變成對一個繪圖藝術品的最終的品質有顯而易見的衝擊了。所以,我們瞭解到一個電子繪圖藝術家的創造力會被以往的圖形使用者介面有限的自由度限制到 (以往的圖形使用者介面有限的自由度限制是受導航器的效能影響的)。
此處我們有一個例子:如果一個人比較一下一個用當代最先進的繪圖程式 (例如,MAYA®,3DS MAX®,等等) 畫出來的公主的臉部結構與一個以往卡通藝術家所繪製的公主的臉部結構,他/她可以輕易地認出來,就審美學 (aesthetic) 而言,使用繪圖程式所繪出來的公主的臉部結構很難符合一些黃金法則 (Golden rule),這些黃金法則是用來描繪美麗的外形用的 (例如,臉頰的寬度與頭殼的高度比,等等); 常常我們會遇到一種情況:當一個用多邊形網路繪製/編輯的卡通角色 (如圖 10A) 遇到一個繪圖藝術家想要實施以上所謂的黃金法則到一個他/她心中所想像的卡通角色的時候,該多邊形網路本身就變成是該繪圖藝術家必須要克服的最高的技術障礙。
因此,儘管今天的數位卡通角色能夠因為它們希奇古怪的輪廓而看起來有趣,或它們的渲染效果能夠超越常態,絕倫地逼真,一旦到了用審美學來檢視時,當代最先進的繪圖程式的效能是無法與以往的卡通相比的,而大多數的藝術作品的核心價值就在這些以往的審美學上。
為了把審美學的靈敏度 (sensibility of aesthetics) 灌注到一個藝術作品裡,當我們在移動本發明的三維導航器 (圖2B 裡的202) 的時候,我們需要協調一個藝術家的手指,脕部,肘部,手臂等等的神經細胞。我們都有以下的經驗:每當人類發明一個新科技 (例如,數位繪圖),該新科技可能帶來一些新的便利 (例如,令人吃驚的渲染 (shading) 效果,等等);但是,同樣也是很自然的結果,該新科技也可能會帶來一些副作用 (例如,數位繪圖的角色的動作跟以往手繪的卡通的動作相比,顯得更機械化),因此,這些副作用就要等待更新的技術來克服它們。
本發明的一個重要的目的就是要為一個圖形使用者介面帶來更多的自由度,以便其克服以上所述的副作用 (該副作用亦即當一個圖形使用者介面需要去描繪一個數位繪圖角色完整的三維運動時,它的自由度並不足以滿足這個需要的問題),以便使兩個神經網路的巨大的力量能夠協同配合起來,其中一個神經網路指的是人類的身體,另一個神經網路指的是電腦;這樣地把兩個神經網路的巨大的力量協同配合起來,就可以孕育出新的形態的計算科技,從而使整個電子工業能夠繼續成長,大步邁進人工智慧的時代 (artificial intelligence, AI)。
從以上的評估,我們可以得到一個理解:本發明對電子工業而言,是一個很有價值的資產,而我們可以預期的是,未來電子工業將會被 AI (artificial intelligence) 工業強力地支持。在許多與 AI 有關的機能裡,本發明三維圖形使用者介面伴演一個關鍵角色,這是因為本發明三維圖形使用者介面無縫隙地橋接兩種技術領域,其中第一種技術領域是把每一個動作都用線性運動/平移運動來解讀 (例如,以往的二維圖形使用者介面,圖1B 裡的 (105));其中第二種技術領域是差不多把每一個動作都用非線性運動/旋轉運動來解讀 (例如,本發明的三維圖形使用者介面,圖2A 裡的 (207))。
如果一個人使用電腦科技的術語來描寫以上所述的兩個技術領域的特性,以上所述的第一種技術領域與一個電腦單純地按照布林邏輯 (Boolean logic) 來運作相關,而以上所述的第二種技術領域與神經網路 (neural network) 的功能有比較大的關係 (亦即一個電腦所作的決定不是完全根據預先決定的邏輯關係來作的,而是根據觀察一些重覆的現象 recurrent phenomenon 來作的)。
如以上所解釋的,以往的卡通繪圖藝術家不會受到數位卡通藝術所遭遇的與生具來的問題困擾;一個以往卡通繪圖藝術家可以用他的手,以一整組的 (6 個) 自由度來描繪一個角色。因此,當我們把一個工作從一張紙轉移到電腦上面時,我們所喜歡使用的導航的方法/器材,將會是本發明三維圖形使用者介面 (圖2A 裡的 (207)) 所使用的導航的方法/器材。當一個物體的某些性質 (例如,一些複雜的運動,熱傳導,流速,等等) 是用許多自由度來表達的時候 (包括有些自由度是非運動性的),一群這樣的物體之間的交互反應可以是非常複雜的。此時如公式 (8) 所示的矩陣運算變成是一個用來描述一個具有許多 (例如,>= 3) 自由度的物件特性的一個有效的方法。
本發明三維圖形使用者介面不僅能夠帶給數位卡通工業便利,也可以帶給其它工業便利。 在未來,凡是專業是靠使用手藝 (finesse) 來執行工作的人可以靠本發明三維圖形使用者介面來完成他們的使命 (例如,手術模擬訓練機, surgery simulation trainer,動畫式電子遊戲機,三維機械製圖, 3D mechanical drawing,等等)。最後,我們可以預見未來大部分的電腦作業系統會採納本發明三維圖形使用者介面。到了那個時候,即使是一個家庭使用者也可以受惠於本發明三維圖形使用者介面對於一些日常工所作的一些貢獻。
例如,本發明三維圖形使用者介面能夠針對一個展示程式 (presentation program) 提供一些三維繪圖功能 (3D sketching features),或本發明三維圖形使用者介面能夠提供一種特殊的三維游標 (3D cursor),使得一個使用者能夠更容易地選擇某一種三維圖符, 或本發明三維圖形使用者介面能夠支持一種應用環境,該應用環境能夠在一個圖形使用者介面裡結合複數個的三維視窗 (例如,圖13B 裡的 (1303) 以及 (1304))。總之,本發明三維圖形使用者介面 (207) 代表著一種真正三維作業系統 (true 3D operating system) 的起始,此種真正的三維作業系統比當代最先進的作業系統技術更能夠與使用者作交互反應 (interactive),更智慧,也更容易與使得者接合互動 (user engaging)。
此時我們可以清楚地明白,當有更多電子工業成員進入三維繪圖領域裡的時候,一種新的三維圖形使用者介面就必須要被開發出來,此種新的三維圖形使用者介面能夠提供給一個物件足夠的自由度。為了達到這個目的,一個圖形使用者介面設計者必須要清楚地回答他/她自己一個問題,以確定他/她是否真的了解本發明三維圖形使用者介面 (207) 的核心價值在什麼地方。
這個問題的答案就在於本發明三維圖形使用者介面 (207) 能夠同時提供6 個自由度給一些運動向量。一般被忽略的是,一個擁有6 個自由度的運動向量也會需要一個人的手指/手部的協同配合才能自由地移動它。為了遮掩這個問題,過去有一些廠商努力開發了一些噱頭器件。比如說,微軟 (Microsoft®) 以及蘋果 (Apple®) 開發了一種深度相機 (例如,Kinect),以方便其量測一個被追蹤物的距離 (例如,在一個觀察者手上的一個紅外線斑點與前述該深度相機 (401) 之間的距離;該紅外線斑點如圖4A 裡的點 F 所示)。
在非可見光的波長範圍裡量測上述這種斑點 (speckles) 的相對距離是一種代數的方法;這種代數的方法無法引導引出任何有效的量測上述的斑點的旋轉位移的結果。圖4A 所示的是這一類的深度相機 (401)。另一類的一些廠商 (例如,臉書 Facebook®;三星 Samsung® 等等) 提供一種虛擬實境的頭戴裝置給觀察者 (圖4E 裡的 (405))。
此類的虛擬實境頭戴裝置 (405) 使用特殊的偵測器 (亦即,加速度偵測器 accelerometers;全球定位系統 GPS,或與以上這些偵測器的功能相當的方法) 來偵測該頭戴裝置機體的相對運動向量 (亦即圖4E 裡的點 P 的動作). 因此,在運作的期間,一種相對位移/運動 (亦即 +ΔX,-ΔX,+ΔY,-ΔY,+ΔZ,-ΔZ) 可以被產生出來,該相對位移/運動會被該虛擬實境的頭戴裝置 (405) 用來操控一些呈現給觀察者看的景致/物件。
請注意,不管是深度相機 (401) 或是虛擬實境的頭戴裝置 (405),它們所提供給的資訊都不能架構起一組完整的資料,該組完整的資料是用6個自由度來指示一個三維物件的位置與/或運動的。為了要提供一組完整的資料來指示一個三維物件的位置與/或運動,一個高品質的三維圖形使用者介面 (例如本發明三維圖形使用者介面) 必須要提供以下的資料:
(1) 三維的位置資料,最好是以絕對地址的模式提供 (例如,X,Y,Z);
(2) 同時提供三維平移運動向量與旋轉運動向量,例如,圖 4B 裡的 (ΔX,ΔY,ΔZ) 以及(α, β, γ);在某些習知技術裡,比如說,航空工業,以上所述的這幾個旋轉運動被稱之為pitch,yaw,以及 roll,亦即俯/仰,左右搖轉,以及滾動的運動)。
(3) 選擇使用或不使用的功能,該功能提供自旋運動資料 (圖2A裡的Θ’;這種功能通常與一個物體的運動的高階項有關 (higher order terms,HOT);有關於量測一個物體的運動的高階項,美國專利 US 9,733,727 有揭露。如美國專利 US 9,733,727 所揭露的,(Col 22,line 1 through 7):“human hands, particularly fingers, are capable of many gestures. When a human hand moves, the present device will sense a motion that may not necessarily be solely translational. There are many factors capable of generating the second or even the third terms on the right-hand side of Eqs. (5) and (6)”. 有許多的因數能夠產生公式 (5) 以及 (6) 裡的右邊的第二項,甚至第三項。
(5)
(6)
此處 (Δx,Δy) 表示的是一個被追蹤物體的位移,這是一個時間的函數 (亦即從t
0到t所量測到經過的時間)。
如美國專利US 9,733,727 進一步揭露的, (Col 22, line 7 through 16):
“Together, these terms provide the contributions of delicate motion vectors of the hand gestures such as jittering, waving, rotation, and stroking, that the conventional art does not have the comprehensive knowledge to utilize. Being able to detect and manipulate the respective signals (i.e., variation in the pixel values) in the non-linear regime will make the next generation object navigation device described herein and the operating systems, and the electronic devices that use it, much more interactive with their operators”.
此處讀者應仔細地思考,上述公式 (5) 與 (6)右側的第三項第四項等所指示的是一個能被本發明三維圖形使用者介面移動的物件的運動的「高階項」(higher order terms,HOTs)。公式 (5) 與 (6)右側的第一項所指示的是線性運動,實際上這一項就是平移運動向量。
至於公式 (5) 與 (6)右側的第二項,它所指示的是自旋運動向量,實際上它就是一種物件的旋轉運動 (亦即圖2A 裡的物件201的Θ’)。一個旋轉運動可以由兩個物件的相對距離產生,這種情況類似地球繞太陽作旋轉運動;或者,一個旋轉運動也可以由一種物體的本身的歷程/運動產生,例如,地球是繞著一個軸自轉的;上面所述的第二種情況我們稱之為一個自旋動作 (spinning movement)。
為了要很穩定地提取 HOT 資料, 我們會喜歡用一種準確的方法來量測位置 (亦即絕對地址);為了達到這個目標,本發明所揭露的導航器 (202) 從一個彩色或染過色參考表面 (tinted reference surface 205T) 上擷取影像。
在美國專利 US 9,733,727, 裡我們有解釋旋轉運動 (也就是說,公式 (5) 與 (6)右側的第二項) 的方向與平移運動向量的方向是彼此垂直的 (亦即正交),那也就是說,上述公式 (5) 與 (6) 裡的每一個單一的 HOT 項都與直接在其前面的那一項正交 (orthogonal to its immediate predecessor)。依照導航器 (202) 不同的敏感度以及解析度,以及參考表面染色的程度,整個HOT 實際上是可以延長的,因此,導航器 (202) 的自由度可以大於 6 個。為了簡化說明起見,本發明的後續相關討論聚焦在具有 6 個自由度的運動上。
(4) 一個人體上的神經網路,這個人體上的神經網路以一種高度的透明度來控制一個輸入器件 (例如,本發明的三維導航器 202),該控制功能是以本發明三維圖形使用者介面的圖像呈現效果 (graphical rendering effect) 作依據。
以往的圖形使用者介面並沒有把以上的理解加入到它的設計原理裡面,更不用談有它的優點。有關於以上的第 (4) 點,我們會在第9節討論它的價值。目前這一節專注在前面三點。如圖4A 所示,當一個操作者用一個小角度σ (例如,σ < 3°) 旋轉他/她的手,當今最先進的深度相機只能記錄追蹤點F 的深度值,而由於這個點 F是有一個小角度σ的旋轉角度的,該深度值 D 是容易受到某些誤差值影響的 (例如,該深度值變為 D ±d)。
這種情形與 US 9,733,727 所揭露的情況相似。如本發明之前已經揭露的,習知的導航器把旋轉運動當作一種雜訊的來源來處理。由於這種情況是形狀辨識工業 (pattern recognition) 的一個歷史性的問題,發生在以往導航器的這樣的病癥也有可能發生在其它的影像偵測器上,比如說,該影像偵測器是一種用於以上所述的深度相機上 (圖4A 裡的 401)。
明確地說,以上所述的「誤差」並不是一個真正的誤差;它是一個添加在平移向量 D上的旋轉運動向量 (a rotational motion vector superimposed on the translational motion vector D)。該使用於前述深度相機的影像偵測器 (圖4A 裡的 (411) 以及 (412)) 並沒有什麼有效的辦法來直接量測上述的旋轉角度σ;旋轉位移 (比如說σ) 是被前述深度相機的影像偵測器當作雜訊來處理的。本發明三維圖形使用者介面所使用的三維導航器把 US 9,733,727 的基本設計完全納入進來,因此,本發明的操作者可以在移動一個物件的過程裡,很穩定地提供給該物件一個旋轉角度。
如果深度相機 (401) 自己想要解決以上的問題 (亦即量測一個單一的紅外線斑點 F 的旋轉運動),很明顯的,它所牽涉到的計算程序會很複雜 (亦即導出前述紅外線斑點 F 的旋轉運動向量)。更糟的是,不同的影像偵測器的效能並不一樣;直到今天,深度相機工業還沒有什麼有效的辦法來應付這個問題。最後,一個開發工程師會發現一個深度相機 (401) 所使用的演算法仍然是使用簡單的代數方法計算旋轉角度,這種方法與以往的二維圖形使用者介面為了旋轉它的物件所用到的方法無異 (例如,旋轉圖1B 裡的十字 (113))。
圖4B 所出示的是一個觸控面板 (402),該觸控面板 (402) 與一個手指在點G 處接合互動,產生一個觸控事件 (touching event)。按照習知導航器件的所給的教示,點G 與一個預先定義好 (predefined) 的軸點 (pivot point) 之間的相對運動可以被用來決定物件 (408) 的旋轉運動。
值得注意的是,這樣的方法 (如圖 4B 所示的方法) 既不具備直覺性,也不夠完整。比如說,為了要旋轉圓筒 (408) 一個角度,不同的觸控面板廠商會要求使用者使用不同的姿勢來移動他/她的手指/手部。從基本的原理來講,如圖 4B 所示,上述問題的根本原因與一個圖形使用者介面的自由度有關;一個觸控面板 (402) 有兩個自由度,也就是 X 與Y 軸;但是一個三維物件 (408) 的旋轉運動有三個自由度,亦即圖4B 裡的
α,
β, 以及
γ。
因此,如果一個人企圖使用一個如以上所述的二維觸控面板 (亦即 (402)) 來旋轉一個三維物件 (408),有幾個自由度是缺乏的。當情況到了使用一個二維的觸控面板來提供給一個位於二維圖形使用者介面裡的物件定位資料的時候,由於以上所述的二維觸控面板的自由度與以上所述的二維圖形使用者介面的自由度匹配,以上所述的問題會暫時地減輕。我們已經解釋過發生在一個深度相機上的情況與發生在一個習知的導航器上的情況是類似的 (亦即一個點狀物的旋轉運動向量是不能很容易地測量的)。當一個人在一個深度相機 (401) 前面揮舞他/她的手 (406) 的時候,有很多波長落在不可見光的波長範圍 (比如說,紅外線IR) 的斑點會從光源 (410) 會投射在他/她的手部。
這些斑點通常是由紅外線雷射光形成的;當該雷射光正要離開以上所述的深度相機,進入周圍的環境的時候,該雷射光必須經過幾個微觀的狹縫 (microscopic slits),該些斑點的強度 (例如,第一階,第二階干射條紋, interference fringes, 的強度等等) 會隨著該手部 (406) 與該深度相機 (401) 之間的相對距離而改變。使用狹縫干涉原理 (slit interference),一個人能夠明白以上所述的斑點的強度會隨著深度的數值而改變。所以,當一個操作者揮舞他/她的手的時候,深度相機 (401) 能夠認出來 (使用一種紅外線影像偵測器 (411)) 一些投射到該操作者手上的斑點的深度資訊的變化 (亦即圖4A 裡的D)。值得注意的是,上述的斑點本身並沒有帶有任何有關於旋轉的資訊。
如果一個人想要計算一個物體的旋轉角度 (例如,手 (406)),他/她必須要比較一些物體在一個影像裡的相對位移 (例如,使用一個 RGB 影像偵測器 (412) 來擷取一些該操作者的手的影像等等)。上述的方法通常會需要線性代數,或一些跟線性代數有相當的效果的方法。可以想像的,以上所述的計算一個物體的旋轉角度的過程是很繁重,浪費時間的,而且其所計算出來的結果往往會很容易受到許多雜訊來源的影響。
在美國專利US 9,733,727 裡,一個導航器機體的旋轉運動向量是藉由在一個從一個參考表面的影像上面擷取出來的影像上加一個虛擬圓 (pseudo circle) 來計算出來的;這個方法遠比習知技術來得準確。在美國專利號US10,254,855裡,一個在三維圖形使用者介面裡的物體的傾斜狀況是藉由調整一個參考表面的染色條件來控制的 (例如,改變參考表面 (205T) 的照光強度)。因此,如美國專利號US10,254,855所揭露的,本發明三維圖形使用者介面裡能夠同時提供平移運動向量,旋轉運動向量,以及絕對地址給一個物件;當以上這三種參數在一起使用的時候,該三種參數提供給一個三維物件一整組的, 具有6個自由度的運動。
第 6 節 . 本發明三維圖形使用者介面所提供的操作
圖2D 所繪示的是一個能夠與本發明三維圖形使用者介面 (207) 緊密而且有益地合作的三維導航器 (202)。如圖 2D 所示,當一個操作者在姿態偵測機構 (203) 上擺動他/她的手指的時候,一個位於本發明三維圖形使用者介面 (207) 裡的三維物件 (例如,飛毯 201) 的姿態可以***作者直接地調整 (例如,該姿態的改變可以由法向量從
變成
來指示)。
更進一步說明,當一個操作者在姿態偵測機構 (203) 上擺動他/她的手指的時候,整個滑鼠的機體 (202) 是在一個彩色或被染過色的參考表面 (205T) 上移動的,此時該三維導航器 (202) 能夠提供絕對地址 (x,y,z),平移運動向量 (T),以及傾斜運動向量 (tilting motion vector) ,該傾斜運動向量可以被視為第一種「旋轉」運動向量 (例如,法向量的改變)。
除了第一種旋轉運動向量以外,本發明三維導航器 (202) 還能夠提供一種自旋運動向量;此種自旋運動向量可以被視為是第二種旋轉運動向量。從數學的角度來講,調整一個三維物件的傾斜姿態是一個物件最容易執行的一種旋轉運動,其原因即在於該調整只需要調整該三維物件的法向量
。
根據公式 (12),改變一個三維物件的法向量 (亦即傾斜,tilting) 需要三個參數n
1,n
2,或 n
3的改變。如果一個操作者想要讓一個三維物體自旋 (spin),本發明三維導航器 (202) 必須要提供第二種旋轉運動向量。根據公式 (12),讓一個三維物體自旋 (spin) 需要有一個參數
ω。
如圖2A 所示,一個在本發明三維圖形使用者介面 (207) 裡自旋一個三維物件 (例如,201) 一個角度Θ’的過程需要在一個參考表面 (205) 上旋轉滑鼠機體 (202) 一個角度ω。但是,調整一個三維物件的傾斜度的過程會牽涉到調整平面abc與X,Y,以及 Z三個軸的交會的情況,亦即 a,b,以及c的數值;本發明從此處開始稱該平面abc為旋轉平面 (plane of rotation)。
值得注意的是,當物件 (201) 在自旋時,它的旋轉軸 (亦即單位法向量
) 並沒有改變。這表示以上所述的兩種旋轉運動是彼此正交的。在電腦視覺科技裡 (computer vision technology),上述兩種過程 (亦即調整 a,b,以及c;以一個角度θ自旋一個物件) 都被歸類到旋轉程序裡; 以上這些參數可以合併,形成公式 (8) 裡的矩陣R的參數R
11~R
33;我們會在後面的段落裡討論R
11~R
33參數。
我們也可以使用不同的方法來解說以上的情況,有些人將一個物體的運動分成線性 (平移) 與非線性 (旋轉) 運動。在US 9,733,727 裡,我們更進一步地揭露從一個導航器裡提取一個運動的高階項的方法 (亦即 HOT);當這樣的功能被放到本發明三維圖形使用者介面 (207)上來執行的時候,一個物件的總自由度就可以超過6 個;在這種情況之下,把本發明圖形使用者介面 (207) 稱為完整的三維 (exactly 3D) 或一個有 6 個自由度 (6 DOF) 的圖形使用者介面都不是很恰當。更確切地說,本發明的器件就是一個真正高品質的圖形使用者介面 (high quality GUI),該真正高品質的圖形使用者介面能夠描述一些複雜的運動,該些複雜的運動的自由度能夠超過 6 個。
為了面對使用線性與非線性運動向量來描寫一個三維物體的運動的挑戰,本發明三維圖形使用者介面提供以下的功能:
1. 一個應用介面 (application interface,API),該應用介面 同時 (simultaneously) 提供給一個三維物件線性 (亦即,平移) 運動向量以及非線性 (例如,旋轉) 運動向量;
2. 一個導航器,該導航器是一種能夠提直接供給一個三維物件三維絕對地址 (亦即圖 2A 裡的 (x,y,z)) 的導航器 (202),如此就可以避免/減低一些不必要的二維到三維的矩陣轉換程序 (2D to 3D matrix transformation process);
3. 一個完整明瞭的方法,該方法是用來編輯/修改兩種模式的運動向量用的 (亦即,平移以及旋轉運動向量);該方法是根據以上所述的三維導航器 (202) 的輸入資料,使得一個使用者能夠以直覺及很有效的方式來安排/修正以上所述的物件的一系列的動作 ;
4. 一種按照智慧神經網路的功能處理複數個的三維物件的智慧方法 (例如,一系列的矩陣運算,在執行該矩陣運算時,該些矩陣的元素的數值可以被本發明的三維導航器操控);該處理三維物件的智慧方法是以一種軟體套件的形式將上述的智慧神經網路的功能賦予到一種三維圖形使用者介面模組裡面,該處理三維物件的智慧方法能夠使該三維圖形使用者介面與其使用者之間的接合互動變得比習知技術更為良好,同時該處理三維物件的智慧方法可以使其中央處理器 (CPU) 或圖形處理器 (GPU) 的計算負載有效地降低。
圖 6A 所繪示的是一個典型的圖形使用者介面,該圖形使用者介面是一些具有層形架構的軟體,該圖形使用者介面的軟體是操作在硬體 (620) 上。該硬體 (620) 又進一步被繪示於圖14。如圖6A 所繪示,一個圖形使用者介面是一些層數為複數層的軟體,該些軟體存在於輸入器件 (601) 與一個作業系統 (operating system,例如,Windows、Linux、OS、Android) 的內核 (kernel,605) 之間;此處我們應留意微軟公司 (Microsoft Corp.) 把整個包含有內核 (605) 以及圖形使用者介面 (207) 的作業系統稱之為WINDOWS。
根據一般圖形使用者介面的定義,一個視窗 (window;注意,此處採用小寫英文字以利於讀者區別微軟的 WINDOWS) 是指屏幕 (例如,(207) 上專門為某一種特定的應用所分派出來的一塊區域;例如,圖13A~B 裡的 (1303),(1304),以及 (1306));一個視窗管理員 (window manager,(604)) 是一個系統軟體,該系統軟體是用來控制位於一個圖形使用者介面 (例如,(207)) 裡面用來控制一個視窗系統 (windowing system) 裡面的window 的擺放位置以及外觀用的。典型的視窗管理員包括堆疊型 (stacking) 、板塊鋪貼型 (tiling) 、動態型 (dynamic),或複合型 (composite) 等等。
有關於圖形使用者介面更詳細的特性,讀者可以至威基網站 (Wikipedia) 上蒐尋"Graphical User Interface" 來獲得相關資訊。值得注意的是,雖然習知技術傾向於把以上所述的層形架構軟體的功能實施在軟體上 (例如,圖6A 裡的 (602),(603),以及 (604)),這個現象並不排除下世代的三維圖形使用者介面 (207) 把某些上述的軟體層 (例如,支援向量機、Support Vector machine (616);神經網路、Neural Network (610),等如圖6B 所繪示的內部處理模組) 實施在硬體上 (例如,特殊功能 IC,ASIC) 的可能性。現在請特別參考圖14,硬體 (620;同時也是圖 6A 裡 620) 是一個電腦、一個顯示系統、一個機電系統,或是依照本發明的一般性的目的的一個計算器件。該計算器件通常包含一個中央處理器 (CPU) ,(1402);一個主記憶體 (main memory) , (1404);記憶體接口 (Memory I/O) ,(1410);橋接器 (Bridge) ,(1412);輸出入器件 (1406A),(1406B);以及與中央處理器 (CPU),(1402) 互通的緩衝記憶體 (cache memory), (1414)。中央處理器 (CPU),(1402) 可以是任何一種邏輯電路;中央處理器 (CPU),(1402) 能夠回應以及處理一些從主記憶體 (1404) 收取過來的指令,中央處理器 (CPU) 1402亦能夠讀取或寫入資料到主記憶體 (1404)上面。主記憶體 (1404) 可以包含一個或多個能夠儲存資料的記憶體晶片,中央處理器 (CPU) ,(1402) 能夠從主記憶體 (1404) 任何位置接觸到資料。
本發明的圖形使用者介面一般是以輸出/入器件 (input / output devices) , (1406) 作為其展示的器件,比如說,該輸出/入器件 (input / output devices) , (1406) 是一個電子顯示屏幕。圖6A 裡的輸入器件 (601) 通常是相當於另一個圖 14 裡的輸出 /入器件 (input / output devices),比如說,(1406A) ,(1406B) 是一個能夠與主記憶體 (1402) 互動的器件,圖2A 所出示的是一個位於本發明三維圖形使用者介面 (207) 裡的物件的外觀如何受到以上所述的兩種旋轉運動的影響. 值得注意的是,這個圖形使用者介面裡的物件 (201) 已經被刻意地描繪成一個卡通物件,亦即飛毯;藉由這樣方式的描繪法,觀察者接收到一個由其所處的環境所推知的信息,亦即飛毯 (201) 是會飛的,而一個飛行的運動代表著該受到注目的物體 (201) 是位於一個三維空間裡。
那也就意味著一個會飛的物件的姿態不只是一個給人從外觀感的特殊外形 (例如,這個特殊外形是一個二維的圖符 (2D icon);2.5D的圖符 (2.5D icon);或一個三維的圖符 (3D icon);更確切地說,它是與三維空間裡的運動有關。如圖2 所示,物件 (201),亦即此處所提的飛毯,不僅在一個三維座標系統裡 (以 X,Y,Z軸表達) 有一個絕對地址 (x,y,z),還有一個特殊的 「傾斜姿態」(tilting gesture),該傾斜姿態可以由一個特殊的平面來代表,該平面與 X,Y,以及Z 軸分別交會於點 a,b,以及c (如我們之前所指定的,我們將該平面稱為平面abc,或旋轉平面abc (plane of rotation abc)。公式(7) 所表達的是圖2A裡的旋轉平面abc的數學公式。
(7)
根據本發明三維圖形使用者介面的基本設計法則,提供一個三維物件 (比如說,飛毯 (201)) 一個運動向量,牽涉到以下的場景:
(1) 當一個操作者 (如圖2D) 在參考表面 (205) 上移動本發明的三維導航器 (202) 一個運動向量 S 的時候 (注意,實際上該參考表面 (205) 就是相當於旋轉平面abc),飛毯 (201) 會在該旋轉平面abc上移動 (像爬行一樣) 一個與該運動向量 S相對應的平移向量;
(2) 提供給該三維物件一個旋轉運動牽涉一個不同的場景:
(i) 當滑鼠機體 (202) 正在以一個以上所述的平移運動向量在參考表面移動的時候,前述旋轉運動可以經由該操作者在姿態偵測機構 (203) 擺動他/她的手指 (206),使得該旋轉平面abc與三個座標軸的交會點的值,亦即 a,b,以及c,有所改變;
(ii) 從解析幾何的角度來分析,此種情況 (亦即改變旋轉平面abc傾斜的情況) 相當於是改變該旋轉平面abc的法向量 (例如,從
變成
)。如果一個觀察者把觀點落在飛毯 (201)上,並且仔細地檢查一下,上述法向量從
變成
的改變可以從該飛毯的外觀的改變驗證出來。
(iii) 當一個點 (例如,像素 pixel 或體素 voxel) 被一個平移與旋轉合成的位移移動了以後,該位移的參數可以用公式 (8) 裡的R以及T來代表,該點會到達一個新的位置,我們用P’
表達。
P’=R · P + T=
=
(8)
如公式 (8) 所闡明的,旋轉位移R 並不是一個單一數值的物件,它是用一個 (3 × 3) 的矩陣來代表,亦即,
(9)
同樣的,平移位移的資料T也不是一個單一參數的資料,它是一個包含有三個參數的矩陣,它被表達為
(10)
使用公式 (8),上述兩個位移 (亦即一個物件的平移以及姿態的動作;它們也可以被稱為運動向量) 可以合併成一個位移;也就是說,一個物件的最終運動向量是平移運動向量與旋轉運動向量的加成 (superposition) 的結果。值得注意的是,這樣的一個合併的運動向量可以施加於一個小至如一個像素大小的物件 (或體素,voxel,如果我們要強調它的體積性質);這是本發明三維圖形使用者介面 (207) 幾個最基本功能的其中的一個,也是本發明三維圖形使用者介面 (207) 與以往的「類似三維」(quasi 3D) 的圖形使用者介面幾個基本不同之處的其中的一個。
上述的旋轉矩陣 R可以轉換成不同的格式。如公式 (11) 所示,旋轉矩陣 R 可以被當作是三個旋轉矩陣的結合 (亦即連續三個矩陣相乘),其中每一個矩陣是用來指定圍繞一個軸 (亦即X 軸,Y軸,以及 Z軸) 旋轉的旋轉運動。 因此,如公式 (11) 所示,一個位於三維座標系統裡的一個點的旋轉位移可以用三個旋轉角度來代表,亦即φ,ϕ,θ,如公式 (11) 所表達的,把φ,ϕ,θ拿來取代公式 (8) 裡的R
11~ R
33, 我們可以重寫旋轉矩陣 R;同理,反之亦然。
(11)
另一個替換的方法是,旋轉矩陣 R可以被描述成公式 (12) 的樣子,在公式 (12) 裡,參數n
1,n
2,以及n
3代表一個旋轉軸
(pivot axis) 的單位向量,ω 代表的是圍繞該旋轉軸
的旋轉 (例如,自旋 spinning) 角度。
(12)
在實際操作上,根據不同的應用,本發明三維圖形使用者介面能夠選擇公式 (11) 或 (12),或其它形式的旋轉矩陣 R (例如,四元數,quaternion等等) 來供其使用,其結果會相同。比如說,公式 (11) 需要三個角度資料 (φ,ϕ,θ) 來描述一個旋轉動作;至於公式 (12),它只需要一個角度資料ω來描述一個旋轉動作。
根據不同的應用,不同形式的旋轉矩陣 R會需要不同的參數來指示一個旋轉運動,因此,本發明三維圖形使用者介面 (207) 提供一個應用介面 (application interface,API),以便讓本發明三維圖形使用者介面 (207) 根據不同的情況提供相關計算所需要的參數。圖6B 所繪示的是這樣的一個 API (609)。值得注意的是,該API (609) 是從一個輸入器件 (601) 接收資料,此輸入器件 (601) 並不一定是本發明的三維導航器 (202)。在實際操作的情況裡,由於其它的導航器也能夠被API (609) 接受,這些不同類型的導航器能夠利用本發明的API (609) 作為入口 (portal),隨後它們輸入的資料就會被不同的內部處理模組 (例如, internal process modules, 615) 處理,像這樣的內部處理模組至少包括專門為游標移動 (606),立體畫法 (607),以及機器人 (608) 等設計的模組。
例如,在動畫式電子遊戲工業裡,最常被用到的旋轉矩陣 R 的格式是四元數 (quaternion)。在那樣的情況下,本發明的三維圖形使用者介面 (207) 會從上述的 API (609) 送一個信號給三維導航器 (202),要求它傳送代表四元數 Q 的參數,亦即,p,q,r,以及 s;其公式 (13) 為:
Q = p + qi + rj + sk (13)
此處 p,q,r,以及 s 是實數;i,j,以及k 是四元數的基本單位。
在習知技術裡,使用平移運動向量以及旋轉運動向量移動一個游標/物件需要一個操作者使用不同的導航器 (例如,使用一個旋轉紐以及一個平移運動導航器,等等) 才能完成工作。當一個游標/物件的運動是由許多導航器的中間步階 (intermediate steps) 所組成的時候,其整個移動游標/物件的過程就會變得非常的煩雜。當一個電腦,電子系統,或機電系統使用本發明的三維圖形使用者介面 (207) 時,一個如公式 (8) 的合併平移運動以及旋轉運動的運動可以由單一隻手的姿態動作來提供 (亦即一隻手的動作,該手的動作至少包含手掌的平移的運動以及手指的擺動的動作)。上述這個特殊的能力使得一個使用者能夠與本發明三維圖形使用者介面以直接互動的方式接合。
現在我們進一步檢視以往的二維圖形使用者介面 (例如,圖1B 裡的105) 的基本原理 (rudiments)。如圖1B 所示, 當一個游標以一個特定的形狀 (例如,箭頭 (111)) 呈現在一個以往的顯示器件上面時,該游標瞄準一個點 P (該點P 在十字 (113) 上) 以代表該游標聚焦之所在 (亦即,x,y)。
對該觀察者與該電腦 (112) 兩者而言,所有該游標在意的資訊就是那個點 P;值得注意的是,該點 P 並沒有更多與幾何或方向有關的意義。 比如說,繞著該點P 旋轉箭頭游標 (111) 45 度不會對該點P 造成任何影響 (一個數學的點 point/dot 沒有任何旋轉上的意義)。由於缺乏旋轉的性質,一個單獨旋轉點P 的動作完全不會使十字形物件 (113) 旋轉。自從電腦滑鼠發明以來,以上所述的在圖形使用者介面裡指定地址/運動的方法 (亦即只有平移運動向量,沒有旋轉運動向量) 是被電子業廣為接受的。舉十字 (113) 為例,由於十字 (113) 的幾何性質已經退化成一個數學的點,以往的導航器 (例如,(101)) 並沒有辦法僅僅靠使用一個平移運動向量與該點P 進行接合互動就可以旋轉該十字 (113)。
當一個使用者企圖旋轉上述的十字 (113) 的時候,他/她必須要指定該十字上的另一個點 (例如,點 (114));藉由拖曳 (dragging) 該點 (114) 一個平移運動向量,該以往的圖形使用者介面方才知道該十字 (113) 需要旋轉多少角度。
因此,為了要執行旋轉十字 (113) 的工作,習知技術通常都必須依靠線性代數來導出一個物體的新位置;這就解釋了為什麼以往的圖形使用者介面旋轉物件的方法不是一種直接的辦法。受到以上所述與生俱來的缺點的影響,今天的消費者從大量銷售的市場購買導航器的時候,會遇到一些麻煩。不管以上所述以往的導航器是一個狹長木板、枝條、手套、尖筆、眼鏡,或旋轉紐等等,這些以往的導航器都面臨同一種情況:這些以往的導航器所連接的圖形使用者介面仍然是把物件當作是一個或一群數學的點,因此,其所使用的操控物件的運動的方法仍然不是一個直接的方法。總之,如本發明之前所解釋的,由於數學定義的限制,一個點物件本身不會有任何特性是與旋轉有關的;過去數十年來整個圖形使用者介面被以上所述的過於簡化的產品設計方針所限制。
第 7 節 . 鑲嵌有機器人運動學 (robot kinematics) 功能的本發明三維圖形使用者介面
隨著機器人的使用逐漸變得普遍,以往機器人所使用的計算位置與運動的方法 (例如,演算法或軟體) 變得相當過時,其原因即在於以往機器人沒有一種有效的方法來以即時 (real time) 的方式操控一個機器人的位置或運動。
對於一些需要在原位監控/修正 (in-situ monitoring/modifying) 的機器人程序的應用,本發明三維圖形使用者介面 (207) 成為一種省時 (time-saving) 而且受歡迎的器件。圖 7A 所示的是一個示範的機器人,例如,一隻機械臂 (一個有六個關節的 PUMA® 機器人;本發明從此處以後將其稱之為機器人 (700)),該示範的機器人能夠受惠於本發明三維圖形使用者介面 (207)。
如圖 7A 所示,上述的機器人(700) 的一些關節或肘部可以用旋轉角度 (亦即,θ
1,θ
2,θ
3,θ
4,θ
5,以及θ
6) 來描述。當這6個關節按照圖7A 所繪示的方式連接起來,其各個關節的相關矩陣運作可以被表示為:
(14)
此處C 代表餘弦函數 (Cosine function),S 代表正弦函數 (Sine function),L
elbow1是連接關節1與接關節2的肘部的長度,L
elbow2是連接關節3與接關節4的肘部的長度,
;for i =1, 2, … n (15)
當 i =n,我們得到一個 T 矩陣,亦即T
0 n,該T
0 n矩陣提供地址與旋轉資料給P
end,亦即機器人 (700) 相對於基地座標系統 (圖7A 裡的 O) 的終點 (end point) 位置與旋轉資料。值得注意的是,公式 (15) 裡的矩陣T
0 i的參數R
11~
R
33,X,Y,以及 Z可以直接應用在公式 (8) 上面;這個意思就是本發明三維圖形使用者介面可以直接控制機器人 (700) 的運動。以另一種方式表達,上述的矩陣T
0 i的參數R
11~
R
33,X,Y,以及 Z 可以轉換成其它形式;其中的兩個形式分別被顯示於公式 (11) 以及 (12)。讀者應留意當 i 小於 n 時,前述T
0 i矩陣代表的是內部關節的位置與旋轉向量,亦即,
,
,
,
,
。我們應進一步特別注意的是,當我們使用本發明的三維導航器 (202) 的時候,藉由按照以下的資訊來考慮上述的 T 矩陣,本發明的三維圖形使用者介面 (207) 能夠將一些物理意義灌輸到上述的 T 矩陣的參數上。
(16)
n 代表手部的法向量;如果我們使用的是一種平形咬齒的手部 (parallel-jaw hand),n 會與機器人的手指正交; 圖12 顯示的是
的方向。
s 代表的是手部的滑移向量 (sliding vector),該滑移向量的方向是朝向抓器 (gripper) 的方向,所謂的抓器,是一種簡化的手指,以s (方向/數值) 來代表該抓器的打開與閉合動作;圖12 顯示的是
的方向。
a 代表手部接近的向量。該手部接近的向量的方向是朝向與手掌 (亦即由y
5與z
5軸所形成的旋轉平面如圖7A) 垂直的方向; 圖12 顯示的是
的方向。
p 代表手部的位置向量,該位置向量是指當該抓器關閉時,從基地座標系統的原點 (圖7A 以及圖12裡的 O) 指到手部的中心的座標系統的向量;圖 12顯示的是
的方向。
明確地說,
,
,
,
;
n
x= C
1 [
C
23 (
C
4C
5C
6- S
4S
6 )
- S
23S
5C
6 ]
- S
1 [
S
4C
5C
6+ C
4S
6 ] =
R
11 of Eq. (8);
n
y= S
1 [
C
23 (
C
4C
5C
6- S
4S
6 )
- S
23S
5C
6 ]
- S
1 [
S
4C
5C
6+ C
4S
6 ] =
R
21 of Eq. (8);
n
z= - S
23 [(
C
4C
5C
6- S
4S
6 )]
- S
23S
5C
6 =
R
31 of Eq. (8);
s
x= C
1 [-
C
23 (
C
4C
5C
6- S
4S
6 )
+ S
23S
5C
6 ]
- S
1 [-
S
4C
5C
6+ C
4S
6 ] =
R
12 of Eq. (8);
s
y= S
1 [-
C
23 (
C
4C
5C
6+ S
4S
6 )
+ S
23S
5C
6 ]
+C
1 [-
S
4C
5C
6+ C
4S
6 ] =
R
22 of Eq. (8);
s
z= S
23 [(
C
4C
5C
6+ S
4S
6 )]
+ S
23S
5C
6 =
R
32 of Eq. (8);
a
x= C
1 [(
C
23C
4C
5+ S
23C
5 )]
+ S
1S
4S
5 =
R
13 of Eq. (8);
a
y= S
1 [(
C
23C
4C
5+ S
23C
5 )]
+ C
1S
4S
5 =
R
23 of Eq. (8);
a
z= - S
23C
4S
5+ C
23C
5 =
R
33 of Eq. (8);
p
x= C
1 [
d
gripper (
C
23C
4S
5 +
S
23C
5 )+
S
23d
4 +
a
3d
4 +
a
3C
23 +
a
2C
2 ]-
S
1 (
d
gripper S
4S
5+d
2 )
= absolute address parameter
Xof Eq. (8)
p
y= S
1 [
d
gripper (
C
23C
4S
5 +
S
23C
5 ) +
S
23d
4 +
a
3d
4 +
a
3C
23 +
a
2C
2 ] +
C
1 (
d
gripper S
4S
5+d
2 )
= absolute address parameter
Yof Eq. (8)
p
z= d
gripper (
C
23C
5 -
S
23C
4S
5 ) +
C
23d
4 -
a
3d
23 +
a
2S
2 +H= absolute address parameter
Zof Eq. (8)
(17)
圖12 所繪示的是一個圖 7A 的機器人的終點 (end point;P
end) 由於握住工具 (utensil or implement) 而往向量
的方向延伸了一段距離;在圖12裡,該距離是以additional length of utensil來指示。這個延伸的動作使得其終點移至一個新的地點,亦即P’
end。 如圖 12 所示, 該抓器的方向可以由三個正交的向量
,
以及
來表達其特性。
我們現在瞭解到當我們要給矩陣T指定一個位置的時候,我們需要為其各關節提供旋轉角度,亦即θ
1,θ
2,θ
3,…,以及θ
6(為了容易闡述,本發明從此處開始把以上該些角度稱之為旋轉角度rotational angles)。直到今天,習知技術還沒有開發出任何有效的方法在迪卡爾座標系統 (Cartesian coordinate syste) 導出該些角度。
每當遇到這樣的情況,工程師必須要使用非直接的方法,比如說,使用疊代演算法 (iterative algorithms) 等,來找到答案。為了對付這個問題,本發明三維圖形使用者介面 (207) 使用一個如圖2A 所示的特殊的三維導航器 (202),以方便其以即時 (real time) 的方式調整旋轉角度θ
1,θ
2,θ
3,…,以及θ
6。
以上所述的 (以即時,real-time,的方式調整旋轉角度) 功能對機器人工業以及圖形使用者介面工業都很重要;許多應用可以被建立起來;比如說,一種應用為特殊的開刀手術;在進行該特殊開刀手術時,一個外科醫生操控一種機器人化的工具來進行該開刀手術等等。本發明三維圖形使用者介面 (207) 的基本功效即在於其同時操控一個機器人的關節的絕對地址,平移與旋轉運動的能力 (該功效以公式 (8) 來代表)。
事實上,從一個廣泛的觀念來理解,任何一種能夠用公式 (8) 來代表的三維物件的運動,都可以使用本發明三維圖形使用者介面 (207) 來達到一種前所未有的與使用者互動的經驗。具有這樣功效的一些可以作為範例的應用至少包括:
(1) 使用一種繪圖程式來修正一個卡通角色的運動,該繪圖程式使用本發明三維圖形使用者介面 (207);
(2) 使用本發明三維圖形使用者介面 (207) 為一個機械零件製圖;
(3) 使用本發明三維圖形使用者介面 (207) 控制一個動畫式電子遊戲裡的角色的動作;
(4) 使用本發明三維圖形使用者介面 (207) 操控一個醫學診斷儀器的工具,等等。
上述的機器人操控過程與使用前進運動學 (forward kinematics) 來決定一個機器人的終點 (亦即P
end) 的最後的位置 (final position) 有關。除了前進運動學之外,本發明三維圖形使用者介面 (207) 能夠根據逆向運動學 (inverse kinematics) 來自動地調整一個機器人的關節的位置與角度。
在一個如圖7A所示的一個示範的具有 6個關節的PUMA® (亦即機器人 (700)) 運動過程裡,自動求解各關節的旋轉角度可以按照如下的方法進行:前3個關節 (i =1~3) 有4 個可能的解;根據該前3個關節所得到的4 個可能的解裡的每一個解,其後的三個關節 (i =4~6) 會有2個可能的解。一個典型的求解上述各關節的位置/角度的方法就是將它們的三維向量投影在x
i-1- y
i-1平面上 (如圖7A 所示)。
由於關節4~6 的位置/旋轉角度不會導致其前面兩個肘部L
elbow1以及L
elbow2的位置的改變,我們可以使用一些次矩陣 (sub-matrixes of T
0 i) 以及 (i = 4~6) 來計算其投影在x
i-1- y
i-1平面上的向量;因此,關節4~6 的位置/旋轉角度的解是根據前三個關節的解,亦即次矩陣T
0 i來計算出來的。
由於前述圖7A 裡的機器人 (700) 的各關節有許多解,人工智慧的方法可以投入使用,以幫助本發明三維圖形使用者介面 (207) 較快而且容易地決定上述的解。在一個典型的具有人工智慧功能的導航程序裡,一個使用人工智慧功能處理重復出現的資料處理的程序可以實施於本發明三維圖形使用者介面 (207) 上;前述該具有人工智慧功能的資料處理程序能夠及時地 (in a timely manner) 為一個被追蹤的物件處理一系列的線性與非線性運動資料 (亦即,T
0 i,
,等)。
例如,在一個想像的動畫式電子遊戲裡,一個卡通角色彼得•潘 (Peter Pan) 正在用一隻匕首與虎克船長 (Captain Hook) 戰鬥。 結合本發明的三維導航器 (202) 與本發明的三維圖形使用者介面 (207) 能夠使一個操作者在一個三維座標系統裡自由地移動彼得•潘的匕首 (亦即使用公式 (8) 裡的旋轉矩陣R 以及位置資料X,Y,Z);同時,藉由使用前述的機器人運動學,本發明三維圖形使用者介面 (207) 能夠計算出彼得•潘的匕首的位置與彼得•潘用來控制該匕首的的一些關節的旋轉向量 (亦即,使用圖12裡的P’
end , ,
,以及
來代表該匕首的位置與運動向量)。
當一個操作者指示彼得•潘向內猛推 (thrust) 該匕首,然後揮動該匕首以使虎克船長的劍偏斜 (deflect) 的時候,其整個過程差不多相似於一個快速的機器人與一個單一的程序接合互動,該程序結合了一些交替的前進運動學的動作以及逆向運動學的動作。偶爾地,彼得•潘向的搏鬥過程會需要人工智慧的協助,以加速其求解的過程。
例如,在戰鬥中,本發明三維圖形使用者介面 (圖2A 裡的 (207)) 可以偶爾地注意一下彼得•潘與虎克船長之間的相對距離;當某種神經網路的條件被滿足時,本發明三維圖形使用者介面 (圖2A 裡的 (207)) 會自動地調整該相對距離的位置以及其相關的旋轉角度. 如之前已經解釋過的,一個典型地的圖形使用者介面的效能的判斷方式是根據該圖形使用者介面如何有效率地,流暢地與使用者互動來決定;本發明三維圖形使用者介面 (圖2A 裡的 (207)) 所提供的特殊的機能,亦即機器人運動學,把一個使用者的接合互動的經驗提昇到一個遠超過習知技術的層次。此外,當彼得•潘在一個三維空間裡遨翔以及搖擺的時候,這個現象也表達了彼得•潘所在的三維空間裡能夠含有一個預先決定好的向量場 (vector field),該向量場能夠與一個導航器所提供的運動向量結合,從而形成彼得•潘一個新的運動向量。
圖7B 所繪示的是一個模仿人類的骨架的機器人 (擬人機器人Humanoid)。如圖7B 這個用來作示範的情況所顯示的,一個擬人機器人結構 (701B) 可以用到25個之多的自由度來代表它的頭部、軀體、骨盆、腿部,以及手臂等所產生的運動. 在操弄擬人機器人結構 (701B) 的時候,本發明的三維導航器 (圖2 裡的 (202)) 一次可以提供6個自由度。初看這個情況,讀者可能會覺得本發明的三維導航器 (圖2 裡的 (202)) 似乎無法一次操弄到該擬人機器人結構所有的關節 (這樣作會一次需要 25 個自由度)。注意圖7B的這些數字的總和並不是25,因為這些數字是表示每一關節(joint)的自由度。
不過,本發明三維圖形使用者介面 (圖2A 裡的 (207)) 可以以一種高度有效的方式適應這種情況。值得注意的是,通常一個操作者不需要一次就使用到 25 個自由度。因此,本發明三維圖形使用者介面 (圖2A 裡的 (207)) 可以在一段時間內選擇6 個自由度來操控該擬人機器人結構 (701B) 的一種特殊的姿態,然後,藉由在整個操控過程裡改變選擇一些不同的段落的骨架,最後一個操作者仍然能夠在一整個操控過程裡操控到所有25 個自由度。
如果一個讀者仔細檢視一下圖7B,他/她會發現要移動該擬人機器人結構 (701B) 的頭部,需要3個自由度 (注意,少於6 個);要移動該擬人機器人結構 (701B) 的一隻手肘,需要3個自由度 (注意,少於6 個);要在一段從腳趾到膝蓋的區域產生一個運動,需要3個自由度 (仍然少於6 個),等等。如果一個本發明三維圖形介面 (圖2A 裡的 (207)) 的使用者 能夠在以上所述的關節分段群體裡以一種很快速的方式循環,或使用一種智慧的程序來決定上述的那一個關節段落應該被使用,則本發明三維圖形使用者介面 (圖2A 裡的 (207)) 仍然可以在一次只用到6 個自由度的情況下成為一個極有效率,易於供人使用的圖形使用者介面。例如,當本發明三維圖形使用者介面 (圖2A 裡的 (207)) 正在控制一個卡通角色彼得•潘的飛行動作的時候,在這個情況之下,操弄彼得•潘的腿部的姿態通常是不必要的;此時是彼得•潘的軀體以及他的兩隻手臂的旋轉動作與他的飛行的表現有最大的關係。
以上所述的擬人機器人結構 (701B) 仍然能夠被修改以適應各種卡通角色的不同的身體結構 (例如,狗、怪獸、美女,等等)。圖8A 所繪示的是一個卡通角色 (800),該卡通角色 (800) 的骨盆以及臀部區域被其衣服遮蓋 (801);與此一情況相對應的擬人機器人結構 (701B) 是顯示在圖8B。
請注意看該簡化的擬人機器人結構 (圖8 裡的801B) 的骨盆區域;通過這樣的簡化過程,整個卡通角色 (800) 的自由度可以大大地減少,這使得本發明三維圖形使用者介面 (圖2A 裡的 (207)) 能夠相當容易地控制整個卡通的身體的運動。在實際操作時,上述的完整的擬人機器人骨架結構 (701B) 以及簡化過的擬人機器人骨架結構 (801B) 可以同時出現在本發明三維圖形使用者介面 (圖2A 裡的(207)) 裡。例如,一個預見的使用者創造卡通角色電影 (envisioned user creating a cartoon feature movie) 可以使用本發明三維圖形使用者介面 (圖2A 裡的 (207)) 來操控一個簡化過的擬人機器人骨架結構 (801B),以此來作為一個控制配角的方法;至於操控一個主角的動作,其相關的工作能夠交給更複雜的擬人機器人結構 (701B) 來完成。更進一步地,當問題來到控制面部表情時,本發明三維圖形使用者介面採用一個更基本的層次,亦即多邊形網路 (polygon network)。
圖10A 所繪示的是一個人臉的多邊形網路。我們現在拿一個貼塊 (例如,(1002)) 來分析。如圖 10B 所示,為了修改貼塊 (1002),本發明三維圖形使用者介面容許一個操作者接觸該貼塊的四個角落 (亦即,A,B,C,以及 D) 以及該貼塊的法向量 (1010),該法向量 (1010) 也被稱為頂點 (vertex (1010);或者,也可被稱為節點 node)。
舉角落點 A 為例,當一個操作者用滑鼠鍵按一下該角落點 A,然後在參考表面 (205T) 上拖曳本發明的三維導航器 (202) 一段距離,這個動作會使該角落點 A產生一個與其相對應的平移運動向量。 因此,如圖 10C 所示,靠著這樣的一個平移運動,以及按照拖曳的方向決定其方向,該角落點可以移至A’,A”,A’”,或 A””,等等。
與該角落點的移動相對應的是,該貼塊 (1002) 的形狀/面積也會隨之改變。我們應小心留意當該貼塊 (1002) 的形狀/面積隨著角落點A 的移動而有所改變的時候,該頂點 (vertex 1010) 位於貼塊 (1002) 的位置也同時改變。如圖 10B 以及 10G 所示,當一個操作者用滑鼠鍵按一下該法向量/頂點 (1010),然後在本發明的三維導航器 (202) 上的姿態偵測機構 (圖 2 裡的 (203)) 上擺動他/她的手指的時候,他/她可以調整旋轉平面 (1002) 的傾斜度。
如圖 10D,10E,以及 10F 所示,我們可以將以上所述的調整旋轉平面 (1002) 的傾斜度的過程視為平面 (1002) 繞著X,Y,或 Z 軸所作的旋轉動作 (亦即圖10D,10E,以及 10F 裡的(1002’),(1002”),and (1002’”));這樣的理解也與我們之前的解釋相匹配。如公式 (12) 所啟示的,調整法向量 (亦即改變n
1,n
2,或n
3的數值) 可以導致旋轉矩陣 R 裡的R
11~ R
33改變,而這也意味著上述該調整法向量的過程會導致公式 (11) 裡的角度φ,ϕ,以及θ有所改變。在一個使用者能夠與卡通角色接合互動的電影裡,一個比較受到使用者喜愛的圖形使用者介面是一個能夠同時提供給一個多邊形網路裡的貼塊的頂點平移運動向量以及旋轉運動向量的三維圖形使用者介面。習知技術需要使用分離的器件/程序來處理以上所述的工作;當一個圖形使用者介面需要使用複數個的輸入器件/程序來控制一個物件的動作的時候 (上述的一個多邊形網路的貼塊可以視為一個物件),其原來的即時 (real time) 調整一個卡通的姿態的目的已經受到挫折。
本發明三維圖形使用者介面 (圖2A 裡的 (207)) 能夠消除這個問題,因此,本發明提供了一個創新的處理方法,該創新的處理方法是以逼真的方式 (in realistic manner) 來操控物件的姿態/表情 (gestures/expressions)。
當然,有許多場合一個三維圖形使用者介面裡的三維物件不是一個擬人機器人。在這些情況裡,飛毯 (圖2A 裡的 (201)) 可以被用來代表本發明三維圖形使用者介面 (圖2A 裡的 (207)) 的基本價值。如圖 2A 所示,當旋轉平面與座標軸的交點改變時 (亦即a,b,以及 c有所改變時),觀察者所看到的該飛毯 (圖2A 裡的 (201)) 的外觀也會有所改變。
一個觀查者所觀看到的一個特殊的外觀的改變 (亦即,「姿態」,gesture) 事實上就是在說明姿態是一個三維物件的許多特性裡最重要的一個特性。一個過於簡化的圖形使用者介面,就如大部分今天的我們可以在市場裡找得到的圖形使用者介面一樣,會把上述的飛毯 (201) 當作是一個數學的點來考慮. 受到使用這樣的簡化法的限制,習知的圖形使用者介面把一個三維物件的無價之寶給拋棄掉,該無價之寶與一個三維物的旋轉運動以及幾何的轉變 (geometrical transformation)有關。
我們現在明白過來當電子工業進入三維領域時,它會需要一個完全成熟的 (full-fledged) 的三維圖形使用者介面,該完全成熟的三維圖形使用者介面能夠提供給一個三維物件 6 個自由度 (亦即圖4B 裡的X,Y,Z, , ,以及 )。這個現象也進一步證實了本發明的一個主張,該主張說:由於本發明三維圖形使用者介面能夠以足夠的自由度支持其與使用者直接地,直覺地接合,此一特性代表本發明三維圖形使用者介面是一個真正的互動型三維圖形使用者介面。
基於以上的分析,一個用來操控機器人的旋轉矩陣本質上與一個在三維圖形使用者介面裡操控三維游標/物件時所使用的旋轉矩陣是一樣的。如飛毯 (201) 所顯示的,大部分我們在自然世界裡遇到的物體都是同時受到平移運動 (亦即從一個 X,Y,Z 三維地址改到另一個X’,Y’,Z’三維地址) 以及旋轉運動 (姿態的改變,change of gesture) 的影響的。
當我們預期三維繪圖的革命 (3D graphics revolution) 即將發生的時候,電子工業就會有一種需求去開發一種新類型的三維圖形使用者介面 (亦即本發明所揭露的 207),該新的類型的三維圖形使用者介面根據一個導航器的一個姿態運動所產生的資料,能夠同時提供線性 (平移) 以及非線性 (旋轉) 運動向量給一個三維物件或一個機器人器件。
在以下幾個段落裡我們將用一個顯示器件裡的每一個點 (例如,像素 pixel) 的自由度來解釋立體畫法的基本功效。一個使用者能夠使用學習原理 (learning theorem) 將一個三維圖形使用者介面裡面的一些用來繪圖的圖形向量 (graphical vectors) 分類,使得該維圖形使用者介面能夠根據立體畫法技巧更有效地呈現一個三維景致。
在本第7節裡,我們所考慮的三維景致是靜態的 (static,亦即在該三維景致裡的物件沒有運動向量);因此,在本第7節裡,只有圖形向量會被討論到. 在第8節,我們會出示一個觀察者如何使用一個三維圖形使用者介面來與一動態的三維景致互動 (也就是說,在這樣的一個互動的三維景致裡,圖形向量 graphical vectors;運動向量;以及立體視角度,perspective angles;都參與了該互動的程序)。學習原理是一個有力的工具,該工具可以用來將圖形物件分類;學習原理會用在本第7節以及第8節。
在之前與圖 10A 到10G 有關的段落裡,我們已經解釋過本發明三維圖形使用者介面如何藉由提供給每一個多邊形網路的頂點 (亦即圖 10B 裡的 (1010)) 一個具有 6 個自由度的運動來調整一個三維物件的位置/姿態。一旦上述的編輯程序 (亦即頂點的移動) 完成了,一個用來作為示範的物件的外觀就會像圖 10A 一樣,在圖 10A裡該多邊形網路是一個人臉 (1001)。
值得注意的是,雖然本發明三維圖形使用者介面能夠提供給一個頂點 (vertex) 一個具有 6 個自由度的運動向量,其所完成的產物是一組頂點,該組頂點彼此之間未必有任何特殊物理意義上的關係。其結果是,由該些頂點所構成的貼塊 (patches,例如圖10B 裡的1002) 就像一些彼此沒有關係的樹葉,隨機地掛在一顆樹上。
當一個物理科學家用每一個頂點 (例如,(1010)) 的一個自由度來代表一個特徵向量 (feature vector) 的一個維度的時候,則由圖 10B 裡的所有的頂點 (例如,n 個) 的特徵向量所構成的特徵向量空間 (feature vector space) 的維度會牽涉到一個三維圖形使用者介面裡總數為 n 個的頂點。因此,當 n 很大時,該頂點的數量可以非常的大 (也就是說,在一個示範的情況下,該頂點向量空間 vertex vector space的總維度是 n × 6)。
事實上,在一個現代的數位圖形呈像器件裡 (例如,LCD 液晶顯示面板),一個多邊形網路的頂點數目可以令人吃驚的高 (例如,數萬個)。因此,一個用這樣的方法建立起來的三維物件可以變得過於複雜而不容易被一個觀察者瞭解。舉例來說,一個人很難從樹上的一些葉子裡輕易推斷出任何有關於該些葉子之間的物理上的關聯性。因此,找到一個方法來降低特徵向量的維度是一個下世代高品質三維圖形使用者介面要成為一個真正方便使用的產品必需要有的功能。
如以下將要解釋的,解決以上問題的方案就是讓本發明三維圖形使用者介面能夠使用另外一種有別於運動向量的向量,亦即圖形向量 (graphical vectors),這個圖形向量與繪出一個三維圖形實體有關 (例如,一個三維向量圖形 vector graphic 是由一些三維圖形向量所建構起來)。視不同的應用,一個位於一個三維圖形使用者介面裡的物件可以由一個向量圖形 (例如,圖10H 裡的 (1009)) 來代表,或是由一個多邊形網路 (例如,圖10A 裡的 (1001)) 來代表。以不同的方式陳述以上的情況,一個位於一個三維圖形使用者介面裡的物件可以由以幾個圖形向量來代表 (例如,圖10J 裡的
);或者,該三維圖形使用者介面可以由一些頂點向量 (vertex vector,例如,圖 10B 裡的 (1010)) 來代表。在一個電腦上,有兩種向量並存於本發明三維圖形使用者介面:
(1) 頂點向量 (1010),亦即貼塊 (例如,(1002)) 的法向量,該些貼塊是用來形成一些圖形實體 (graphical entities) 的外層表面用的 (outer surface;因此,該些頂點向量的方向可能會朝向一個三維圖形使用者介面裡很多不同的方向);
(2) 圖形向量 (graphical vectors;例如,
),事實上每一個圖形向量都是一個三維向量,該三維向量是被投射在 (projected onto) 一個二維的觀察平面上 (例如,一個平面顯示器),因此,該投射程序讓一些三維座標系統裡的圖形特徵 (graphical features) 對映 (mapped) 到一個 2.5D的座標系統上。
現在我們參考公式 (8),我們會注意到一個位於三維圖形使用者介面裡的點 (比如說,一個位於 X,Y,Z的點) 是從旋轉矩陣 R 裡的元素 (亦即R
11〜R
33) 那裡獲得它的自由度的。比如說,矩陣 R 裡的元素R
12適合作為一種參數,該參數可以決定當一個物件沿著 Y軸的方向移動一段距離的時候,該物件同時能夠沿著 X 軸的方向移動多少距離。
依照同樣的方法,旋轉矩陣 R 裡的其它剩下的元素能夠決定該物件沿著 X,Y,以及 Z軸所作的其它線性與非線性的運動。總之,本發明三維圖形使用者介面不僅僅能夠操控一個三維空間裡的點的位置數值 (positional values),同時也能儲存該點的旋轉矩陣R。
以一個示範的例子來講,請參考圖 2A 以及 2B,並且假定鑲嵌在本發明的三維導航器 (202)上的光源 (圖2B 裡的213) 的照光條件 (比如說,強度) 被設定在某個特定的數值,使得R
11:R
12:R
13= 1:2:1,那麼,當上述該物件 (比如說,該物體位於一個位置,該位置用 X,Y,and Z 來代表) 沿著X 軸運動的時候,其沿著 X,Y,以及 Z 軸的相對自由度 (亦即位移 displacement) 是1:2:1。
照同樣的方法,我們可以導出該物件沿著其它軸向的自由度。因此之故,藉由設定上述光源(213) 的照光條件, 或是藉由直接調整前述矩陣R 的元素的數值,一個三維圖形使用者介面能夠決定一個三維空間裡的每一個點的自由度。在第9節 (或更明確地說,如圖11E 所示),一個操作者知道藉由把一個食指 (1806) 放在本發明的姿態偵測機構 (圖2B 裡的203) 上,使得本發明的三維導航器 (202) 能夠針對光源 S1,S2,以及 S3決定出一個/組特殊的照光條件;如此,一個位於本發明三維圖形使用者介面裡的特定的點的自由度可以被決定出來。
習知技術並沒有這樣的能力。因此,由於本發明三維圖形使用者介面能夠以一種廣泛而且不受物件尺度影響的方式 (亦即該物件可以小至一個像素大小,大至如圖10H 裡的教堂 (1009) 一般大) 來操控一個圖形向量的自由度,這使得本發明 (207) 成為圖形使用者介面工業的一個技術突破。
在實際操作上,把一個食指 (1806) 放在本發明的姿態偵測機構 (圖2B 裡的203) 上其實是等於是在指示本發明的三維圖形使用者介面 (207) 裡的貼塊 (1002) 的法向量;在本發明的三維圖形使用者介面 (207) 裡,每一個貼塊 (1002)可以由一個點來代表;上述這些法向量相當於多邊形網路 (1001) 的頂點向量 (1010)/節點向量。當一組位於本發明的三維圖形使用者介面 (207) 裡的圖形向量 (這些圖形向量可以由上述的點導出) 具有相似的旋轉矩陣的時候,這個情況就代表上述該組圖形向量在一個三維空間裡架構起來了一個小平面 (facet),該小平面使用它的法向量指向三維空間裡的一個特定的方向。
我們可以使用以上所述的繪圖方法來描繪圖10J 裡的教堂 (1009) 的屋頂。如圖10J所示,屋頂 (◇P
1P
2P
3P
4) 是被四個圖形向量所包圍的,亦即圖形向量
,
,
,以及
。如果一個操作者藉由在參考表面 (205) 上拖曳本發明的三維導航器 (202) 來描繪上述的
,
,
,以及
,而且在該拖曳的過程裡,該操作者沒有搖擺他/他的食指,則所有在本發明的三維圖形使用者介面 (207) 裡被該屋頂 (◇P
1P
2P
3P
4) 所包圍的點全都具有相同的法向量,亦即
。
使用立體繪畫技法(perspective sketching technique),我們可以把上述該屋頂 (◇P
1P
2P
3P
4) 的三維的感覺突顯出來,而這也是為什麼圖10H 的向量圖形給予觀察者如此強的三維感覺的衝擊。 延伸這樣的技法,當一個操作者在參考表面 (205T) 上拖曳本發明的三維導航器 (202) 的時候還搖擺 (wiggle) 他/他的食指,他/她事實上是開創 (以及使用) 了一個新的圖形表達方法。在實際操作上,上述該個操作者的動作相當於在本發明的三維圖形使用者介面 (207) 裡先給定一個世界空間照相機 (world space camera; perspective camera) 起始的三維位置,隨後以一系列的平移以及旋轉運動向量,使得該立體視角達到一個特定的角度,此時該視覺的分類 (visual classifying) 達到一個優化的條件。
我們將這樣的表達模式稱之為「數位印象派」,“digital impressionism”;「數位印象派」這個名詞借用了「印象派」,“impressionism”這個名詞;「印象派」這個名詞原先是一些藝術家,如克洛德•莫內 (Claude Monet),在使用的。克洛德•莫內以及他的團體所使用的「印象派」,“impressionism”是指示一種繪畫技法,該繪畫技法把彩色的貼塊 (patches) 畫入景致 (landscape) 裡,藉以表明光的短暫的效果 (fleeting effects),在繪畫室外的環境時,此種光的短暫的效果容易出現。當本發明的三維圖形使用者介面 (207) 產生類似「印象派」,“impressionism”的圖像呈現效果,我們認為將「印象派」, “impressionism”稱之為是本發明的「數位印象派」,“digital impressionism”的起源是有理可循的。
如果一個圖形使用者介面的設計者沒有任何方法可以指定一個三維景致裡的一些圖形向量的關係,則由該些圖形向量所建立起來的特徵向量空間的維度就無法有效地下降;其結果是,觀看者可能會無法容易地以及有效地瞭解複雜的三維景致。在過去,每當遇到這類的情況的時候 (比如說,在一個三維景致裡有許多物件,而且有一些該些物件的輪廓非常複雜),以往的圖形使用者介面可能會企圖使用快速修理的方法 (quick-fix approach),該快速修理的方法會為該三維景致裡的相關物件指定幾個截然不同 (distinctly different) 的深度值 (depth values,亦即著 Z 軸變化的位置資料)。但是,當一個習知的圖形使用者介面把許多物件放在不同的深度值時,而且該許多物件是以連續的方式彼此分離的時候,困難的情況就產生了(亦即,把一個景致裡的相關物件分離成幾個截然不同 (distinctly different)的深度值變得很困難)。
我們應該記得在第 2 節裡有清楚的解釋,一個真實的物體同時具有尺寸性以及方向性,但是一個數學的點是沒有以上這兩種性質的。此外,一個真實的物體可能會是任何大小;比如說,有些真實的物體可以大至如圖 10H 裡的教堂 (1009) 一般大,有些真實的物體可以小至如一個像素的大小,等等。那也就是說,在一個 2.5D 座標系統裡,一個有形的物體在其頂點向量 (vertex vectors) 已經作完初期放置的工作以後 (例如,圖10B,C,D,E,以及F),該些物體的輪廓線的自由度仍然可以為了更好的視覺效果而被巧妙地處理。
當一個繪圖藝術家把許多多邊形網路 (polygon networks) 放在一個三維的景致裡,並且把某些圖形向量對準一些主要的方向 (亦即消失線的方向,direction of the vanishing lines),以致於該些圖形向量都瞄準向一個共同的點 (亦即,消失點,vanishing point),則出現在一個 (些) 與該三維景致相對應的2.5D 座標系統裡的物件的自由度可以在不扭曲上述多邊形網路的輪廓的情況下降低該 (些) 物件的自由度。
上述這樣的巧妙地處理圖形向量的方法使得一個觀看者更容易了解一個三維景致。受到立體繪圖技法以及人工智慧 (亦即,學習原理,learning theorem) 的啟發,本發明的三維圖形使用者介面容許一個繪圖藝術家挑出一些圖形向量 (例如,一個物件的輪廓線,contour lines of an object) 而且將該些圖形向量瞄準向一個特定的消失點 (vanishing point)。根據學習原理,以上所述的程序具有將上述該些圖形向量分類到一個特殊的群體裡的效果。當一個三維景致能夠被一些如以上所述這樣的群體來代表的時候,其整個 (被分類的) 三維景致會看起來整潔 (neat),而在該三維景致裡的相關的物件的地理位置的關係也會變得更容易使觀看者瞭解。
圖10H 所示的是一個教堂 (1009),該教堂是使用本發明的三維圖形使用者介面 (207),並且按照以上所述的方法描繪出來的。 我們可以注意到,教堂 (1009) 的輪廓給予觀看者一種非常優異的三維的感覺 (an extraordinary sensation of three-dimensionality);這種效能是即使當今最先進的習知技術也不能輕易匹配得了的。立體繪圖技法 (perspective sketching) 是一種圖形呈現技法 (graphical rendering technique),該圖形呈現技法是在文藝復興時代 (Renaissance era) 發展出來的。在立體繪圖技法還在開發的時候,有一些老藝術大師發現藉由把某些物體的輪廓線對準某些主要的方向,並且將該些輪廓線瞄準在一個觀看者可能看不到的點上 (亦即消失點,vanishing point),其整幅圖片會被灌輸入一種優異的三維的感覺,此種優異的三維的感覺是其它圖形呈現技法無法輕易與其匹敵的。如圖 10H 所示,此種藝術技法 (亦即立體繪圖技法) 是如此的強烈,但是又如此的精緻,以致於一個普通的觀看者可以在甚至沒有認出來有消失點存在的情形下感受到它 (亦即,立體繪圖技法) 的衝擊。
為了找到這些對準的痕跡 (traces of alignment),如圖10I 所示,我們可以延伸某些物件(例如,教堂 (1009) 的屋頂,屋簷等) 的邊緣線 (edge lines);藉由找出這些延伸線 (lines of extension),我們可以更進一步找到它們彼此交會的地方 (亦即,圖10I裡的兩個消失點,VP1 (1011) 以及VP2 (1012))。上述這種技法對於一個有經驗的繪圖藝術家而言,聽起來很像一個已經成為歷史的藝術課程,但是請注意上述那些老藝術大師並沒有發現立體繪圖技法與當今的人工智慧技術有很多的關係,此種人工智慧技術是指將一些圖形向量分類(classify),以便使觀看者更瞭解一幅圖畫 (亦即利用機器學習 (machine learning) 幫助人類學習一些複雜的圖形)。
一個了解這個原理的電子系統能夠從一群數量龐大的圖形向量裡探索出埋藏在其中的豐富的資訊。請參考圖 10I,我們達到一種理解:是我們把一些輪廓線對準才使得一個使用立體繪圖技法呈現出來的圖畫看起來如此的逼真。上述這種理解完全與降低輪廓線的自由度有關。但是,當今最先進的學習原理只知道把一大堆向量的自由度降下來有助於一個觀看者學習這些向量所架構起來的空間,當今最先進的學習原理無法解釋為什麼一個立體繪圖技法呈現出來的圖畫會看起來如此的逼真。
幾個世紀以來,將一些輪廓線對準,並且將該些輪廓線瞄準在一個消失點 (vanishing point) 上,這種方法被當作是藝術家的一種手藝 (finesse)。如果我們把圖10I 拿去請教一個熟悉人工智慧的科學家,這位科學家會瞭解上述的在一個三維景致裡對準圖形向量的過程與將圖形向量分類有關,但是這位科學家未必了解為什麼一個消失點可以有這樣強的視覺效果。
幸運的是,我們能夠了解 (一些) 呈現於一個2.5D座標系統裡的物體的外觀自由度 (apparent degrees of freedom) 是隨著該(些) 物體與消失點的相對距離的改變而持續地改變的;而消失線 (例如,VL
11(1004),VL
12(1005),VL
21(1006),VL
22(1007)等等) 則是一種用於一個圖形呈像器件裡的輔助機制,該輔助機制是用來清楚地顯露上述的性質用的。因此,本發明三維圖形使用者介面是一個科學與藝術之間的橋樑。
舉圖10I 為例。如圖10I 所示,我們可以延伸一些代表教堂 (1009) 的屋頂,屋簷,…等輪廓線到消失線VL
11(1004),VL
12(1005),VL
21(1006),VL
22(1007)等。當有一些消失線收斂在一個消失點,比如說,VP1 (1011)或VP2 (1012)的時候,任何人都可以在不需瞭解物理定律的情況下認知到該教堂 (1009) 的三維圖像呈現效果是優異的。從物理的角度審視以上所述的優異的三維圖像呈現效果,我們知道以上所述的優異的三維圖像呈現效果與降低特徵向量空間 (亦即,一種由圖形向量所架構起來的空間) 的維度有關。
請參考圖10J,在這個立體視角圖畫裡 (就是一個2.5D 座標系統),我們能夠發現教堂 (圖 10I 裡的 (1009)) 的屋頂線可以由圖形向量
來代表 (也就是一個三維向量投射 (projected) 在一個 2.5D 的座標系統上;投射是一個有效的降低一個由許多圖形向量所架構起來的向量空間的維度的而又不會造成不真實的扭曲效應的方法)。
更進一步說明,
與
兩個圖形向量都瞄準 (aiming) P2 (1012);
是代表屋簷的線。這樣的安排能夠幫助一個觀看者認知到上述該兩個圖形向量屬於同一個物件,亦即教堂 (1009) 的菱形屋頂;該菱形用它的四個頂點P
1,P
2,P
3,以及P
4來代表。從物理的角度來看,以上這個瞄準的程序幫助一個使用者將一些圖形向量分成一些特殊的類別。使用相同的方法,我們還可以進一步認識到
,
, 以及
都瞄準到消失點VP2 (1012) 上。
根據學習原理 (例如,支援向量機,support vector machine,SVM;有關於支援向量機的詳細解說,我們可以參考:“Support Vector Network”,Machine Learning,20,273-297 (1995),Corrina Cortes and Vladimir Vapnik);以下這些圖形向量都指向一個類似的方向,亦即
,
,
,
,以及
;因此,這些圖形向量可以被歸類到第一組圖形向量。
更進一步,使用相同的技法,我們可以認知到在與該教堂 (1009) 相關的特徵向量空間 (associated feature vector space) 裡,圖形向量
與
可以被歸類到第二組;更進一步,我們可以認知到圖形向量
與
可以被歸類到第三組;更進一步,我們可以認知到圖形向量
與
可以被歸類到第四組;更進一步,我們可以認知到圖形向量
與
可以被歸類到第五組;更進一步,我們可以認知到圖形向量
與
可以被歸類到第六組。因此,根據立體繪圖技法將圖形向量分類,這個方法提供給本發明三維圖形使用者介面 (207) 的觀看者一種前所未有的理解力。
理論上,在一個如本發明三維圖形使用者介面 (207) 的高能力立體繪圖器件裡,上述的消失點的數目可以達到一個程度:一個數位繪圖藝術家要多少個消失點,本發明三維圖形使用者介面 (207) 就可以有多少個消失點。根據一般的常識,在一個立體繪圖方法/器件裡,上述的消失點的數目越多,或消失線的數目越多,該立體繪圖方法/器件所提供的三維的感覺 (sensation of three-dimensionality) 就越強,而這個設計法則 (消失點有助於將圖形向量分類,因此也有助於將三維物件分類) 過去從未被以往的圖形使用者介面利用過。
從另一方面來講,上述的設計法則有一個限制:當一個立體繪圖裡的圖形向量的自由度由於使用了太多的消失點而降到一個嚴重低的水平的時候,某些用於表達特徵圖形的圖形向量可能會損失掉或扭曲掉。當這種情況發生時,一個繪圖藝術家必須要作一個妥協,該妥協是介於進一步分類圖形向量與保存圖形向量之間的一個妥協。圖10H 裡的窗戶 (1013) 是一個例子,該窗戶 (1013) 在圖 10I 裡消失了。 如圖 10I 所示,當一個三維圖形使用者介面將教堂 (1009) 的屋頂以及屋簷分類時,窗戶 (1013) 變成是一個可以從景致裡移除的一個裝飾形特徵圖形。當遇到這樣的情形的時候,一個繪圖藝術家必須要作出決定是否要保留該窗戶 (1013),而這種決定可能是隨著各個應用的預期而有非常大的不同的。
支援向量機 (Support Vector Machine, SVM) 是一種被廣泛使用在形狀辨識 (pattern recognition),預測 (forecasting),分類 (classification),以及回歸分析 (regression analysis) 等技術上的機器學習程序 (machine learning process)。過去在很多實施例子上,SVM 因為被證明表現得比其它的機器學習程序好,使得它能夠被很多領域的應用視為相當有實用價值的技術。當我們用一個普通的形式來定義 SVM 時,我們會使用一個最大邊界值分類器 (maximum margin classifier) 來解釋SVM 的功效。對於一個有實際功效的SVM來講,它的決定函數 (decision function) 就是一個特徵向量空間 (例如,圖 15 裡的X
d(d>3)- Y
d(d>3)) 裡的一個超平面 (hyperplane,1510)。當前述的界限值 (margin, 1502) 達到最大值時,該超平面 (1510) 把一些特徵向量分成若干組 (divides a plurality of feature vectors into different classes)。
當我們剛開始使用一個 SVM 時,我們要先教育該 SVM。在圖形向量空間 (graphical vector space) 裡,一種可行的教育SVM的方法是提供一個資料集
,其中 x
i∈R
N以及y
i∈{−1,+1} (為了方便解說,此處
ϕ 被暫時當作是一種線性 linear對映函數,有關於非線性nonlinear的對映法,先不討論),則經過前述教育過程以後的該 SVM 方法能夠解決以下的問題:
(18)
公式 (18) 受到以下兩公式 (19) 與 (20) 的限制
(19)
(20)
值得注意的是,由於 x
i∈R
N,公式 (19) 與 (20) 裡的 w 與 b 代表的是位於R
N裡的兩個線性分類器 (Linear classifier);𝜉i 所代表的是前述的 SVM 分類程序所容許的最大誤差範圍。我們可以將前述的一組一組的 (x
1, y
1), … , (x
n, y
n) ∈𝒳 ×𝒴 當作是學習資料,其中每一個 x
i都是輸入資料,每一個 y
i都是輸出資料,也就是說該y
i指示該x
i屬於哪一個群組 (分類,例如 1501L, 1501R)。對本發明而言,前述之x
i就是一個圖形使用者介面裡的圖形向量 (Graphical vector)。根據人工智慧原理,一個機器學習程序就是為以上所述的一對一對的 (x
1, y
1), … , (x
n, y
n) ∈𝒳 ×𝒴 資料建立模型,然後,當下一次有一個新的x
test∈𝒳資料出現時,該模型就能夠準確地,或者說,在容許的誤差範圍之內,輸出一個預測值,亦即y
test∈ 𝒴。公式 (19) 裡的 “,”代表取內積值 (dot product)。
第 8 節 . 本發明的三維導航器的關鍵組成以及它們在本發明的三維圖形使用者介面的應用
本第8節簡短地解釋圖2B裡的本發明的三維導航器 (202) 的關鍵組成,該三維導航器 (202) 在美國專利申請案號14/294,369有完整的揭露。請參考圖 2B,在圖 2B的左下方有一個本發明的三維導航器 (202) 的垂直剖面圖 (vertical cross-sectional view) 。 如這個垂直剖面圖所顯示的,本發明的三維導航器 (202) 至少有一個空孔 (212),該空孔 (212) 有一個開口朝向參考表面 (205);在該空孔 (212) 內部,有三個光源 (該三個光源以一個群體213來代表) 裝設在該空孔的上部,其中每一個光源被設定成向下發出光線,使其能夠照亮該參考表面 (205);該每一個光源所發出光線的波長範圍,彼此並不相同。
該空孔 (212) 還至少包含了一個彩色影像偵測器 (214),該彩色影像偵測器 (214) 也是被放置於該空孔的上方,向下朝向該參考表面 (205)。該彩色影像偵測器 (214) 上有許多像素,其中每一個像素 (並未繪示) 只對上述三個波長範圍光線裡面的某一個波長範圍的光敏感. 在本發明的三維導航器 (202) 的上表面,還裝置了一個姿態偵測機構 (203);該姿態偵測機構 (203) 遵循一個如圖 2D 所示的手指 (206) 所引發的事件,負責調整 (例如,傾斜一個地毯的平面) 一個位於一個三維圖形使用者介面裡的三維物件 (例如,圖2A 裡的飛毯 (201)) 的姿態。
圖 11E 所繪示的是一個位於一個指尖 (1806) 之下的姿態偵測機構 (203) 的放大圖。如圖 11E 所示,以上所述的姿態偵測機構 (203) 是一個光擴散表面 ((203),例如,一個朗伯表面Lambertian surface),該光擴散表面 (203) 是被嵌在一個滑鼠殼 (202) 的某一個位置上,使得該光擴散表面 (203) 能夠被一個操作者的手指 (1806) 碰觸到。在該光擴散表面 (203) 的下方,有三個光源 (S1,S2,以及 S3) 以及一個影像偵測器 (以圓圈 (1818) 作代表),該三個光源 (S1,S2,以及 S3) 以及該影像偵測器 (1818) 被一個第二空孔包圍 (這個第二空孔並未在圖11E 裡繪示);請特別注意,該第二空孔與圖2B 裡的空孔(212) 並不相同);當上述該三個光源 (S1,S2,以及 S3) 同時發出不同顏色/波長的光線的時候,從該光擴散表面 (203) 所反射回來的該些不同顏色/波長的光線的強度 (intensities) 會從一個位置改變到另一個位置。
從該光擴散表面 (203) 所反射回來的該些光線一起建構了一個特殊的色域圖 (Color gamut, 例如,CIE 1931 RGB,等等)。值得注意的是,在本發明的三維導航器 (202) 上面,總共有兩個影像偵測器,其中一個影像偵測器是朝向上方,用來擷取該光擴散表面 (203) 的內部表面的影像; 另一個影像偵測器是朝向下方,用來擷取該參考表面 (205) 的影像 (此影像偵測器是 (214))。
我們現在將上述朝下照射該參考表面 (205) 的光源稱為染色光源 (tinting light source,亦即(213));同時,我們將上述朝上照射該光擴散表面 (203) 的光源稱為姿態調整光源 (gesture adjusting light source,亦即S1,S2,以及S3)。
圖11E 所繪示的是三個置於該光擴散表面 (203)下方的姿態調整光源 (S1,S2,以及S3);讀者請注意,在本發明之前的段落裡,(203) 是被稱為姿態偵測機構 (gesture sensing feature) 的。
當手指 (206) 被移到一個靠近 S1的地方,被影像偵測器 (214) 偵測到的反射光的強度 大致上遵循以下的特殊關係,亦即I
R>> I
G= I
B;依照同樣的方法,當手指 (206) 被移到一個靠近 S2的地方,被影像偵測器 (214) 偵測到的反射光的強度大致上遵循以下的特殊關係,亦即I
G>> I
R= I
B;更進一步,當手指 (206) 被移到一個靠近 S3的地方,被影像偵測器 (214) 偵測到的反射光的強度大致上遵循以下的特殊關係,亦即I
B>> I
G= I
R。
藉由類比轉換數位 (analogue to digital converting,亦即ADC) 電路,上述的影像偵測器 (218) 把其所偵測到的反射光的強度值 (I
B,I
G,I
R) 轉換成數位信號,然後該影像偵測器 (218) 會把上述轉換的結果透過射頻頻道 (RF channel),通用序列匯流排 (Universal Serial Bus, USB), 藍芽 (Bluetooth), 等等,傳送給一個電子系統 (例如 200)。如以上已經解釋過的,該數位信號適合被用來描述一個三維物件的姿態。因此,當這樣的姿態資料被本發明的三維圖形使用者介面接收下來以後,該些姿態資料可以被用來決定公式 (7) 的參數 a,b,以及 c 的數值。
通過這樣的程序,如圖 11A 以及 11B 所描述的,物件 (1801A) 以及 (1801B) 的姿態看起來是不同的。更進一步,基於之前對公式 (7) 所作的解釋,以上所述的兩種姿態代表在一個三維空間裡的兩個不同的平面 (亦即,平面ab’c’ 與平面ab”c’)。如果我們企圖使用其它的以往的指示器件來產生類似的效果 (例如,使用一個旋轉紐或一個導航器),其結果會與改變一個三維物件的位址,例如,從 (x’,y’,z’) 移到 (x”,y”,z”),沒有什麼不同-姿態的訊息 (gestural information) 是完全地流失掉的。從以上的分析,我們會明白姿態是一種鑲嵌在所有三維物件上的性質。
值得注意的是,在本發明的三維圖形使用者介面 (207) 裡,公式 (7) 並非唯一可以用來描述一個三維物件的姿態的公式。在實際使用情況裡,還有許多其它不同的數學公式可以用來描述一個三維物件的姿態。舉圖2A 為一個例子,飛毯 (201) 現在可以被視為是被置於一個想像的有三條腿的桌椅子上面 (事實上,這個想像的桌子就是平面abc );上述的每一條桌腿的長度代表著影像偵測器 (1818) 所偵測到的紅色,藍色,以及綠色光的強度。當手指 (206) 移到前述光擴散表面 (203) 不同位置的時候 (例如,靠近 S1,S2,或 S3,等等),該想像的桌面的法向量也隨之改變 (例如,從
改變到
)。
以上所述的想像的桌子只是一個虛構的組件,該組件被提出來是為了讓我們更容易地闡明該飛毯 (201) 的傾斜 (或旋轉) 的情況. 如果我們用一陣風 (a gust of wind) 來代替那張想像的桌子,那麼,如圖 2A 所示,飛毯 (201) 現在就可以在一個三維空間裡遨翔 (hover),或搖擺 (sway)。針對這類的情形,用來描述該飛毯 (201) 的姿態的數學公式可以改變成其它的形式 (亦即不同於公式 (7) 的形式)。此外,上述飛毯 (201) 能夠在一個三維空間裡遨翔以及搖擺的現象也表達了該三維空間裡能夠含有一個預先決定好的向量場 (vector field),該向量場能夠與一個導航器所提供的運動向量結合,從而形成該飛毯 (201) 一個新的運動向量。
更進一步,當前述該些光源 S1,S2,以及 S3 的照光條件自動改變時 (例如,逐漸變暗,等等),或被上述光擴散表面 (203) 遮蓋的影像偵測器 (1818) 的快門速度改變了,或上述的三維圖形使用者介面的某些功能改變了,那麼一個特殊的姿態就可以被投射到上述該飛毯上 (例如,飛毯 (1801C) 的軌跡是一個三維的螺旋 (1818B);該三維的螺旋 (1818B) 是本發明的三維導航器 (202) 在一個彩色或染過色的參考表面 (205T) 上作環狀運動所產生的結果)。
我們應小心注意的是,本發明的三維導航器 (202) 能夠決定前述染色光源 (213) 的強度是否要參考該姿態調整光源 (S1,S2,以及 S3) 的強度。如果答案是「要」,則本發明的三維導航器 (202) 能夠從參考表面 ((205T),代表該參考表面 205 有被一些三彩的功能染色) 擷取一種三彩 (輝度,hue) 的影像 (tri-colored image),而且該參考表面 (205T) 的染色條件可以經由手指 (206) 作手工式地 (manually) 調整。
更進一步,在前述影像偵測器 (214) 裡,由於每一個像素針對不同波長的光會有不同的敏感度 (例如,拜爾結構 Bayer),我們可以從其所擷取的一個三彩影像 (tri-colored image) 裡提取出三個單色的次畫面 (monochromatic sub-images),而且,每一個所述的次畫面的整體強度是代表著該三個光源S1,S2,以及 S3 的其中一個光源的反射光的強度。因此,在一個如以上所述的三彩影像裡,除了攜帶著有關於平移運動向量的資訊 (例如,該平移運動向量是由於該參考表面 205上的微觀灰塵與該影像偵測器214之間的相對位移產生的),同時也攜帶著有關於一個想像的平面 (亦即平面abc ) 的傾斜度 tilting condition (旋轉,rotation) 的資訊;在上述三彩影像 (tri-colored image) 裡,每一種顏色的光 (例如red,blue,and green) 的強度代表該想像的三維平面與一個三維座標系統的 X,Y,以及 Z 軸的交會之處。
第 9 節 . 從色域圖取得絕對地址提供前所未有的便利
在第 1 節,我們已經解釋絕對地址是一個導航器避免累積定位誤差的一個有效的方法。這一節(第9節)延伸該節的討論,解釋為什麼一個提供絕對地址的導航器能夠幫助一個使用者的手部動作變得對該使用者的腦部更為透明,而其結果能夠使得該導航器被使用來提供優異的教學效果。
當一個使用者使用一台電腦來創造一種需要高度藝術技巧 (artistic skill) 或工匠技藝 (craftsmanship) 的視覺效果時,位於該操作者的手部 (hand)、脕部 (wrist) 、肘部 (elbow),以及手臂 (arm) 等的神經網路必須與該操作者的腦部平穩地一起工作才能使其完成專業的工作。
在一個專業的工作剛起始的時候,我們心裡對於一個將要完成的物件可能只有一個模糊的影像。其後的過程是將這樣的一個虛擬的物件完全地描繪出來,並且將其轉移到一個媒體上 (比如說,一張紙,或一個具有觸控功能的顯示器,或其它類似的器件),這個過程是深受一個人的神經網路的學習過程影響的。
為了能夠以一個更為準確而且優美的方式塑造一個形狀或定義一個運動的軌跡,一個藝術家必須藉由重覆的「預演」來使他/她熟悉自己的手的姿態,而這個工作現在可以藉由在一個彩色或染過色的參考表面 (205T) 上移動 (maneuvering) 本發明的三維導航器 (202) 來完成。當一個這樣的工作環境/方法建立完成的時後,本發明的三維導航器 (202) 能夠重覆不斷地量測絕對地址,這個過程相當於藝術家們在一個絕對座標系統裡移動他們的手部。在以上這個「預演」(亦即,神經學習, neural learning) 的過程裡,藝術家的手部運動的結果會被本發明的三維圖形使用者介面以一種即時的方式評估,從而使得上述的過程能夠被調整,並且逐漸進步到專業的水平。
在過去,這樣的工作會交給一個操作者使用一個繪圖板來完成 (這個過程相當於是在一個具有看不見的絕對座標系統的參考表面上繪畫一樣);以往的導航器在這方面沒有伴演任何角色 (事實上,不僅僅是以往的導航器件,而是所有的相對運動偵測器件,都無法在這個方面扮演任何角色)。
人類的神經網路 (例如,在一個手指,脕部,肘部,以及手臂等上面的神經網路) 是一個會演化的結構;經由不斷的學習過程,一個特殊的手法可以被創造出來。圖9 所示的是一個以一個人的簽名 (909) 的作為示範的情況。 該簽名的筆劃代表著一個人的神經網路的特殊的結合,該些筆劃對這個簽名的人而言是特殊的。
事實上,這是大自然送給人類幾個最重要的功能的其中的一個;世界上其它的生物並沒有能力創造高度技巧性的作品,這類的作品包括繪畫、寫作、演奏音樂、編織等等。值得注意的是,為了要能夠穩定地實施一個程序,一個能夠提供絕對地址的輸入器件是被偏好使用的。
以往的「類似三維」(quasi 3D) 的圖形使用者介面對這一點一無所知。過去幾十年來,絕對地址以及非線性運動並不存在於以往的導航器裡;其結果是,以上所述的手部到腦部的透明度 (hand-to-brain transparency) 在以往的圖形使用者介面裡被犧牲掉,而這也可能是近年來電腦工業停滯不前的幾個有貢獻的原因之一。人類的神經網路的真正與生俱來的創造力被以往的輸入器件的限制給犧牲了。有了本發明的三維圖形使用者介面 (207),我們期待電腦工業可能會在至少另一個十年裡重新獲得成長的動量。
為了使本發明的三維導航器 (202) 成為一個能夠提供絕對地址的導航器 (滑鼠),它所在上面移動的參考表面 (205) 就必須要以一種三彩的方式 (means of tri-coloration) 染色 (例如,以化學/物理的方法添加紅色,藍色,以及綠色到參考表面上,亦即生產一個如本發明所指示的參考表面 205T)。在這個彩色或染過色的參考表面 205T 上,三個被指定顏色 (例如,紅色,籃色,以及綠色成分) 的反射光的強度以一種連續 (in a continual manner) 的方式沿著三個方向 (亦即,一個植印 (imprint) 入參考表面 205T 的2.5D 的座標系統的 X,Y,以及Z 軸) 改變。
當一個操作者在這個三彩的參考表面 (205T) 上移動滑鼠的機體 (202) 的時候,其所量測到的色彩指標資料 (例如,CIE 1931 RGB,等) 適合作為一種理想的資料來源,該資料來源以前所未有的解析度以及敏感度提供給本發明的三維圖形使用者介面 (207) 絕對地址 (例如,X,Y,與 Z)。
我們應小心地注意到從該參考表面 (205T) 所得到的色彩指標實際上形成了一個 2.5D 座標系統;當彩色影像偵測器 (214) 從這個色域圖 (color gamut) 上擷取彩色的圖像的時候,其整個過程促成了一種對映的程序,該對映的程序將前述的 2.5D 座標系統對映到前述影像偵測器 (214) 的像素陣列裡。
使用一種電路 (例如,類比至數位轉換器等等) 將每一個地點的色彩指標的數值轉換成位置資料 (例如,圖2A 裡的 x,y,以及z),使得上述的色域圖上的每一個地理位置的點能夠代表一組特殊的三維位置資料。因此,以上所述的彩色或染過色的參考表面 (205T) 適合作為本發明的三維圖形使用者介面 (207) 的絕對地址的資料來源,該絕對地址的資料來源的準確度以及解析度是前所未有 的 (unprecedented)。
有許多方法可以給一個參考表面染色,例如使用不同波長的光照明是其中的一種方法,將一個參考表面用墨水 (ink) / 顏料 (pigment) 染色是另外一種方法。要不要給一個參考表面染色,以及如何選擇一個適當的方法來染色,這些是一個圖形使用者介面設計者在考慮到他/她的圖形使用者介面要多高的敏感度或解析度所要回答的問題。
一般來說,這個問題並不須要有一個固定的答案;一個圖形使用者介面設計者可以根據他/她的應用最終的表現作出自己的決定。這個決定也與一個導航器的基本設計有很大的關係 (例如,(202) 以及/或 (205))。在較為不嚴格的情況下,該參考表面 (205) 可以不需要使用以上所述的三彩的方法 (methodology of tri-coloration) 來染色;在這種情況之下任意一個沒有特定的顏色形態的表面都可以被使用。
根據這個產品設計方針,一個普通的木頭表面,或一個大理石表面等等,也可以達到使用的目的。很明顯的,由於沒有使用染料或顏料來對參考表面染色,上述該三維導航器 (202) 的敏感度以及解析度與使用前述的彩色或染過色的參考表面 (205T) 的導航器的敏感度以及解析度相比,是比較粗糙的。
美國專利申請序號13/834,085揭露一種不使用彩色或染過色的滑鼠墊的 RGB 滑鼠。值得注意的是,由於少了彩色或染過色的滑鼠墊,所有該13/834,085 專利所提供的都是相對運動向量而不是絕對地址的資料。因此,這一類的滑鼠差不多都不能支持人類的神經網路的學習過程 (例如,使用以往的導航器來簽名是很困難的)。
不過,與以往的導航器 (只用到單色光) 的效能相比,如專利13/834,085 所揭露的,RGB 導航器的解析度與敏感度仍然高於習知技術。對於普通的二維文書處理 (例如,Microsoft® WORD,等等) 而言,上述RGB 導航器的功能也許可以算是已經好到達到工作的需求了。
在第2節,我們已經解釋了把一個圖形化物件當作一個實實在在的實體 (a realistic entity) 而不是一個數學的點是本發明的三維圖形使用者介面 (207) 的一個主要的功能;這個功能與提供給一個物件完整的一組 (亦即 6 個自由度) 運動向量有關。這個完整的一組運動向量事實上至少包含了兩種旋轉運動,亦即姿態的傾斜 (gestural tilting) 以及自旋 spinning (在本發明裡,自旋 (spinning) 是指一種物體本質 (intrinsic to an object) 的運動,而不是由於兩個物體之間的相對位移造成的運動)。
在US 9,733,727 裡,我們揭露了從一種「含糊籠統」的運動向量裡提取旋轉運動向量的方法。因此,US 9,733,727提供給一個圖形使用者介面一種功能強大的方法,該方法使得該圖形使用者介面能夠調整一個 2.5D 座標系統的立體視角 (perspective angle)。在本發明裡,當我們說到 2.5D 的時候,我們的意思是它是一個 2D 的座標系統而且還包納了一個獨立的旋轉軸。當一個位於一個 2.5D 座標系統裡的物件收到一個來自美國申請案號 US 9,733,727 的指令要旋轉的時候,它可以執行一個自發的自旋行動 (autonomous action of spinning),或者,它可以執行一個與其它物件之間的相對位移,亦即旋轉 (rotating)。不論在以上兩種情況之中的任何一種,一個自旋運動,spinning,或一個旋轉運動,rotating,都可以代表一個物件的高階運動項 (H.O.T.,higher order term of the motion)。
值得注意的是,以上所述的 2.5D 導航器 (202) 的效能之所以優於以往的2D 導航器並不是因為它多了一個 0.5維的自由度。在之前的段落裡 (例如,第6節),我們已經解釋過,同時提供平移運動向量與旋轉運動向量給一個三維的物件會使得本發明的三維圖形使用者介面 (207) 成為一個與使用者接合互動的圖形使用者介面。從物理的角度看,這樣的功能與運動的「動力學」 (kinetics) 有關。
當一個物件的運動是極度的活躍的時候,靠著前述姿態偵測機構 (203) 的支持,以及影像偵測器 (214) 偵測旋轉運角度ω的能力,本發明的三維導航器 (202) 提供a,b,c,以及 等參數給本發明的三維圖形使用者介面 (207),使其能夠同時提供平移以及旋轉運動 (亦即,傾斜與自旋,tilting and spinning) 向量給一個三維的物件。
從一個導航器直接提供絕對地址給一個三維物件可以進一步提高本發明的三維圖形使用者介面 (207) 的效能 (亦即減少原來使用二維導航器的所需要的轉換程序)。由於這樣的緣故,在未來,在專業的工作上需要使用手藝 (finesse) 來執行工作的人 (例如,繪圖藝術家、外科醫生,等等) 可能會依靠本發明的三維圖形使用者介面 (207) 來改進他們的專業工作表現。
圖11A,B,C,D,以及E 所指示的是本發明的三維圖形使用者介面 (207) 根據某些鑲嵌在其內部的神經網路功能來操縱本發明的三維導航器 (202) 的輸出資料 (例如,飛毯201 的 y 位置資料)。在這個示範的情況裡,一個操作者以一種繞圓圈的方式 (in a circular manner,亦即 (1818A)) 在以上所述的彩色或染過色的參考表面 (205T) 上移動三維導航器 (202),在移動該三維導航器 (202) 的同時,光源(213)的三個光源裡用來代表飛行高度 (flying height,亦即圖11C 裡的y 軸) 的光的強度會不斷地改變 (舉例來說,當導航器 (202) 正在運動的時候,用來代表圖 11A 裡的座標系統的y 值的光根據以上所述的神經網路功能逐漸地變暗,dimming),則由色彩指標資料轉變過來的三維位置資料的軌跡會有點像一個三維的螺旋 (3D spiral, (1818B))。
如果我們仔細地檢視圖 11D,該彩色或染過色的參考表面 (205T) 與一個二維的平面並沒有什麼不同 (亦即,一個沒有深度或厚度的平面);所有由操作者手部產生的運動向量 (例如,圖 11D 裡的V
A,V
B,V
C,V
D) 都具有二維的格式 (亦即,x,z)。在本發明的三維導航器 (202) 把上述的染色光(213) 裡的三個不同顏色/波長的光投射在前述的彩色或染過色的參考表面 (205T) 上以後,一個色域圖 (color gamut) 就形成在該參考表面 (205T) 上面了;此後,該彩色或染過色的參考表面 (205T) 的每一個地理位置的點 (geographical point) 都可以由一個特殊的色彩指標資料來代表 (例如,CIE 1931 RGB)。
相較於追尋一些微觀的灰塵的蹤跡,本發明的三維導航器 (202) 提供了另外一個功能,亦即經由量測色彩 (tint measurement) 的方法來量測絕對地址的功能。與此一功能相對應的是,在本發明的三維圖形使用者介面 (207) 裡所顯示的運動向量 (亦即圖11C 裡的V
A ’,V
B ’,V
C ’,以及V
D ’) 都具有三維的格式,而且它們的數值不會受到累積定位誤差的影響 (accumulated positional errors);這個功能是本發明的三維圖形使用者介面 (207) 與滑鼠以及其它以往的二維導航器,或所有以往的使用相對位移的器件,相比之下一個基本的優點。
延伸以上所述的產品設計原理,以上所述的逐漸變暗/增強一個照明光(213) 的程序可以藉由在姿態偵測機構 (203)上移動一個手指 (206) 來達到以手動的方式完成該程序的目的;或者,以上所述的逐漸變暗/增強一個照明光 (213)的程序可以藉由啟動一個鑲嵌於本發明的三維圖形使用者介面 (207) 裡面的神經網路功能達到以手動的方式來完成該程序的目的;或者,以上所述的逐漸變暗/增強一個照明光 (213) 的程序可以藉由選擇一個圖符來開始一種自動的程序而完成,等等。
第 10 節 . 使用本發明的三維圖形使用者介面與二維視窗合作
這一節論證本發明的三維圖形使用者介面如何能夠與一個二維視窗合作 (例如,Microsoft® WORD®,POWERPOINT®,EXCEL®,或一個網頁,等等)。一個習知技術的視窗差不多是一個法向量朝向一個固定的方向 (例如,一個如 (1307) 所顯示的與顯示器件的表面垂直的方向) 的二維平面;圖13A簡略地顯示以上所示的實際使用情況。
另一個替換的方式是,本發明的三維圖形使用者介面可以與複數個如以上所述的視窗合作 (例如,圖13B 裡的 (1303) 以及 (1304)),其中該兩個視窗的法向量分別是指向不同的方向的
,
;圖13B 所顯示的是一個如以上所描述的實際使用情況 (亦即,多個視窗)。
請參考圖13A裡的視窗 (1306)。我們可以注意到,前述的視窗 (1306) 的佈局與當今最先進的二維應用程式 (例如Microsoft® WORD,等等)的佈局類似。但是,本發明的三維圖形使用者介面 (207) 有一些關鍵的功能是與以往的二維圖形使用者介面 (例如,(105)) 的功能不同的。第一點,根據本發明的三維圖形使用者介面 (207) 的基本設計法則,上述視窗 (1306) 事實上是一個位於一個三維座標系統 (1302) 裡的一個三維的物件 (亦即該視窗是一個平面,該平面上的每一個地理位置的點都有一個屬於自己的z 值)。
那也就是說,每一個在前述視窗 (1306) 裡的像素都能夠被一個特殊的三維地址所代表 (X,Y,以及 Z)。第二點,前述視窗 (1306) 有一個法向量;在這個情形之下,該法向量是以一個符號 (1307) 作代表,相對於顯示器件 (207) 的法向量,該法向量是指向任意的方向. 第三點,在以上所述的本發明的三維圖形使用者介面 (207) 裡面,有一個世界座標系統 (1302),在圖 13A裡,該世界座標系統的原點以點V 表示;在繪畫藝術裡,上述的原點 V 代表的是一個立體視角繪圖的消失點 (亦即,當一個物件被放置得離觀看者近一點的時後,該物件會看起來大一點,反之亦然)。
第四點,游標 (209) 也是一個三維物件;比如說,游標 (209) 可以置於圖13B 裡的兩個視窗之間 (亦即 (1303) 與 (1304)) 的一個位置;而且,游標 (209) 可以是傾斜的 (也就是說,相對於前述的世界座標系統 (1302),它會有 pitch,yaw,以及 roll,亦即俯/仰,左右搖轉,以及滾動的角度);而且,它是瞄準一個三維的方向的,該三維的方向以虛線 (1305) 為代表,在本發明裡,該虛線 (1305) 被稱之為瞄準線 (line of aiming)。第五點,指令橫條以及標題橫條 (menu bar and title bar,(1301)),或小器具 (widegets;比如說,捲頁條 scrolling bar,等等;這類的小器具因為種類繁多,並未顯示在圖 13A 以及 圖13B 裡),也都是一些三維的物件 (例如,該三維的物件是一個纖薄的平面,a plane in a slender formation),它們在以上所述的三維座標系統 (1302) 裡也都有自己的法向量 (例如,(1308))。
把上述的性質放在一起,本發明的三維圖形使用者介面 (207) 就變成像是一個三維的流形 (manifold;or,3D motif,三維的藝術主題);在這個三維的流形上面,持有許多剪影 (silhouette) 或物件,其中每一個剪影或物件都代表一個特殊的平面,該些平面的法向量、角落的點 (corner points)、大小 (size),或深度值 (depth value) 等等是彼此不同的。
例如,一個由本發明的三維圖形使用者介面 (207) 所提供的三維的藝術主題 (3D motif) 可以形成一個三維螺旋狀 (3D spiral);這是過去習知技術所不能輕易達到的。值得注意的是,當三維游標 (209) 瞄準視窗 (1304) 的時候,通過瞄準線 (1309),該三維游標 (209) 在視窗 (1304) 上投射 (cast) 了一個交會點 P1304 (point of intersection)。當上述的三維游標 (209) 被本發明的三維導航器 (202) 推動的時候,該交會點P
1304也會跟著移動 (例如,從P
1304(x’,y’) 移到P”
1304(x”,y”))。
透過這樣的特性,P
1304就能夠適合作為視窗 (1304) 的游標/指示器;當指示器 (1304) 出現在視窗 (1304) 裡的時候,普通二維視窗擁有的功能,比如說,在一個 WORD 程式裡選擇幾行文字、畫一個圓圈、改變字體、選擇圖符,等等,這些功能都可以在本發明的三維圖形使用者介面 (207) 實施。換句話說,一些為以往的二維圖形使用者介面所建立的程式館 (libraries),例如,Adobe’s Display PostScript、Apple’s Quartz,等等,或其它的功能與 Display PostScript 類似的程式,這些程式都可以與本發明的三維圖形使用者介面 (207) 相容。
此種相容性為一個圖形使用者介面開發工程師提供了優異的便利性,這主要是因為一個專為本發明的三維圖形使用者介面開發的工具箱 (toolkit) 只需要很少的修改 (例如,將一個XYZ座標裡的Z值設成一個定值,比如說 0, zero) 就可以將它的使用性延伸到以往的二維圖形使用者介面上。
注意,在視窗 (1304) 裡躺著一個箭頭形狀的二維游標 (1310)。作為一個輔助工具,這個箭頭形狀的二維游標 (1310) 會永遠把它的頂尖瞄準在點狀游標P
1304上;該箭頭形狀的二維游標 (1310) 實質上就是一個以往形狀/功能的游標,也就是說,所有它能作的就是讓操作者更容易地找到活化的像素區域 (亦即,P
1304(x’,y’))。但是,該箭頭形狀的二維游標 (1310) 也帶有所有二維游標與生俱來的缺陷。
如圖1A 所解釋的,一個以往的二維游標 (111) 在沒有參考其它物件的位置的時候,是不能使活化的像素區域 P(x,y) 旋轉的;同樣的,前述的二維游標 (1310) 也不能使得像素區域P
1304(x’,y’) 旋轉。本發明的三維圖形使用者介面 (207) 能夠藉由三維游標 (209) 的基本功能彌補以上所述二維游標的缺陷。
如圖13B 所示,該三維游標 (209) 傾斜的情況可以由旋轉平面 abc
1304來表示;我們從第3節已經學到,旋轉平面abc
1304的參數 (1304) 裡的a,b,以及 c 的數值是由姿態偵測機構 (203) 所決定的。如圖 13B 所示,當我們再加上偵測滑鼠機體 (202) 的自旋 (spinning) 能力以後,該三維游標 (209) 整組的游標移動資料就可以表示為 (x,y,z,a,b,c,θ )。
這個意思是說,以上所述的活化的像素區域 P(x, y) 可以被歸類為一個二維的定位資料(x’, y’),或一整組三維游標移動資料 (x, y, z, a, b, c, θ),或任何從以上整組三維游標移動資料導出來的資料 (例如,一階,二階對時間的微分,等等)。總之,以上所述的活化的像素區域 P(x,y) 被本發明的三維圖形使用者介面 (207) 當作是一個物件而不是一個數學的點;這證實了本發明的標題,亦即本發明的三維圖形使用者介面 (207) 是一個具有廣泛使用性的三維圖形使用者介面。當我們把以上所述的活化一個像素區域 P(x,y) 的性質延伸到整個平面 (1304) 的時候,這個情況就代表著本發明的三維圖形使用者介面 (207)一種特殊的應用,亦即活化一個二維的平面需要本發明的三維圖形使用者介面 (207)提供一個非線興運動向量給一個游標/物件。
對於一個熟悉此技藝的人而言,本發明所揭露的各節是用於闡明而非限制本發明的使用範圍的。依照本發明所揭露的技術內容以及在專利申請範圍之內對本發明所揭露的製作與使用一個三維圖形使用者介面的方法,程序,材料,結構,以及尺寸大小等等是可以改良與修正的,該三維圖形使用者介面藉由對一個彩色或染過色的參考表面作色彩偵測以及形狀偵測,將不同自由度的三維物件的線性與非線性運動向量賦予給它的基本繪圖單位,例如,像素、體素,或像機器人這樣的一整個可以按三維模式移動的系統。
惟以上所述者,僅為本發明的實施例而已,當不能以此限定本發明實施的範圍,凡是依本發明申請專利範圍及專利說明書內容所作的簡單的等效變化與修飾,皆仍屬本發明專利涵蓋的範圍內。
1001:多邊形網路人臉
1002:貼塊
1002’,1002”,以及1002’”:圍繞Y軸,X軸,以及Z軸旋轉的貼塊
101:傳統的滑鼠
102:影像偵測器
103:按鍵:
104:二維的參考平面
105:二維圖形使用者介面
106:傳統滑鼠的單色照明光源
107:區塊
108,109,110:圖符…(icon)
111:二維游標
112:電腦
113:十字
114:十字上的一個與點P分離的一個點
115:二維圖形顯示器
200:電子系統
201:飛毯
202:本發明三維導航器
203:姿態偵測機構
204:卡通精靈(Genie)
205:沒有彩色或沒有被染過色的參考表面
205T:彩色或染過色的參考表面
206:手指
207:本發明三維圖形使用者介面
209:三維游標
210:視窗 WINDOW1 選擇圖符
211:視窗 WINDOW2 選擇圖符
212:空孔(cavity)
213:具有三個不同色彩(波長範圍)的三個光源的群體
214:彩色影像偵測器
215:按鍵
216:油燈圖符
401:深度相機:
402:觸控面板
403:圓筒(408)的三維座標系統
405:虛擬實境(virtual reality,VR)的頭戴裝置
406:操作者的手
408:三維物件圓筒
410:波長落在不可見光波長範圍的光源(例如,紅外光)
411:偵測光源 410 的影像偵測器
412:偵測可見光的影像偵測器
501A:三維長方體積
501B:體積/形狀與 501A不同的三維長方體積
502:賽車
503:輪子
504A:游標
504B:游標
601:輸入器件
602:圖形介面
603:顯示器伺服器
604:視窗管理員
605:內核 (kernel)
606:游標動內部處理模組
607:立體畫法內部處理模組
608:機器人內部處理模組
609:應用介面API
610:神經網路 (neural network) 內部處理模組
611:絕對地址
612:線性運動向量
613:非線性運動向量
614:協議 (Protocol)
615:GUI (207) 的內部處理模組整體的統稱
616:支援向量機 (Support Vector Machine) 內部處理模組
620:硬體 (Hardware)
700:機器人
701B:擬人機器人結構 (Humanoid)
800:卡通角色
801:卡通角色 (800) 被其衣服遮蓋的骨盆以及臀部區域
801B:簡化過的擬人機器人骨架結構
909:一個人的簽名
1301:指令橫條或標題橫條
1302:三維世界座標系統
1303,1304:具有不同的三維法向量,的三維視窗
1305:瞄準線(line of aiming)
1307:習知技術的視窗的法向量
1308:指令橫條或標題橫條
1309:瞄準線
1310:二維游標
1402:中央處理器(CPU)
1404:主記憶體
1406A:通過橋接器(1412,Bridge)與中央處理器(CPU)溝通的輸出/入器件
1406B:直接與中央處理器(CPU)溝通的輸出 /入器件
1408A:中央處理器(1402)輸出/入接口A
1408B:中央處理器(1402)輸出/入接口B
1412:橋接器(Bridge)
1502:區分類別 (1501L) 與 (1501R) 的界限(margin)
1510:超平面 (Hyperplane)
1801A,1801B: 具有不同姿態的三維物件(1801)
1801C:飛毯
1801G:偵測參考表面(205T)的彩色影像偵測器(214)所在的位置
1807:本發明三維導航器(202)的一個按鍵
1808:本發明三維導航器(202)
1818:偵測手指(1806)的影像偵測器
1818A:本發明三維導航器(202)在參考表面(205T)上作的二維的螺旋運動的軌跡
1818B:飛毯(1801C)所作的三維的螺旋運動的軌跡
a,b,c:旋轉平面 Plane abc 與X軸,Y軸,以及Z軸交會的地方
abc
1303:旋轉平面
abc
1304:旋轉平面
A:角落點
A’,A”,A’”,或A””:角落點A 經過平移位移後到達的位置
d:深度相機(401)偵測點F的深度值的誤差
D:深度相機(401)偵測到點F的深度值
Error
C,Error
C’: 兩個端點的絕對地址量測誤差
F:深度相機(401)用來偵測深度的一個點
G:觸控面板(402)與一個手指接合互動(engage)之處
Lelbow 1:連接關節1與接關節2的肘部的長度
Lelbow 2:連接關節3與接關節4的肘部的長度
P
” 1304:三維游標(209)被本發明三維導航器(202)推動以後,與視窗(1304)交會的點
P
1304:視窗(1304)被三維游標(209)活化的像素區域
P
end:機器人的終點
Plane abc:旋轉平面(plane of rotation)
S1,S2,以及S3:姿態偵測機構(203)裡的光源
Tolerance_absolute_address:一個圖形使用者介面在計算絕對地址位移向量 時的誤差
Tolerance_relative_motion:相對運動偵測器(101)從B到達目的地B’的旅程,其最終運動向量的誤差總合
V:世界座標系統(1302)的原點
V
A、V
B、V
C:本發明三維導航器(202)在參考表面(205T)上作的二維的螺旋運動向量
V
A ’、V
B ’、V
C ’:飛毯(1801C)根據VA,VB,以及 VC所作的三維的螺旋運動向量
X
d (d > 3):圖形向量
Y
d (d > 3):群組 (類別)
Θ’:三維物件(201)的旋轉角度
α,β,γ:圓筒(408)在三維座標系統(403)裡的旋轉角度
σ:操作者旋轉自己的手(406)的一個小角度:
ω:本發明三維導航器(202)的旋轉角度
(X
C,Y
C,Z
C),(X
C’,Y
C’,Z
C’) :向量
的兩個端點,C 以及 C’的絕對地址
、、、:貼塊 (1002) 的角落點A 朝A’,A”,A’”,A””平移的位移向量
:視窗(1303)的單位法向量
:視窗(1304)的單位法向量
、、、:導航器(101)在一個參考表面(104)上移動所產生的中間相對運動向量
:操作者在參考表面(205)上移動本發明三維導航器(202)的平移運動向量
:一個以往的相對運動偵測器在參考表面(104)上移動所產生的相對應的運動向量
:以C以及C’的絕對地址量測出來的位移向量
:卡通精靈(204)的姿態改變前的單位法向量
:卡通精靈(204)的姿態改變後的單位法向量
:指令橫條(1301)的單位法向量
:指令橫條(1308)的單位法向量
:飛毯(201)在旋轉平面 Plane abc 根據S所作的平移運動向量
:飛毯(201)的姿態改變前的單位法向量
:飛毯(201)的姿態改變後的單位法向量
:一個中間相對運動向量(亦即
等)量測所造成的誤差
圖12 的
、、:機器人的終點P
end的三個正交的運動向量
圖15 裡的黑點•:構成類別 (1501L) 的圖形向量
圖15裡的星號 ★:構成類別 (1501R) 的圖形向量
圖4D 的(X,Y,Z) :本發明三維導航器(202)從參考表面205T偵測到的絕對位置
圖4D 的(ΔX,ΔY,ΔZ):本發明三維導航器(202)從參考表面205或205T偵測到的線性位移向量
圖4D的(□□□□□□□):本發明三維導航器 (202) 所偵測到的非線性運動向量
圖4E的(ΔX,ΔY,ΔZ)…genie:虛擬實境眼罩(405)傳送給本發明卡通精靈 (Genie)的點Q的平移位移向量
圖4E的+X,-X,+Y,-Y,+Z,-Z:虛擬實境眼罩(405)所偵測到點 P 的平移位移
本發明的其他的特徵及功效,將於參照圖式的實施方式中清楚地呈現,其中:
圖1A, B, C,以及D所繪示的是一些與以往二維圖形使用者介面(2D GUI)有關的元素,該以往二維圖形使用者介面使用一個二維的導航器來移動一個游標;
圖2A, B, C,以及D所繪示的是一些與本發明三維圖形使用者介面有關的元素,本發明三維圖形使用者介面使用一個特殊的三維導航器,該三維導航器提供給一個物體三維的運動向量,該三維的運動向量具有六個自由度(six degrees of freedom, DOF);
圖3A所繪示的是一個典型的運動向量積分過程,該過程能夠導出一個相對運動偵測器的位置,該相對運動偵測器是一個以往的導航器;
圖3B繪示的是一個典型的導出運動向量的過程,該過程能夠導出一個絕對位址偵測器的運動向量,該絕對位址偵測器是本發明所揭露的一個三維導航器(202),該三維導航器被放置在一個彩色的參考表面(205T)上;
圖4A, B, D,以及E所繪示的是一些當代最先進的運動偵測器;比如說,該些當代最先進的運動偵測器是一個深度偵測相機(401),一個虛擬實境眼罩(405),一個觸控面板(402),以及本發明所揭露的三維導航器(202)等等;
圖5A以及5B所繪示的是本發明所揭露的一個三維導航器(202)所使用的一個特殊的方法,該方法與指定一個三維游標的旋轉平面(rotational plan)有關,該方法使得本發明所揭露的三維導航器能夠在一個三維空間裡穩定地選擇一個三維物件;
圖6A所繪示的是一個架構在以視窗顯示的作業系統(windowing system)上的三維圖形使用者介面裡的多層軟體,在該三維圖形使用者介面裡,有一個特定的軟體層(layer),該軟體層介於一個作業系統的內核(kernel)與輸入器(input device)之間,該軟體層被設計來控制一個使用者的觀看經驗;一些屬於圖形使用者介面這個市場節段裡(market segment)的廠商(例如,Awesome)也被列出來;
圖6B繪示的是一個應用介面(application interface , API),該應用介面將不同型態的輸入器材跨接(bridge)到本發明所揭露的三維圖形使用者介面上;
圖7A所繪示的是一個機器人,該機器人能夠被本發明所揭露的三維圖形使用者介面直接操控;
圖7B所繪示的是一個擬人化機器人(Humanoid),該擬人化機器人使用25 個自由度來產生各種不同的運動;
圖8A所繪示的是一個卡通角色, 該卡通角色使用一個簡化過的擬人化機器人來產生不同的動作;
圖8B所繪示的是從圖8A裡的卡通角色變化出來的機器人結構,該機器人的結構與圖7B裡的卡通角色的機器人結構相比,使用了較少的關節;
圖9所繪示的是一個簽名,該簽名實際上是手部很多神經網路信號產生的動作的結果;
圖10A, B, C, D, E, F,以及G所繪示的是一個多邊形網路(polygon network)上的一個貼塊(patch),該貼塊的形狀可以藉由操控其隅角點(corner points)的平移運動以及其頂點(vertex)的旋轉運動來完成;
圖10H, I,以及J所繪示的是本發明三維圖形使用者介面藉由調準(aligning)一些三維景物裡的圖形向量(graphical vectors),使得本發明三維圖形使用者介面所呈現的景物更容易被觀察者理解(more comprehensible);
圖11A以及B所繪示的是一個旋轉平面abc如何改變一個物體的姿態(gesture);
圖11C以及11D所繪示的是一種特殊的情況,在該特殊的情況下,本發明所揭露的三維導航器在作一種公轉旋轉運動的時候,它的照明條件同時作改變(比如說,該照明裡的一個光源的強度逐漸變暗),其結果是產生一個螺旋(spiral);
圖11E所繪示的是一個本發明所揭露的三維導航器的使用者如何藉由將他/她的手指移動到姿態偵測平面(203)上不同的位置,改變一個物件的姿態;例如,該姿態指的是該物件傾斜的情況;
圖12所繪示的是一個機器人的抓器(gripper)的位置與運動向量,該抓器的有效長度(effective length of the gripper)可以經由改變它所握住的工具的長度而改變;
圖13A以及B是以繪示的方式來證明本發明三維圖形使用者介面能夠與以往的二維視窗(conventional 2D windows;例如,Microsoft® WORD)緊密地合作;此該二圖中的游標的基本功效證明了本發明三維圖形使用者介面具有廣泛的三維使用性(pervasive 3D);
圖14所繪示的是本發明三維圖形使用者介面的硬體環境;及
圖15所繪示的是兩組由圖形向量所構成的物件(一組以黑點•表達,另一組以星號★表達)在經過本發明所揭露的人工智慧的分類(classifying)程序(610)分析以後,被一個界限(margin) (1502)區分為兩個類別,其中第一個類別為(1501L),第二個類別為(1501R);其中該分類程序所使用的方法至少包括支援向量機(SVM, 616),卷積神經網路(CNN)等,該些圖形向量的大小與方向可以受到立體視角模組(607)的控制。
207:本發明三維圖形使用者介面
601:輸入器件
603:顯示器伺服器
604:視窗管理員
605:內核(kernel)
606:游標動內部處理模組
607:立體畫法內部處理模組
608:機器人內部處理模組
609:應用介面API
610:神經網路(neural network)內部處理模組
611:絕對地址
612:線性運動向量
613:非線性運動向量
614:協議(Protocol)
615:GUI(207)的內部處理模組整體的統稱
616:支援向量機(Support Vector Machine)內部處理模組
Claims (27)
- 一種系統,至少包含: 一主記憶體以及至少一處理器,該處理器與一個電腦、一個顯示系統、一個電子系統、或一個機電系統的該主記憶體耦合;該系統能夠增強一個使用者與一個三維景致(3D scenery)的接合互動的經驗(experience of engaging),該三維景致是被呈現在一個該三維顯示器件裡,該三維景致裡有複數個三維向量圖形物件(3D vector graphics objects),且各三維向量圖形物件的基本性質是具有一個體積; 一個三維導航器用於操作該等三維向量圖形物件; 其中,該系統用於使用該三維導航器以調整一個鑲嵌於一個三維圖形呈像器件(3D graphical rendering device)裡的2.5D座標系統(2.5D coordinate system)的一立體視角 (perspective angle); 其中,該立體視角是該2.5D座標系統的X軸與Z軸的一夾角(angle of intersection),或是該2.5D座標系統的的X軸與Y軸的一夾角;其中 該系統用於使一個操作者將複數個圖形向量(graphical vectors)以視覺地(visually)分類(classify)或利用一個人工智慧功能(artificial intelligence functionality)分類成幾個不同的類別(different classes),其中該等圖形向量是用來架構(construct)該等三維向量圖形物件或是具有位置向量及/或移動向量之特性的圖形向量的實體(entities),其中每一個該類別(class)代表一個特殊的特徵圖形(features)的組合,該特徵圖形與該等三維向量圖形有關,每個該類別的該特徵圖形之特性與其它類別的該特徵圖形之特性不同。
- 如請求項1所述的系統,其中,該視覺地分類(visually classifying)或利用該人工智慧功能分類該等圖形向量的處理在一特定立體視角達到一個最優化條件(optimal condition),其中該最優化條件從一個特定圖形多邊形的起始三維位置開始,隨後以在該特定圖形多邊形上進行的多個平移運動向量及多個旋轉運動向量的一系列操作以模擬從多個不同的立體視角觀看該特定圖形多邊形的一個世界空間照相機(world space camera)。
- 如請求項1所述的系統,其中,該系統能夠藉由操控該三維景致與該使用者接合互動,其中一些展示於該三維景致裡的圖形化物件是以一些節點作代表,該些節點包括頂點(vertex),每個頂點由一三維地址以及一三維運動向量表示,其中該三維地址具有X、Y、以及Z的組成成分,且該三維運動向量具有6個自由度,包含ΔX、ΔY、以及ΔZ、及α、β、以及γ的組成成分;其中該些節點根據一個游標與該些節點的互動被分類成幾個類別。
- 一種使用者與複數個物件接合互動(engaging)的方法,該方法於電腦上執行,該複數個物件位於一個顯示系統裡的三維圖形使用者介面裡面,該方法至少包括以下的步驟: 提供一個三維導航器,該三維導航器能夠與該三維圖形使用者介面通訊(communicating),該三維導航器是在一個參考表面上移動; 或者,使用一個具有線性運動向量或/以及非線性運動向量特性的控制器件來與該三維圖形使用者介面通訊,該三維導航器或該控制器件沿著躺在一個表面上的二維的向量運動,該表面具有至少三種顏色(tinted by tri-coloration)或至少三種不同波長範圍; 將該二維的向量轉換(transforming)為一個三維的向量,或將該二維的向量轉換為一個維度比二維高的向量,該轉換是一種針對該染上三種顏色的表面的一塊區域的輝度值(hue value)所作出的轉換,該區域的影像是由一個位於該三維導航器或該控制器件內的彩色影像偵測器(color-sensitive image sensor)所擷取的。
- 一種系統,能夠控制一個連接於該系統上的機器人,該系統至少包含有: 一主記憶體以及至少一處理器,該處理器與一個電腦、一個顯示系統、一個電子系統、或一個機電系統的該主記憶體耦合;該系統上有一種顯示器件,該顯示器件上呈現出一個三維圖形使用者介面(3D GUI); 其中,該系統提供人工智慧功能;及 一個三維導航器,該三維導航器能夠以即時(real time)的方式操控該機器人的位置、架構(configuration)與運動, 其中,該機器人的該位置、該架構與該運動具有三個以上的自由度, 其中,該機器人的多個元件(elements)具有至少三個的自由度,其用以決定該機器人的動作,且該至少三個的自由度能夠被該三維導航器,以在原位(in-situ)的方式控制的; 其中,該三維圖形使用者介面(3D GUI)能夠監控三個以上的該自由度,該運動及架構能夠被該三維圖形使用者介面(3D GUI)結合該三維導航器修改。
- 如請求項5所述的系統,其中,該機器人是一個具有任意形狀的結構,或是一個具有關節的結構。
- 如請求項6所述的系統,其中,該具有任意形狀的結構是一個卡通角色,或其它的圖形化結構。
- 如請求項5所述的系統,其中,該機器人是該三維圖形使用者介面(3D GUI)以外的一個可以移動的器件。
- 如請求項5所述的系統,其中,該機器人如果是看不到的但是還是可以被一個使用者控制的,該機器人的功能如同一台立體相機(perspective camera),該立體相機是從一個由該機器人所指定的特定的位置或立體視角(perspective angle)看進去一個由該三維圖形使用者介面(3D GUI)所呈現的景致。
- 如請求項5所述的系統,其中,該系統被架構成一個狀態,使得該機器人是看不到但是還是可以被一個使用者控制著,該機器人執行其中一種功能: (a)執行一個簽名程序; (b)執行一個繪圖程序的功能; (c)執行一個動畫裡的卡通的一種功能; (d)執行一個動畫式電子遊戲(video game)裡的一個角色的動作; (e)執行一種三維影像診斷程序中的資訊擷取程序; 執行上述其中一個功能的該機器人可以被視為一個操作者的肉體的手指、手部、脕部、肘部、手臂、腿、頭、或軀幹。
- 一種電腦系統,該電腦系統至少包含有: 一顯示器件; 一記憶體; 一或多個處理器之一個系統,該系統包含有一個或以上的顯示器伺服器(display server); 一個三維圖形使用者介面(3D GUI),該三維圖形使用者介面被投射在該一個或以上的顯示器伺服器提供的一個顯示器件上,該三維圖形使用者介面至少包含有具有一種層形架構的一些軟體模組(layered configuration of software modules),該些軟體模組儲存於該電腦系統的該記憶體內,該些軟體模組能夠與該處理器互動並且被該處理器執行,該些軟體模組包含提供複數個圖形感知人工智慧功能(graph-aware AI functionalities)的模組,用於處理以複數個網路的頂點及連接之形式所提供(provided in the form of networks of vertexes and links)的資料; 其中該等圖形感知人工智慧功能的至少一者依據一圖像化網路的複數個頂點在一三維座標系統中的交錯點(intersection)的絕對三維位址、方向及角度、以及複數個圖形化向量的大小(magnitude)以計算該等頂點之間的複數個連接關係(linking relationships); 其中該圖形化網路及該圖形化向量的一部分組成該網路的數個子集合(subset),該等子集合表示該三維圖形使用者介面的特定特徵; 其中,該三維圖形使用者介面能夠在該顯示器件上建立起一些區域,該些區域被稱為視窗(windows);在該些視窗裡,一些圖形化物件(graphical objects)可以被顯示在一個三維座標系統或一個2.5D座標系統裡;其中該些圖形化物件可以由一些位於該三維座標系統或該2.5D座標系統裡的絕對位置(absolute positions)來代表; 該些圖形化物件可以遵循物體的三維運動學(Kinematics)裡的平移運動以及旋轉運動來移動,該些圖形化物件的三維運動的總合自由度至少有三個,該些圖形化物件的位置的準確度不會因為該移動而損失掉; 一個三維導航器,該三維導航器能夠選擇是否使用一個應用介面(application interface,API)來與該三維圖形使用者介面(3D GUI)交互反應,而且該三維的導航器能夠提供一個該三維座標系統裡的絕對位置給一個在該三維圖形使用者介面(3D GUI)裡展示的該些圖形化物件; 藉由執行儲存於該電腦系統的該記憶體裡的該些軟體模組,使得該些圖形化物件在該顯示器件裡以至少三個自由度在兩個該絕對位置之間移動;在該移動的期間,該些圖形化物件的運動遵循三維運動學(Kinematics)裡的平移運動以及旋轉運動來移動。
- 如請求項11所述的電腦系統,其中,該些軟體模組包含一些該處理器可讀而且可執行的指令,該些指令是用來產生一些機器人的動作,或按照三維運動學(three-dimensional kinematic)以及立體畫法(perspective)的法則產生一些圖形化的動作(graphical actions)。
- 如請求項11所述的電腦系統,其中,該些軟體模組在運作上更被該顯示器伺服器(display server)管理,使得該些軟體模組的功能適當地顯示在該視窗裡。
- 如請求項11所述的電腦系統,其中,該些軟體模組包括一些處理模組(process modules),該些處理模組獨立地控制游標的移動、立體畫法的操控(perspective manipulation)、機器人、以及機器學習的程序。
- 一種用於提供三維圖形使用者介面(3D GUI)與複數個三維物件同時接合互動的電腦實施方法,該方法是由一個三維導航器的一個預先設定好的動作所引起的,該方法是用來啟動該三維導航器之一個特徵的一狀態,該狀態是選擇/不選擇一個事件用的,其特徵在於,該預先設定好的動作至少包含由一使用者採用的以下步驟: 當該使用者在一個二維參考表面上移動該三維導航器的時候,藉由將一隻手指置於該三維導航器的上表面的一操作部分,使得一個位於該三維圖形使用者介面(3D GUI)裡的一個三維游標以對應(corresponding)的方式在一個彩色或染過色的二維平面上移動,在表示該三維圖形使用者介面的一三維空間中的該二維平面的傾斜狀況(tilting condition)是按照該手指在該三維導航器的該上表面的該操作部分的位置所控制的; 在一個動作開始的時候,該使用者壓下一個位於該三維導航器上的按鍵或相等的輸入機構以決定一個第一個端點的位置,該三維導航器在該二維參考表面上移動;持續壓著該按鍵或持續保持該機構在壓下的狀態,直至該游標沿著該二維平面已經移動了一段距離,到達了一個第二個端點,使用一直線以連接該第一個端點與該第二個端點作為對角線,該三維圖形使用者介面(3D GUI)在一個三維空間裡建立起一個體積,該體積使得該使用者能夠選擇/不選擇該些被該體積包圍的該等三維物件。
- 如請求項15所述的方法,其中,該導航器的表面上具有一種偵測器,該偵測器能將該手指在該表面上的一個二維運動/位址轉換為一個三維的運動/位址信號。
- 一種在原位(in-situ)的方式控制/調整一個機器人的運動的電腦實施方法,該方法包括以下的步驟: 將一些矩陣相乘,其中每一個矩陣的維度等於或大於三; 使用一個能夠同時提供三維的平移運動向量以及複數個旋轉運動向量的移動器件(maneuvering device),該等向量以3D格式及2.5D格式表示,使得該機器人上的一個被選擇的關節或可移動的零件改變其位置或運動,同時該機器人上其它未被選擇的關節或零件繼續經歷未改變的預先設定好的動作。
- 如請求項17所述的方法,其中,該機器人的運動的方法為一種三維的螺旋運動 (3D spiral)。
- 如請求項17所述的方法,其中,該機器人的運動的方法至少包含有前進運動學 (forward kinematics) 與逆向運動學 (inverse kinematics) 的方法,其中,至少有一個由該前進運動學與/或該逆向運動學的方法所產生的運動是由該移動器件所產生的。
- 如請求項17所述的方法,其中,該機器人的運動的方法可以被使用來一種驅動一個動畫式電子遊戲、卡通動畫、醫學影像,或電影裡的一個互動式角色的運動。
- 一種在一個電腦、一電子控制系統、或一機電系統上創造出一種數位印象派的圖像呈現效果(digital impressionistic graphical rendering effect)之方法,該方法包含以下幾個步驟: 在一個三維圖形使用者介面(3D GUI)裡產生一個三維向量圖形化物件(three-dimensional vector-graphical object),該三維向量圖形化物件具有一些基本性質,其中一個基本性質是該三維的圖形化物件具有一個體積;其中該三維向量圖形化物件是由一些彼此相連的複數個頂點(vertices)所架構起來的,其中該些頂點是由其絕對三維位址所定義,其中該些相連的頂點定義一個外部形狀由一些小平面(facets)所形成的該三維向量圖形化物件; 在該電腦、該電子控制系統、或該機電系統的一記憶體裡,創造出一個特徵向量空間(feature vector space),該特徵向量空間是用於代表該三維向量圖形化物件,其中每一個頂點與一個多維度特徵向量(multidimensional feature vector)有關,並且其中每一個頂點都具有一個法向量垂直於一個與該頂點相對應的該小平面;以及 產生由一平面及垂直於該平面的一軸線所表示的一2.5D座標系統,其中該三維向量圖形化物件係藉由線性運動、繞該軸線之旋轉動作、及選擇不同的消失點及立體視角而進行操作; 其中,在該電腦、該電子控制系統、或該機電系統的該記憶體裡,該三維圖形使用者介面藉由產生一些彼此清楚的界限(distinct margins)將一些該些多維度特徵向量分離開來,藉此該些小平面的至少兩個該些法向量沿著不同方向對準,使得該些頂點與由該些頂點所定義的該些小平面以一觀看者能夠看得到的(perceivable)而且可識別的(recognizable)方式分類。
- 如請求項21所述的方法,其中該方法使用一個在彩色或染過色的(tinted)二維參考平面上以可受控制的方式移動的三維導航器,且其中藉由接觸(access)該向量圖形化物件中一個被選擇的頂點及同時(simultaneously)碰觸(touch)該三維導航器的一表面元件(surface element),該三維導航器內部的一個照明系統(system of illumination)的一些照光強度(intensities)被改變,藉此改變該被接觸的被選擇頂點的法向量的方向,同時也改變該向量圖形化物件的視覺特性(visual characteristic);其中上述操作增強該向量圖形化物件的三維度的感知(perception of three-dimensionality)。
- 一種在電腦上執行的三維圖像呈現(graphical rendering)方法,該方法至少包含以下的步驟: 以參考至少一個消失點(vanishing point)的方式呈現一些三維圖形化向量(graphical vectors); 其中該至少一個消失點的位置可以被一種人工智慧功能(artificial intelligence functionality)操控; 將其中一些被該人工智慧功能追蹤的複數個三維圖形向量分組為一或多組(class),其中每一組中的該等三維圖形化向量與其它組的該等三維圖形化向量之間形成一種界限(margin),該界限是能夠被一使用者或該人工智慧功能所識別(is configured to be recognized); 其中當該界限達到某些特定數值的時候,該人工智慧功能使用該些三維圖形化向量產生一些圖像呈現效果(graphical rendering effects),或支持該使用者與該人工智慧功能之間一些不同層次的互動(levels of interaction)。
- 如請求項23所述的在電腦上執行的方法,其中,該人工智慧功能包含支援向量機(support vector machine,SVM)或神經網路(neural network)。
- 如請求項23所述的在電腦上執行的方法,其中,該人工智慧功能包含一種可以被該使用者控制的人工方法。
- 一種非暫態性(non-transitory)的電腦可讀式的媒體(computer readable storage medium),該媒體具有一些可執行指令(instructions),當該些可執行指令被一個處理器(processor)執行的時候,該處理器在一個顯示器件裡呈現出一個三維圖形使用者介面(3D GUI),並且執行一些操作,該三維圖形使用者介面用於廣泛地(pervasively)提供複數個人工智慧功能,其中該些人工智慧功能包括一圖形感知神經網路(graphic-aware neural network),用以依據由已連接的複數個頂點之複數個集合所表示的資料以執行一推理處理(inference process),其中該三維圖形使用者介面利用該等集合的至少一者以表示一三維向量圖形化物件,且其他該等集合的至少一者表示複數個線性三維運動向量及複數個非線性三維運動向量之一集合,且該集合帶有該三維向量圖形化物件的瞬間運動(instantaneous motion)的特徵,其中該三維圖形使用者介面聚集(aggregate)該三維向量圖形化物件的行為和該三維圖形化物件的瞬間三維運動向量以產生一新行為以執行下列操作,該些操作至少包含: 以一種具有至少三個獨立的自由度的運動移動一個被該三維圖形使用者介面(3D GUI)呈現出來的三度空間裡的一個物件,該運動帶有線性瞬間運動向量以及/或非線性瞬間運動向量的特徵; 其中,該線性瞬間運動向量以及/或該瞬間非線性運動向量分別代表平移運動向量以及旋轉運動向量,該線性瞬間運動向量以及/或該非線性瞬間運動向量是由一個位於一個彩色或染過色的參考表面之上的導航器的單一姿態運動所產生的,在產生該線性瞬間運動向量以及/或該非線性瞬間運動向量的時候該導航器不需要應用其它的移動偵測裝置或其它的移動偵測器件的輸入。
- 一種系統,包括:一記憶體以及耦接至該記憶體的至少一處理器; 其中該系統用於在一三維圖形顯示裝置顯示一三維圖形化使用者介面(3D GUI),其中該三維圖形化使用者介面用於增強一個使用者與一個三維景致(3D scenery)的接合互動的經驗(experience of engaging),該三維景致是被呈現在一個該三維顯示器件裡,該三維景致裡有複數個三維物件(3D objects),該等三維物件是用具有超過三個自由度的複數個三維圖形化向量的一集合中的子集合所表示,該集合在一三維空間中具有一個體積或是與一設備所量測之一資料集合有關的特性; 該等三維圖形化向量的該子集合或該設備所量測之該資料集合由具有至少三個維度的一座標系統表示; 其中,該系統用於讓一操作者在內嵌於該三維圖形顯示裝置中的一2.5D座標系統調整一立體視角(perspective angle); 其中,該立體視角是該2.5D座標系統的X軸與Z軸的一夾角(angle of intersection),或是該2.5D座標系統的的X軸與Y軸的一夾角,或是該2.5D座標系統中任意互相垂直的兩個軸的一夾角; 其中該系統用於讓該操作者應用一人工智慧功能(AI functionality),該人工智慧功能使用一機器學習過程在視覺上或通過其他感官或認知模式將該等三維圖形化向量的該子集合或由該設備所量測的該資料集合分類為數個獨立類別(separable classes); 其中該等三維圖形化向量的該子集合或由該設備所量測的該資料集合與一特徵向量空間有關,且被該系統所使用以表示該三維物件; 其中與複數個運動向量、圖形化向量、或介於該等三維物件之一集合或由該設備所量測的該資料集合中之複數個元件之間的複數個相對距離有關的複數個獨立特性(separate properties)被該系統分類為相同類別; 其中每一個該等獨立特性由關係(relationship)控制,且該關係表示為該立體視角之大小的函數,且針對各該等類別調整該立體視角的大小。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/056752 | 2018-08-07 | ||
US16/056,752 US20200050342A1 (en) | 2018-08-07 | 2018-08-07 | Pervasive 3D Graphical User Interface |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202347098A true TW202347098A (zh) | 2023-12-01 |
Family
ID=69407187
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112104572A TW202347098A (zh) | 2018-08-07 | 2019-07-11 | 具有廣泛使用性的三維圖形使用者介面的系統及方法與對應的可讀式媒體 |
TW108124537A TWI827633B (zh) | 2018-08-07 | 2019-07-11 | 具有廣泛使用性的三維圖形使用者介面的系統及方法與對應的可讀式媒體 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108124537A TWI827633B (zh) | 2018-08-07 | 2019-07-11 | 具有廣泛使用性的三維圖形使用者介面的系統及方法與對應的可讀式媒體 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20200050342A1 (zh) |
CN (1) | CN110825245A (zh) |
TW (2) | TW202347098A (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2573164B (en) * | 2018-04-27 | 2023-01-04 | Sony Interactive Entertainment Inc | Apparatus control system and method |
US11850514B2 (en) | 2018-09-07 | 2023-12-26 | Vulcan Inc. | Physical games enhanced by augmented reality |
JP7124616B2 (ja) * | 2018-10-03 | 2022-08-24 | コニカミノルタ株式会社 | 誘導装置、制御システム、および制御プログラム |
US11670080B2 (en) | 2018-11-26 | 2023-06-06 | Vulcan, Inc. | Techniques for enhancing awareness of personnel |
KR102345625B1 (ko) * | 2019-02-01 | 2021-12-31 | 삼성전자주식회사 | 자막 생성 방법 및 이를 수행하는 장치 |
US11950577B2 (en) | 2019-02-08 | 2024-04-09 | Vale Group Llc | Devices to assist ecosystem development and preservation |
JP7292050B2 (ja) * | 2019-02-19 | 2023-06-16 | 株式会社ジャパンディスプレイ | 検出装置及び認証方法 |
USD912072S1 (en) * | 2019-02-22 | 2021-03-02 | Teva Branded Pharmaceutical Products R&D, Inc. | Display screen or portion thereof with a graphical user interface |
US11912382B2 (en) | 2019-03-22 | 2024-02-27 | Vulcan Inc. | Underwater positioning system |
US11435845B2 (en) * | 2019-04-23 | 2022-09-06 | Amazon Technologies, Inc. | Gesture recognition based on skeletal model vectors |
GB2583950B (en) * | 2019-05-15 | 2023-04-26 | Quantum Base Ltd | Alternative approach to the generation of a unique response to a challenge |
KR20220062338A (ko) * | 2019-09-09 | 2022-05-16 | 스냅 인코포레이티드 | 스테레오 카메라들로부터의 손 포즈 추정 |
US11237641B2 (en) * | 2020-03-27 | 2022-02-01 | Lenovo (Singapore) Pte. Ltd. | Palm based object position adjustment |
CN111402408B (zh) * | 2020-03-31 | 2023-06-09 | 河南工业职业技术学院 | 一种无废料模具设计装置 |
CN111783882B (zh) * | 2020-06-30 | 2022-09-09 | 北京市商汤科技开发有限公司 | 关键点检测方法、装置、电子设备及存储介质 |
TWI765347B (zh) * | 2020-09-11 | 2022-05-21 | 國立陽明交通大學 | 評估投資組合風險指標方法及投資組合評估裝置 |
TWI765369B (zh) * | 2020-10-12 | 2022-05-21 | 臺北醫學大學 | 基於擴增實境的手術決策支援系統及其方法 |
US11633862B2 (en) | 2020-11-25 | 2023-04-25 | Metal Industries Research & Development Centre | Automatic control method of mechanical arm and automatic control system |
CN112560171B (zh) * | 2020-12-04 | 2022-04-29 | 赛轮集团股份有限公司 | 一种基于AutoCAD的轮胎半部件自动正包设计方法 |
TWI779764B (zh) * | 2021-08-09 | 2022-10-01 | 宏碁股份有限公司 | 操控介面系統及操控介面方法 |
CA3230947A1 (en) * | 2021-09-08 | 2023-03-16 | Patrick McKinley JARVIS | Wearable robot data collection system with human-machine operation interface |
CN113977947A (zh) * | 2021-10-26 | 2022-01-28 | 上海普利生机电科技有限公司 | 三维模型的打印方法和*** |
TWI819403B (zh) * | 2021-11-04 | 2023-10-21 | 瑞昱半導體股份有限公司 | 影像資料擴增裝置及方法 |
US11579769B1 (en) * | 2021-12-14 | 2023-02-14 | International Business Machines Corporation | Graphic device for controlling displayed object movement and/or screen scrolling |
US20230360226A1 (en) * | 2022-05-09 | 2023-11-09 | Htc Corporation | Virtual reality system, control method, and non-transitory computer readable storage medium |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5404439A (en) * | 1992-04-15 | 1995-04-04 | Xerox Corporation | Time-space object containment for graphical user interface |
US6426745B1 (en) * | 1997-04-28 | 2002-07-30 | Computer Associates Think, Inc. | Manipulating graphic objects in 3D scenes |
US6389154B1 (en) * | 1998-07-15 | 2002-05-14 | Silicon Graphics, Inc. | Exact evaluation of subdivision surfaces generalizing box splines at arbitrary parameter values |
AUPR464601A0 (en) * | 2001-04-30 | 2001-05-24 | Commonwealth Of Australia, The | Shapes vector |
US20050168460A1 (en) * | 2002-04-04 | 2005-08-04 | Anshuman Razdan | Three-dimensional digital library system |
JP2009508274A (ja) * | 2005-09-13 | 2009-02-26 | スペースタイムスリーディー・インコーポレーテッド | 3次元グラフィカル・ユーザ・インターフェースを提供するシステム及び方法 |
EP1804184B1 (en) * | 2005-12-30 | 2017-06-28 | Dassault Systèmes | Process for selecting an object in a PLM database and apparatus implementing this process |
US20110128288A1 (en) * | 2009-12-02 | 2011-06-02 | David Petrou | Region of Interest Selector for Visual Queries |
US9733727B2 (en) * | 2012-12-07 | 2017-08-15 | Wen-Chieh Geoffrey Lee | Optical mouse with cursor rotating ability |
US9113077B2 (en) * | 2013-01-17 | 2015-08-18 | Qualcomm Incorporated | Orientation determination based on vanishing point computation |
US20150276400A1 (en) * | 2013-03-13 | 2015-10-01 | Electronic Scripting Products, Inc. | Reduced homography for ascertaining conditioned motion of an optical apparatus |
US9852512B2 (en) * | 2013-03-13 | 2017-12-26 | Electronic Scripting Products, Inc. | Reduced homography based on structural redundancy of conditioned motion |
US11024065B1 (en) * | 2013-03-15 | 2021-06-01 | William S. Baron | Process for creating an augmented image |
US10254855B2 (en) * | 2013-06-04 | 2019-04-09 | Wen-Chieh Geoffrey Lee | High resolution and high sensitivity three-dimensional (3D) cursor maneuvering device |
US9911243B2 (en) * | 2014-03-15 | 2018-03-06 | Nitin Vats | Real-time customization of a 3D model representing a real product |
WO2016014137A2 (en) * | 2014-05-06 | 2016-01-28 | Neurala, Inc. | Apparatuses, methods, and systems for defining hardware-agnostic brains for autonomous robots |
US10518409B2 (en) * | 2014-09-02 | 2019-12-31 | Mark Oleynik | Robotic manipulation methods and systems for executing a domain-specific application in an instrumented environment with electronic minimanipulation libraries |
EP3040946B1 (en) * | 2014-12-30 | 2019-11-13 | Dassault Systèmes | Viewpoint selection in the rendering of a set of objects |
US9478064B2 (en) * | 2015-01-29 | 2016-10-25 | Harris Corporation | Automatic control of avatar perspective view in a graphical user interface |
US10796480B2 (en) * | 2015-08-14 | 2020-10-06 | Metail Limited | Methods of generating personalized 3D head models or 3D body models |
US10255716B1 (en) * | 2016-08-09 | 2019-04-09 | Bentley Systems, Incorporated | Multi-resolution tiled 2.5D delaunay triangulation stitching |
US10712836B2 (en) * | 2016-10-04 | 2020-07-14 | Hewlett-Packard Development Company, L.P. | Three-dimensional input device |
US11537719B2 (en) * | 2018-05-18 | 2022-12-27 | Deepmind Technologies Limited | Deep neural network system for similarity-based graph representations |
-
2018
- 2018-08-07 US US16/056,752 patent/US20200050342A1/en active Pending
-
2019
- 2019-07-11 TW TW112104572A patent/TW202347098A/zh unknown
- 2019-07-11 TW TW108124537A patent/TWI827633B/zh active
- 2019-07-31 CN CN201910702338.4A patent/CN110825245A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
TWI827633B (zh) | 2024-01-01 |
CN110825245A (zh) | 2020-02-21 |
TW202014851A (zh) | 2020-04-16 |
US20200050342A1 (en) | 2020-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI827633B (zh) | 具有廣泛使用性的三維圖形使用者介面的系統及方法與對應的可讀式媒體 | |
TWI520014B (zh) | 高解析度與高敏感度三維(3d)游標移動控制器、移動控制系統及運動偵測方法 | |
US9383895B1 (en) | Methods and systems for interactively producing shapes in three-dimensional space | |
Bowman et al. | An introduction to 3-D user interface design | |
Schkolne et al. | Surface drawing: creating organic 3D shapes with the hand and tangible tools | |
Sheng et al. | An interface for virtual 3D sculpting via physical proxy. | |
Gannon et al. | Tactum: a skin-centric approach to digital design and fabrication | |
Stuerzlinger et al. | The value of constraints for 3D user interfaces | |
Elsayed et al. | Vrsketchpen: unconstrained haptic assistance for sketching in virtual 3d environments | |
US20140229873A1 (en) | Dynamic tool control in a digital graphics system using a vision system | |
Ramani | A gesture-free geometric approach for mid-air expression of design intent in 3D virtual pottery | |
Yan et al. | Multitouching the fourth dimension | |
Xiao et al. | A hand gesture-based interface for design review using leap motion controller | |
US20220171520A1 (en) | Pervasive 3D Graphical User Interface Configured for Machine Learning | |
Machuca et al. | Interaction Devices and Techniques for 3D Sketching | |
Leal et al. | 3d sketching using interactive fabric for tangible and bimanual input | |
Mine | Exploiting proprioception in virtual-environment interaction | |
Ismail et al. | Real Hand Gesture in Augmented Reality Drawing with Markerless Tracking on Mobile | |
Mendes | Manipulation of 3d objects in immersive virtual environments | |
CN116185205B (zh) | 非接触手势交互方法和装置 | |
Hoang et al. | Ultrasonic glove input device for distance-based interactions | |
Tao et al. | Human-Computer Interaction Using Fingertip Based on Kinect | |
Arora | Creative visual expression in immersive 3D environments | |
Ansari et al. | Air Pose Canvas with Hand Pose Estimation using Machine Learning | |
Oshita et al. | Character motion synthesis by principal component analysis and motion control interface by hands |