1. Trang chủ
  2. » Công Nghệ Thông Tin

Nghiên cứu mô phỏng động tác chuyển động của con người trong thực tại ảo

75 265 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 75
Dung lượng 1,56 MB

Nội dung

Vậy làm thế nào để có thể tạo sự chuyển động cho đối tượng để nó có thể thể hiện được hành vi, trạng thái của đối tượng trong thế giới thực không hề đơn giản.. Chương 2: Nghiên cứu về cá

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

-

PHAN THỊ CÚC

NGHIÊN CỨU MÔ PHỎNG ĐỘNG TÁC CHUYỂN ĐỘNG

CỦA CON NGƯỜI TRONG THỰC TẠI ẢO

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

Hà Nội - Năm 2016

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

-

PHAN THỊ CÚC

NGHIÊN CỨU MÔ PHỎNG ĐỘNG TÁC CHUYỂN ĐỘNG

CỦA CON NGƯỜI TRONG THỰC TẠI ẢO

Chuyên ngành: Công nghệ thông tin

Trang 3

MỤC LỤC

MỤC LỤC i

LỜI CAM ĐOAN i

LỜI CẢM ƠN ii

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT iii

DANH MỤC HÌNH ẢNH iv

LỜI NÓI ĐẦU 1

CHƯƠNG 1 TỔNG QUAN VỀ THỰC TẠI ẢO VÀ CHUYỂN ĐỘNG TRONG THỰC TẠI ẢO 2

1.1 Tổng quan về Thực tại ảo 3

1.1.1 Khái niệm thực tại ảo 3

1.1.2 Lịch sử phát triển của thực tại ảo 4

1.1.3 Hệ thống thực tại ảo 7

1.1.4 Đặc điểm của hệ thống thực tại ảo 8

1.1.5 Một số ứng dụng của thực tại ảo 9

1.2 Chuyển động trong Thực tại ảo 14

1.2.1 Vai trò của việc tạo chuyển động 15

1.2.2 Phân loại chuyển động 15

1.2.3 Tạo chuyển động 18

CHƯƠNG 2 MỘT SỐ KỸ THUẬT TẠO CHUYỂN ĐỘNG 21

CHO CON NGƯỜI TRONG THỰC TẠI ẢO 21

2.1 Kỹ thuật tạo chuyển động không dựa vào xương 21

2.1.1 Kỹ thuật tạo chuyển động Keyframe Animation 21

2.1.2 Kỹ thuật tạo chuyển động Path Animation 28

2.1.3 Kỹ thuật tạo chuyển động Non linear Animation With Track 30

2.1.4 Kỹ thuật tạo chuyển động Set Driven Key 30

2.2 Kỹ thuật tạo chuyển động dựa vào xương 31

2.2.1 Kỹ thuật điều khiển tiến FK (Forward kinematics) 35

2.2.2 Kỹ thuật điều khiển ngược IK (Inverse kinematics) 36

Trang 4

CHƯƠNG 3: CHƯƠNG TRÌNH THỰC NGHIỆM 47

3.1 Mô tả bài toán 47

3.2 Phân tích lựa chọn công cụ mô phỏng 47

3.3 Một số kết quả thực nghiệm 49

PHẦN KẾT LUẬN 63

TÀI LIỆU THAM KHẢO 64

Trang 5

LỜI CAM ĐOAN

Tôi xin cam đoan toàn bộ nội dung bản luận văn này là do tôi tự sưu tầm, tra cứu và sắp xếp cho phù hợp với nội dung yêu cầu của đề tài

Nội dung luận văn này chưa từng được công bố hay xuất bản dưới bất kỳ hình thức nào và cũng không được sao chép từ bất kỳ một công trình nghiên cứu nào

Tất cả phần mã nguồn của chương trình đều do tôi tự thiết kế và xây dựng, trong đó có sử dụng một số thư viện chuẩn và các thuật toán được các tác giả xuất bản công khai và miễn phí trên mạng Internet

Nếu sai tôi xin tôi xin hoàn toàn chịu trách nhiệm

Hà Nội, Tháng 4 năm 2016

Học viên

Phan Thị Cúc

Trang 6

LỜI CẢM ƠN

Với lòng biết ơn sâu sắc, em xin gửi lời cảm ơn tới các thầy, cô giáo trong Viện công nghệ thông tin và Truyền thông - Trường Đại học Bách Khoa Hà Nội đã tâm huyết truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tập tại trường Và em cũng xin cảm ơn các thầy, cô giáo quản lý trong khoa sau đại học Viện Công nghệ thông tin và truyền thông Thái Nguyên đã luôn giúp đỡ, tạo điều kiện tốt nhất cho em trong quá trình học tập

Luận văn được thực hiện dưới sự hướng dẫn của PGS TS Đỗ Năng Toàn Viện Công nghệ thông tin - Đại học Quốc gia Hà Nội Em xin bày tỏ lòng biết ơn sâu sắc tới Thầy đã hướng dẫn và có ý kiến chỉ dẫn quý báu trong quá trình em làm luận văn

-Em xin cám ơn các anh chị trong Phòng Thực tại ảo -Viện Công nghệ thông tin - Viện Hàn lâm khoa học Việt Nam đã nhiệt tình giúp đỡ em trong quá trình làm luận văn

Tôi xin cảm ơn các đồng nghiệp và người thân đã động viên, giúp đỡ tôi trong quá trình nghiên cứu và thực hiện luận văn này

Hà Nội, Tháng 4 năm 2016

Học viên

Phan Thị Cúc

Trang 7

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

STT Ký hiệu/

1 VR Virtual Reality Thực tại ảo

3 HMD Head Mounted Displays Mũ đội đầu có màn hiển thị

5 FK forward kinematics Điều khiển tiến

6 IK inverse kinematics Điều khiển ngƣợc

Trang 8

DANH MỤC HÌNH ẢNH

Hình 1.1 Giao diện giữa người sử dụng và hệ thống máy tính 3D 4

Hình 1.2 Thiết bị mô phỏng Sensorrama-1960 4

Hình 1.3 Ivan Sutherland và thiết bị mô phỏng HMD 5

Hình 1.4 Thiết bị VIDEOPLACE của Myron Kreuger 6

Hình 1.5 Scott Fisher, McGreevy và Thiết bị HMD-1984 của NASA 6

Hình 1.6 Hệ thống thực tại ảo 8

Hình 1.7 Mô hình lớp học ảo 10

Hình 1.8 Hệ thống phẫu thuật ảo 11

Hình 1.9 Mô phỏng thiết kế kiến trúc nhà ở 3D 12

Hình 1.10 Binh lính học nhảy dù bằng thực tế ảo 12

Hình 1.11 Hệ thống xương trong phần mềm đồ họa 17

Hình 1.12 Hệ thống khớp xương liên kết được phân cấp trong phần mềm đồ họa 18 Hình 1.13: Cấu trúc chung của mô hình cây phân cấp 19

Hình 1.14 Số lượng các khung hình nội suy xác định chuyển động 20

Hình 2.1 Hệ thống Frame trong phần mềm đồ họa 3D 21

Hình 2.2 Mô tả chuyển động theo các thời điểm chính 21

Hình 2.3 Chuyển động nhận vật sử dụng keyframe 22

Hình 2.4: Nội suy tuyến tính cho 5 Keyframe theo thời gian 23

Hình 2.5 Nội suy bậc hai cho 5 Keyframe 24

Hình 2.6 Mô tả chuyển động theo đường cong xác định trước 29

Hình 2.7 Mô tả chuyển động theo sự ràng buộc giữa các thuộc tính 31

Hình 2.8 Mô tả các khớp gối và xương chân 32

Hình 2.9 Hệ thống xương và khớp trong cơ thể con người 32

Hình 2.10 Sự phân cấp mô hình khung xương người 33

Hình 2.11 Tạo xương bàn tay 34

Hình 2.12 Mô tả chuyển động dựa vào khung xương 34

Hình 2.13 Hình ảnh điều khiển xoay một nhánh xương 35

Hình 2.14 Hệ thống khớp xương sử dụng phương pháp FK 35

Trang 9

Hình 2.15 Sử dụng FK để tạo chuyển động cho chân thao tác với quả bóng 36

Hình 2.16 Hình ảnh một điều khiển IK được thêm cho một nhánh xương 37

Hình 2.17 Hình ảnh điều khiển xoay một nhánh xương 37

Hình 2.18 Sử dụng IK để tạo chuyển động cho cánh tay 38

Hình 2.19 Dịch chuyển chân từ vị trí đứng để nâng lên 39

Hình 2.20 Sử dụng một giải pháp IK để làm cho bàn tay của một nhân vật đạt được một mục tiêu 40

Hình 2.21 Một liên kết IK đơn 40

Hình 2.22 Môt liên kết đôi IK 41

Hình 2.23 Xoay liên kết cuối cùng bằng cách sử dụng kỹ thuật Phối hợp Descent Cylic cho IK 42

Hình 2.24 Quay liên kết trung gian bằng cách sử dụng kỹ thuật Phối hợp Descent Cylic cho các giải pháp IK 43

Hình 3.1 Mô hình skin đi ở mặt Front 61

Hình 3.2 Mô hình Wireframe 61

Hình 3.3 Mô hình Skeleton 61

Hình 3.4 Mô hình skin ở góc nhìn right 62

Hình 3.5 Mô hình skin vừa đi vừa chào ở góc nhìn right 62

Trang 10

LỜI NÓI ĐẦU

Ngày nay, sự phát triển của máy tính đã đem đến cho con người những cơ hội mới để nghiên cứu các vấn đề của thực tế Bằng việc xây dựng lên môi trường thực tại ảo, con người có thể xây dựng thế giới thực vào máy tính, mô phỏng những

sự kiện có thật hoặc giả định trong thực tế vào vi tính để tìm hiểu

Thực tại ảo (VR – Virtual Reality) [1] là một môi trường ba chiều được phát sinh, tổng hợp và điều khiển thông qua máy vi tính nhằm mục đích mô phỏng lại thế giới thực hoặc một thế giới theo tưởng tượng của con người Nó cho phép người dùng thông qua các thiết bị ngoại vi tương tác với các sự vật, hiện tượng của thế giới ảo giống như tương tác với các sự vật, hiện tượng của thế giới thực

Các ứng dụng VR ngày càng trở nên hấp dẫn và phong phú hơn đặc biệt là trong lĩnh vực y học, kiến trúc, kỹ thuật, khoa học, giáo dục và giải trí Trong môi trường ảo, hầu hết các ứng dụng đều ở chế độ tạo mẫu ảo Các đối tượng được tạo

ra trong thế giới nhân tạo ở dạng mô hình hình học

Có thể nói lĩnh vực Thực tại ảo là một lĩnh vực vô cùng rộng lớn của công nghệ thông tin Nó bao gồm nhiều hướng phát triển và ứng dụng, trong đó không thể không nói tới vấn đề điều khiển mô hình thì tạo chuyển động cho đối tượng là cần thiết, là quan trọng

Khi có sự chuyển động, tương tác của đối tượng với các đối tượng khác và môi trường xung quanh Từ đó mô hình sẽ trở nên chân thực và sống động hơn Vậy làm thế nào để có thể tạo sự chuyển động cho đối tượng để nó có thể thể hiện được hành vi, trạng thái của đối tượng trong thế giới thực không hề đơn giản Việc này đòi hỏi người tạo chuyển động phải hiểu rõ được đối tượng trong thực tế và có những kiến thức sâu về hỗ trợ tạo chuyển động mà công cụ đưa ra

Xuất phát từ những thành quả do thực tại ảo đem lại nên tôi đã quyết định

lựa chọn đề tài: “Nghiên cứu mô phỏng động tác chuyển động của con người trong thực tại ảo” là một việc làm không chỉ có ý nghĩa khoa học và còn mang đậm tính

thực tiễn nhất khi thực tế đang đặt ra những yêu cầu đòi hỏi

Mục đích nghiên cứu của đề tài là:

Trang 11

- Trình bày khái quát về Thực tại ảo và tạo chuyển động trong Thực tại ảo

- Tìm hiểu về các kỹ thuật tạo chuyển động cho đối tương 3D trong thực tại ảo

- Tìm hiểu về phương pháp tạo chuyển động cho đối tượng có xương

Chương 2: Nghiên cứu về các kỹ thuật tạo chuyển động cho con người trong thực tại ảo không dựa vào xương và tìm hiểu một số phương pháp điều khiển chuyển động áp dụng cho đối tượng có xương

Chương 3: Chương trình cài đặt thực nghiệm áp dụng một trong các kĩ thuật đã

tìm hiểu để mô phỏng chuyển động cho con người dựa vào xương

Trang 12

CHƯƠNG 1 TỔNG QUAN VỀ THỰC TẠI ẢO VÀ CHUYỂN ĐỘNG

TRONG THỰC TẠI ẢO

Trước khi đi vào nội dung chính của luận văn, chúng ta tìm hiểu đôi nét về công nghệ thực tại ảo và vai trò của của việc tạo chuyển động trong thực tại ảo

1.1 Tổng quan về Thực tại ảo

1.1.1 Khái niệm thực tại ảo

Theo cách truyền thống, việc tương tác với máy tính được thực hiện thông qua các thiết bị như bàn phím, chuột hay Joystick/Trackball/Keyboard/Styplus để cung cấp thông tin đầu vào và sử dụng khối hiển thị trực quan (Video Display Unit-VDU) để nhận thông tin đầu ra từ hệ thống Với sự ra đời của các hệ thống Thực tại

ảo (Virtual Reality-VR), các phương thức giao tiếp mới được phát triển cho phép người sử dụng tương tác một cách tích cực với máy tính

Thực tại ảo (tiếng Anh là virtual reality, viết tắt là VR) là thuật ngữ miêu tả một môi trường mô phỏng bằng máy tính Đa phần các môi trường thực tại ảo chủ yếu là hình ảnh hiển thị trên màn hình máy tính hay thông qua kính nhìn ba chiều, tuy nhiên một vài mô phỏng cũng có thêm các loại giác quan khác khác như âm thanh hay xúc giác

Thực tại ảo là công nghệ sử dụng các kỹ thuật mô hình hoá không gian ba chiều với sự hỗ trợ của các thiết bị đa phương tiện hiện đại để xây dựng một thế

giới mô phỏng bằng máy tính - môi trường ảo (Virtual Environment) Trong thế

giới ảo này, người sử dụng không còn được xem như người quan sát bên ngoài, mà

đã thực sự trở thành một phần của hệ thống Một cách lý tưởng, người sử dụng có thể tự do chuyển động trong không gian ba chiều, tương tác với các vật thể ảo, quan sát và khảo cứu thế giới ảo ở những góc độ khác nhau về mặt không gian Ngược lại, môi trường ảo lại có những phản ứng tương ứng với mỗi hành động của người

sử dụng, tác động vào các giác quan như thị giác, thính giác, xúc giác của người sử dụng trong thời gian thực và tuân theo những quy tắc vật lý tự nhiên, làm anh ta có cảm giác như đang tồn tại trong một thế giới thực [6]

Ngoài thuật ngữ Thực tại ảo (Virtual Reality) người ta cũng hay đề cập tới thuật ngữ Thế giới ảo (Virtual World) Thực chất đây là hai khái niệm tương đồng

Trang 13

để chỉ một không gian ảo mà trong không gian này những người sử dụng có thể tương tác với các đối tượng của không gian ảo hoặc những người sử dụng có thể tương tác với nhau trong không gian đó

Hình 1.1 Giao diện giữa người sử dụng và hệ thống máy tính 3D

1.1.2 Lịch sử phát triển của thực tại ảo

Khái niệm thực tế ảo đã có trong nhiều thập niên nhưng nó chỉ thực sự được hận thức vào đầu năm 90 Vào giữa những năm 60 Morton Heilig (Mỹ) đã phát minh ra thiết bị mô phỏng SENSORAMA Sử dụng các hệ thống này người quan sát có cảm giác ảnh đang sống động ngay trước mắt mình Do không có sự hỗ trợ về tài chính do đó Heilig không thể hoàn thành ước mơ của mình Xong anh cũng đã tạo ra được một thiết bị mô phỏng được gọi là "Sensorrama Simulator", thiết bị này được công bố vào khoảng đầu những năm 1960

Hình 1.2 Thiết bị mô phỏng Sensorrama-1960

Trang 14

Thiết bị này sử dụng hình ảnh 3D, thu được từ camera 35mm kết hợp thành một camera chính Nó gồm có một hệ thống âm thanh kết hợp với những cảnh quay

3 chiều thực sự

Năm 1966 Ivan Sutherland một sinh viên tốt nghiệp trường Utah tiếp tục nghiên cứu vấn đề Heilig đã bỏ dở Anh ta đã chế tạo được hệ thống thiết bị hiển thị đội đầu (Head Mounted Display-HMD) Cái mũ sắt bao gồm một màn ảnh và hệ thống theo dõi video đã được các kỹ sư liên kết tới một hệ thống camera mạch đóng Họ dự định sử dụng HMD trong các tình huống nguy hiểm - một người có thể quan sát một môi trường thực sự từ xa, điều chỉnh góc quay camera bằng cách quay đầu Bell Laboratories đã sử dụng HMD cho những phi công lai máy bay trực thăng Họ liên kết HMD với những camera hồng ngoại gắn bên ngoài máy bay giúp phi công có thể nhìn rõ ngay cả trong môi trường thiếu ánh sáng

Năm 1970, Sutherland tiếp tục phát triển phần cứng của HMD tại trường đại học Utah, làm cho nó hoàn thiện hơn có màn hình là màn hình màu

Hình 1.3 Ivan Sutherland và thiết bị mô phỏng HMD

Cũng trong khoảng thời gian này Myron Kreuger (1942) đã phát triển một thiết bị có tên VIDEOPLACE Thiết bị này sử dụng một màn hình lớn đối diện với người dùng Trên màn hình hiển thị cái bóng người dùng Hệ thống cũng có khả năng hiển thị nhiều người sử dụng trên cùng một màn hình

Trang 15

Hình 1.4 Thiết bị VIDEOPLACE của Myron Kreuger

Những ý tưởng này được hai nhà khoa học Mỹ ở NASA là Fisher và McGreevy kết hợp lại trong một dự án có tên là “Trạm làm việc ảo” (Visual Workstation) vào năm 1984 Cũng từ đó NASA phát triển thiết bị Hiển thị đội đầu

có tính thương mại đầu tiên, được gọi là màn hình môi trường trực quan (Visual Environment Display), thiết kế dựa trên mẫu hình mặt nạ lặn với các màn hình quang học mà ảnh được cung cấp bởi hai thiết bị truyền hình cầm tay Sony Watchman Sự phát triển của thiết bị này đã thành công ngoài dự đoán, bởi NASA

đã sản xuất được một thiết bị HMD có giá chấp nhận được trên thị trường và như vậy ngành công nghiệp Thực tại ảo đã ra đời

Hình 1.5 Scott Fisher, McGreevy và Thiết bị HMD-1984 của NASA

Công nghệ Thực tại ảo từ những năm 90 trở lại đây được phát triển mạnh mẽ

và đang trở thành một công nghệ mũi nhọn nhờ khả năng ứng dụng rộng rãi trong mọi lĩnh vực như: nghiên cứu và công nghiệp, giáo dục và đào tạo cũng như thương mại, giải trí, tiềm năng kinh tế, cũng như tính lưỡng dụng trong dân dụng và quân

sự của nó

Trang 16

1.1.3 Hệ thống thực tại ảo

Hệ thống thực tại ảo bao gồm 3 thành phần chính sau: HW (phần cứng), bộ giả lập thực tại (reality simulator), phần mềm

 Phần cứng (Hardware): Phần cứng của một VR bao gồm:

- Các thiết bị đầu vào (Input devices): là các thiết bị có khả năng kích thích các giác quan để tạo nên cảm giác về sự hiện hữu trong thế giới ảo gồm có:

Bộ dò vị trí (position tracking) để xác định vị trí quan sát Bộ giao diện định

vị (Navigation interfaces) để di chuyển vị trí người sử dụng Bộ giao diện cử chỉ (Gesture interfaces) như găng tay dữ liệu (data glove) Thiết bị tương tác

với máy tính thông qua thiết bị như chuột (SpaceBall), bàn phím,…

- Các thiết bị đầu ra (Output devices): gồm thiết bị hiển thị đồ họa (như Kính mắt Shutter Glasses, màn hình rộng, thiết bị HDM, ) để nhìn được đối tượng 3D Thiết bị âm thanh (loa) để nghe được âm thanh vòm (như Hi-Fi, Surround, ) Bộ phản hồi cảm giác (Haptic feedback như găng tay, ) để tạo xúc giác khi sờ, nắm đối tượng Bộ phản hồi xung lực (Force Feedback) để

tạo lực tác động như khi đạp xe, đi đường xóc,

 Phần mềm (Software): Phần mềm luôn là linh hồn của VR cũng như đối với bất

cứ một hệ thống máy tính hiện đại nào Về mặt nguyên tắc có thể dùng bất cứ ngôn ngữ lập trình hay phần mềm đồ họa nào cũng phải bảo đảm hai công dụng chính là:

Mô hình hóa (modelling) và mô phỏng (simulation) các đối tượng trong VR

Các đối tượng của VR được mô hình hóa (modelling) tức là tạo dựng mô hình nhờ chính phần mềm này hay mô hình hoá từ mô hình 2D thành mô hình 3D nhờ công cụ đặc biệt từ các phần mềm như Maya, 3D Max,…

Mô phỏng (Simulation) là quá trình “bắt chước” hay mô tả các sự vật hiện tượng, cảnh vật có thực trong thiên nhiên hoặc trong trí tưởng tượng của con người

 Bộ giả lập thực tại (reality simulator)

Là trái tim của hệ thống thực tại ảo, bao gồm hệ thống máy tính và phần cứng ngoại vi, thiết bị đồ hoạ và multimedia; cung cấp cho bộ tác động những thông tin giác quan cần thiết Trong hệ thống mô phỏng cabin lái, thì mô hình cabin là thành phần này

Trang 17

Tóm lại, một hệ mô phỏng được thiết kế tốt, kết hợp với các thiết bị trình chiếu hiện đại và các thiết bị tương tác ngoại vi sẽ giúp con người tiếp cận được với thế giới ảo đó như đang ở trong thế giới thực Việc tạo ra các mô hình đối tượng có

độ chân thực và sức hấp dẫn hoàn toàn phụ thuộc vào cách ta lựa chọn phương pháp

để thể hiện chúng Mỗi phương pháp có những ưu điểm và nhược điểm riêng, vì thế tuỳ vào mức độ quan trọng của đối tượng trong hệ mà ta có thể chọn phương pháp phù hợp để xây dựng

1.1.4 Đặc điểm của hệ thống thực tại ảo

Một hệ thống VR có 3 đặc tính chính đó là: Tương tác (Interactive) - Đắm chìm (Immersion) - Tưởng tượng (Imagination)

là tương tác thời gian thực (real-time interactivity) Thời gian thực ở đây có nghĩa là máy tính có khả năng nhận biết được tín hiệu vào của người sử dụng và thay đổi ngay lập tức thế giới ảo

Tính đắm chìm: Người sử dụng nhìn thấy sự vật thay đổi trên màn hình ngay theo ý muốn của họ và bị thu hút bởi sự mô phỏng này Điều này chúng ta có thể nhận thấy ngay khi quan sát trẻ nhỏ chơi video game Tương tác và khả năng thu hút của VR góp phần lớn vào cảm giác đắm chìm (immersion), cảm giác trở thành một phần của hành động trên màn hình mà người sử dụng đang trải nghiệm Nhưng

Trang 18

VR còn đẩy cảm giác này "thật" hơn nữa nhờ tác động lên tất cả các kênh cảm giác của con người Trong thực tế, người dùng không những nhìn thấy đối tượng đồ họa 3D nổi, điều khiển (xoay, di chuyển, ) được đối tượng trên màn hình (như trong game), mà còn sờ và cảm thấy chúng như có thật Ngoài khả năng nhìn (thị giác), nghe (thính giác), sờ (xúc giác), các nhà nghiên cứu cũng đã nghiên cứu để tạo các cảm giác khác như ngửi (khứu giác), nếm (vị giác) Tuy nhiên hiện nay trong VR các cảm giác này cũng ít được sử dụng đến

Tính tưởng tượng: VR không chỉ là một hệ thống tương tác Người - Máy tính, mà các ứng dụng của nó còn liên quan tới việc giải quyết các vấn đề thật trong

kỹ thuật, y học, quân sự, Các ứng dụng này do các nhà phát triển VR thiết kế, điều này phụ thuộc rất nhiều vào khả năng tưởng tượng của con người, đó chính là đặc tính "I" (Imagination) thứ 3 của VR

Có hai khía cạnh của tính tưởng tượng trong một thế giới ảo: sự du hành bên trong thế giới và động lực học của môi trường Sự du hành là khả năng của người dùng để di chuyển khắp nơi một cách độc lập, cứ như là đang ở bên trong một môi trường thật Nhà phát triển phần mềm có thể thiết lập những áp đặt đối với việc truy cậpvào những khu vực ảo nhất định, cho phép có được nhiều mức độ tự do khác nhau (Người dùng có thể bay, xuyên tường, đi lại khắp nơi hoặc bơi lặn…) Một khía cạnh khác của sự du hành là sự định vị điểm nhìn của người dùng Sự kiểm soát điểm nhìn là việc người dùng tự theo dõi chính họ từ một khoảng cách, việc quan sát cảnh tượng thông qua đôi mắtcủa một con người khác, hoặc di chuyển khắp trong thiết kế của một cao ốc mới như thể đang ngồi trong một chiếc ghế đẩy… Động lực học của môi trường là những quy tắc về cách thức mà người, vật và mọi thứ tương tác với nhau trong một trật tự để trao đổi năng lượng hoặc thông tin

Do đó có thể coi VR là tổng hợp của 3 yếu tố: Tương tác - Đắm chìm - Tưởng tượng, (3I: Interactive - Immersion - Imagination)

1.1.5 Một số ứng dụng của thực tại ảo

Tại các nước phát triển, chúng ta có thể nhận thấy VR được ứng dụng trong mọi lĩnh vực: Khoa học kỹ thuật, kiến trúc, quân sự, giải trí, và đáp ứng mọi nhu cầu: Nghiên cứu - Giáo dục - Thương mại Y học là lĩnh vực ứng dụng truyền thống

Trang 19

của VR Bên cạnh đó VR cũng được ứng dụng trong giáo dục, nghệ thuật, giải trí Trong lĩnh vực quân sự, VR cũng được ứng dụng rất nhiều ở các nước phát triển [7]

a Giáo dục và Đào tạo

Để có một kết quả học tập cao nhất, chúng ta phải sử dụng nhiều phương pháp học tập khác nhau, trong đó có phương pháp trực quan Thực tế cho thấy, học bằng hình ảnh trực quan thì nhanh hơn bằng các phương pháp khác Vì vậy, thực tại

ảo đã, đang và sẽ trở thành một công cụ hữu hiệu trong giáo dục, đặc biệt là với trẻ

em Ngoài ra, nó cũng là một phương tiện giáo dục rất mạnh đối với một số ngành nghề đòi hỏi phải thực hành Ví dụ như: huấn luyện phi công, lái xe Một số trường đào tạo lái xe của Việt Nam hiện nay cũng đang sử dụng các phương tiện cho phép học viên thực hành trên cơ sở thực tại ảo

Hình 1.7 Mô hình lớp học ảo

Tất cả những đặc tính này khiến công nghệ VR trở nên rất phù hợp cho các ứng dụng có tính chất giáo dục hay đào tạo Tính chất trực quan của bài giảng được nâng cao một bước làm tăng sự hứng thú trong học tập cũng như khả năng ghi nhớ các khái niệm quan trọng trong bài giảng Từ đó, học viên nắm bắt được nhanh chóng và có ý thức hơn với những tính huống đã được học

b Y học

Đây cũng là lĩnh vực hứa hẹn nhiều triển vọng của thực tại ảo Hiện nay trên thế giới, việc ứng dụng thực tại ảo vào y học khá phong phú Đặc biệt ở Mỹ trong

Trang 20

phẫu thuật, bác sĩ đã có thể tiến hành các cuộc phẫu thuật trong môi trường ảo, không cần có bệnh nhân mà vẫn như đang phẫu thuật một bệnh nhân thật Các bác

sĩ cũng có thể tiến hành các cuộc phẫu thuật từ xa thông qua các thiết bị của thực tại

ảo Thực tại ảo cũng có các ứng dụng trong lĩnh vực tâm thần Người ta đã chứng minh, thực tại ảo có khả năng chữa được các chứng bệnh sợ, ví dụ: sợ bóng tối, sợ nhện, sợ đông người v.v… Phương pháp sử dụng là: đưa người bệnh vào môi trường thực tại ảo trong đó có nỗi sợ của họ, đồng thời sẽ có các lời kích thích, hướng dẫn họ, giúp họ dần làm quen với nỗi sợ của bản thân và từ đó vượt qua được những nỗi sợ hãi trong cuộc sống v.v…

Hình 1.8 Hệ thống phẫu thuật ảo

c Xây dựng và thiết kế kiến trúc

Một trong những lĩnh vực ứng dụng tiêu biểu nhất của VR là thiết kế kiến trúc Khả năng mô hình hoá thế giới thực của công nghệ VR dường như đáp ứng một cách

tự nhiên mục tiêu của ngành thiết kế kiến trúc đưa ra mô hình trực quan nhất

Việc xây dựng các mô hình không gian kiến trúc với đầy đủ mô tả trực quan

về các hình khối kiến trúc của một căn nhà, cách bố trí nội thất bên trong, thậm chí hoa văn cửa sổ hay màu sơn của tường, cùng với khả năng cho phép khách hàng tự

do tham quan, khảo sát căn nhà của họ trong tương lai theo nhiều góc độ và vị trí, từ phòng này sang phòng khác thực sự đem lại hiệu quả trực quan mang tính cách mạng trong lĩnh vực mang nhiều đặc điểm nghệ thuật này

Trang 21

Hình 1.9 Mô phỏng thiết kế kiến trúc nhà ở 3D

d Khoa học quân sự, quốc phòng

Đây là lĩnh vực đặt nền móng cho sự nghiên cứu của thực tại ảo Hiện nay, những ứng dụng của thực tại ảo trong lĩnh vực này là rất phong phú, ví dụ như huấn luyện quân lính, thử nghiệm các loại vũ khí, các phương tiện chiến tranh, bản đồ hoá từng khu vực (hệ thống định vị toàn cầu) v.v

Người ta đã xây dựng các hệ thống mô phỏng phục vụ cho việc tập luyện của

bộ binh, hay những hệ thống mô phỏng hệ thống an ninh, mô phỏng trận địa, phục

vụ cho việc nghiên cứu, tập luyện nhằm tìm ra các phương pháp phòng thủ và chiến đấu một cách hiệu quả

Hình 1.10 Binh lính học nhảy dù bằng thực tế ảo

Trang 22

d Giải trí

Thông qua việc mô phỏng các mô hình 3D nhằm cung cấp các dịch vụ phục

vụ tương tác của người trong môi trường ảo Các hình ảnh tuyệt vời kết hợp với âm thanh nổi, các thiết bị vào ra làm cho con người ta ở trong môi trường ảo mà như ở trong môi trường thực

Trong điện ảnh ngày nay, con người có thể dựng được những thước phim tưởng chừng như không thể dựng được với các kỹ xảo điện ảnh thông thường, ví dụ trong một số cảnh của phim “Vua bọ cạp” v.v… Các phim thực tại ảo ba chiều cũng được sản xuất và trình chiếu tại các rạp chiếu phim ba chiều Khi xem các phim này bạn sẽ có cảm giác như đang sống trong chính bộ phim chứ không phải bạn đang xem phim

Game thực tại ảo hiện nay đã trở thành một ngành công nghiệp thu được nhiều lợi nhuận Ở nước ta hiện nay thì game thực tại ảo chưa được biết tới nhiều song ở một số nước phát triển thì đây là một ngành giải trí thu lợi nhuận khổng lồ,

ví dụ các nước Nhật, Mỹ, Anh

e Thương mại - Du lịch

Trong thương mại, đặc biệt là trong ngành quảng cáo, thực tại ảo đang có một vị trí quan trọng Nó giúp khách hàng tiếp cận gần hơn với hàng hoá để có thể đánh giá chất lượng mà không cần có hàng trực tiếp Trong du lịch, với hỗ trợ thực tại ảo khách hàng có thể xem xét cảnh quan của nơi mà họ sẽ đến để chắc chắn

có một chuyến du lịch thú vị

f Khoa học cơ bản

Hầu hết các ngành khoa học đều có thể ứng dụng thực tại ảo, đặc biệt là các ngành như vật lý, hoá học, khảo cổ, sinh học, vũ trụ Trong vật lý, người ta có thể

mô phỏng lại chính xác các hiện tượng của vật lý một cách trực quan Trong khảo

cổ học, thực tại ảo giúp người ta dựng lại các kiến trúc đã bị chôn vùi

g Hàng không vũ trụ

Trong những năm gần đây, khi tin học phát triển thì các ứng dụng của nó vào lĩnh vực hàng không vũ trụ càng trở lên mạnh mẽ, nhất là trong vấn đề trợ giúp đào tạo phi công Người ta đã xây dựng rất nhiều chương trình mô phỏng cho phi công

Trang 23

tập luyện kết hợp với các thiết bị phần cứng để tạo ra một môi trường làm cho con người tưởng như ở trên một chiếc máy bay thật và mọi thứ diễn ra như ngoài thực

tế Một chương trình máy tính tạo ra không gian 3D kết hợp với thiết bị phần cứng cho phép người phi công thực hiện những chuyến bay đến các sân bay đã được xây dựng sẵn với các tình huống nhằm nâng cao kỹ năng xử lý tình huống như trong thực tế Với cách này, người ta sẽ giảm thiểu được thời gian, chi phí đào tạo và nâng cao tính an toàn của mỗi chuyến bay

Tóm lại, với các ứng dụng đa dạng và nhu cầu thực tế thì công nghệ mô phỏng đang ngày càng phát triển mạnh mẽ hơn, thu hút sự quan tâm của mọi người nhất là những người quan tâm đến sự phát triển của công nghệ nói chung và công nghệ thông tin nói riêng Ở nước ta hiện nay, lĩnh vực này mới thực sự bắt đầu phát triển vì vậy nghiên cứu vấn đề này sẽ đem lại nhiều kết quả hứa hẹn trong tương lai

1.2 Chuyển động trong Thực tại ảo

- Animation: Thực chất là một tập hợp các hình ảnh có thứ tự được khởi

động một cách liên tục, nó thường dùng để mô tả các sự vật như đống lửa, màn hình tivi v.v Hay nói cách khác, nó là một chuỗi có thứ tự của những hình ảnh thay thế nhau, tạo ra các hiệu ứng về sự vận động

- 3D Animation: Là sự kết hợp các hiệu ứng của các Animaition để tạo ra

các hành động của đối tượng trở nên mềm mại, uyển chuyển trong quá trình chuyển động cũng như có sự thay đổi về trạng thái trong môi trường không gian 3D

Hình ảnh 3D trong thực tại ảo ngày càng có nhiều ứng dụng trong thực tế Việc tạo ra các mô hình 3D với các chuyển động gắn với nó là một đòi hỏi tất yếu Trong lĩnh vực thể hiện hình ảnh 3D trong VR có hai khâu quan trọng là tạo mô hình và điều khiển mô hình

Tạo mô hình là là tạo ra các khung cảnh, các nhân vật, các đối tượng trong thế giới, hay nói đúng hơn nó chính là bước tạo ra các phiên bảo ảo cho mô hình thế giới thực Chính vì vậy mà khâu tạo mô hình nó góp phần tạo nên diện mạo của các ứng dụng VR Khâu này đòi hỏi mô hình tạo ra phải có tính chân thực so với mô hình trong thế giới thực

Trang 24

Điều khiển mô hình chính là khâu sử dụng các ngôn ngữ lập trình, lập trình điều khiển thế giới và lập trình tương tác giữa các đối tượng với nhau và giữa các đối tượng với thế giới

1.2.1 Vai trò của việc tạo chuyển động

Nói đến điều khiển mô hình là nói đến sự tương tác của các đối tượng trong thế giới ảo như: va chạm giữa các đối tượng, chuyển động của các đối tượng, biến đổi của các đối tượng theo thời gian… trong rất nhiều ứng dụng thực tại ảo thì chuyển động của các nhân vật, đối tượng… đóng vai trò chủ chốt quyết định tính chân thực của ứng dụng

Chuyển động, tương tác giữa các đối tượng sẽ làm cho đối tượng trở lên chân thực và sống động hơn, sẽ đưa chúng ta vào một thế giới nhân tạo giống như thật Việc thể hiện thành công kỹ thuật tạo chuyển động trong VR sẽ cho phép ta đi sâu vào thế giới ảo để tạo ra những giá trị thật cho cuộc sống con người Nhưng để tạo chuyển động cho đối tượng để nó có thể thể hiện được hành vi, trạng thái trong thế giới thực không hề đơn giản

Tạo chuyển động cho các đối tượng, góp phần quan trọng trong việc biến Thực tại ảo trở thành môi trường thử nghiệm những nghiên cứu cho các ngành khoa học khác có thể kể đến như: tạo chuyển động, mô phỏng sự chuyển động của hệ Xương người ảo sẽ là một ứng dụng mạnh hỗ trợ cho việc nghiên cứu về giải phẫu Xương người phục vụ trong đào tạo Y học

1.2.2 Phân loại chuyển động

Thực tế người ta phân chuyển động làm 2 loại: chuyển động của đối tượng

có xương và chuyển động của đối tượng không có xương Trong phạm vi đề tài, tác giả tập trung nghiên cứu các kĩ thuật tạo chuyển động cho đối tượng có xương Chẳng hạn như chuyển động của cơ thể người hay động vật

a Đối tượng không có xương

Đối với những đối tượng kiểu này, phương pháp tạo chuyển động hiệu quả nhất là tạo chuyển động theo các thời điểm chính, tạo chuyển động theo đường cong xác đinh trước, hoặc tạo chuyển động không tuyến tính với đoạn

Trang 25

Đó là những đối tượng ít có sự biến dạng khi chuyển động như tàu, thuyền, máy bay,… hay đối tượng có sự biến dạng theo quy luật

Với kỹ thuật tổng hợp hình ảnh như hiện tại sẽ rất khó khăn để mô hình hóa các hiện tượng mà bề mặt không được xác định rõ ràng, cũng như không có qui luật như mây, khói, nước, lửa… Đặc biệt, các hiện tượng này luôn chuyển động và biến đổi Do đó, những đối tượng không định hình như thế này sẽ không thể dùng các kỹ thuật biến đổi thông thường dành cho các vật thể cứng trong đồ họa máy tính như hiện tại, mà Particle chính là một phương pháp đặc biệt dùng để mô phỏng cho các đối tượng kiểu này

Particle trong Thực tại ảo chính là các phần tử hay còn gọi là các hạt, là thành phần cấu tạo lên các chất liệu trong thế giới thực Chúng ta có thể tạo ra các particle đơn hoặc hàng triệu particle để thể hiện cho một chất liệu nào đó hoặc một tính chất cụ thể nào đó của một chất liệu cụ thể trong môi trường Thực tại ảo Các particle này mang cùng một tính chất, chính là tính chất của chất liêu mà nó mô phỏng Phần tử (particle) ở đây chúng ta không chỉ hiểu theo nghĩa vật lý mà chúng

ta còn hiểu phần tử (particle) ở đây là ở mức mô phỏng mà mắt người có thể nhìn thấy và điều khiển chúng Ví dụ như chúng ta muốn mô phỏng một khối nước bằng các particle, thì particle ở đây không phải là một phần tử nước theo nghĩa vật lý mà chính là các giọt nước

Trang 26

Trong đồ hoạ hình động 3D, hệ thống xương đóng vai trò rất quan trọng để xây dựng chuyển động cho vật thể, hệ thống này là những liên kết có thứ bậc và thường được đặt tên là Skeleton và Joint Đây chính là hệ thống được xây dựng trong phần mềm đồ họa 3D với chức năng chính là sử dụng hệ thống xương gắn kết với các đối tượng để làm chuyển động cho các đối tượng 3D, đặc biệt là các nhân vật 3D [9]

Hình 1.11 Hệ thống xương trong phần mềm đồ họa

Hệ thống này được cấu thành từ nhiều nút liên kết và thường bắt đầu từ một nút gốc Đối với hệ xương của cơ thể người, nút gốc này thường được đặt là nút khớp hông Một xương được cấu tạo từ hai nút liên kết và được liên kết theo bề ngoài bằng những biểu tượng xương Hệ thống thứ bậc này cho phép bạn nhóm hoặc phân vùng những thành phần khác nhau của mỗi nhân vật theo hệ thống xương

đã tạo

Trang 27

Hình 1.12 Hệ thống khớp xương liên kết được phân cấp trong phần mềm đồ họa

Hệ thống khớp làm việc như các hệ thống thứ bậc khác gồm nút gốc và những nút con có quan hệ thứ bậc Việc quay một nút sẽ dẫn đến việc quay những nút con của nó nhưng không làm ảnh hưởng đến những nút cha [9]

1.2.3 Tạo chuyển động

Trong mô hình cây phân cấp, mỗi node cần một chuyển đổi mà biến đổi nó

từ tọa độ gốc con rồi nhìn lên gốc cha Trong mô hình người, những biến đổi ban đầu được thiết lập để nhận diện từ tất cả các bộ phận cơ thể được kết nối một cách chính xác ngay từ đầu Khi người sử dụng xác định một phần cơ thể và chỉ rõ một thao tác, chuyển đổi của nó sẽ được sửa đổi cho phù hợp Khi áp dụng đệ quy chuẩn thường vẽ mô hình cây phân cấp, một phần cơ thể thực hiện điều này sẽ được di chuyển phù hợp với những mong muốn của người sử dụng

Bộ phận cơ thể ban đầu được kết nối liền mạch Khi một đoạn được di chuyển, ví dụ được xoay quanh một trục, đó là khớp, vì tất cả các bộ phận cơ thể được coi là cơ thể cứng nhắc, ngoại trừ trong trường hợp những đoạn cong sẽ được

mô tả sau, một khe hở sẽ xuất hiện giữa chúng

Trang 28

Hình 1.13: Cấu trúc chung của mô hình cây phân cấp

Đối với một chuỗi phả hệ tác động thêm vào các tính năng hình ảnh động bằng cách cho phép người sử dụng để tạo ra một chuỗi các khung hình Chương trình sẽ tạo ra chuyển động bằng cách nội suy các hình ảnh động với một chuỗi các khung hình Chương trình ghi lại sự khác biệt trong phép quay và sự dịch chuyển của bộ phận cơ thể Sau đó, nó nội suy các hình ảnh động bằng cách tạo ra khung hình mới với những thay đổi nhỏ

Quay (Rotation)

Mỗi một phần cơ thể có thể xoay quanh một trục đi qua khớp tương ứng với khớp cha Hướng của trục này phụ thuộc vào mong muốn của người sử dụng Người dùng chỉ định quay hướng bởi các phím khác nhau Ba bậc tự do được cung cấp cho mỗi khớp (khớp gốc, khớp cha và khớp con)

Dịch chuyển (Translation)

Mô hình có khả năng dịch từng phần cơ thể riêng biệt Nó cung cấp một cách hữu ích để kiểm tra xem các bề mặt khớp được xây dựng một cách chính xác Tương ứng với mỗi khớp trên cơ thể người chúng ta thực hiện dịch chuyển khớp đó với một góc tương ứng với tứng chuyển động của con người

Trang 29

Chuyển động (Animation)

Hình 1.14 Số lượng các khung hình nội suy xác định chuyển động

Để lưu một khung hình, chúng ta cần phải ghi lại tất cả các ma trận biến đổi trong cây Để làm điều đó, chúng tôi chỉ đơn giản là lưu trữ các ma trận trong một file * amt Để hiển thị một khung hình, chúng tôi chỉ đơn giản là tải các ma trận chuyển đổi từ * amt nộp lại các mô hình cây Vì nó là rất khó để nội suy các hình ảnh động khi các frame liền kề vì các chuyển động là rất giống nhau, các hình ảnh động có thể thay đổi trong một số trường hợp

Trang 30

CHƯƠNG 2 MỘT SỐ KỸ THUẬT TẠO CHUYỂN ĐỘNG

CHO CON NGƯỜI TRONG THỰC TẠI ẢO

Nếu một mô hình mà không có sự chuyển động thì sẽ tạo ra cảm giác nhàm chán cho người xem, cũng như làm cho không gian thế giới ảo không được linh động, không có “sức sống”, mà nó sẽ làm người xem nhầm tưởng như đang coi một bức ảnh với những cảnh vật tĩnh Mô hình sẽ trở lên không chân thực và sống động nếu không sự có chuyển động và tương tác Vậy việc tạo hoạt cảnh cho mô hình chính là tạo sự chuyển động, tương tác của đối tượng với các đối tượng khác, môi trường xung quanh

2.1 Kỹ thuật tạo chuyển động không dựa vào xương

2.1.1 Kỹ thuật tạo chuyển động Keyframe Animation

Đây là kỹ thuật phổ biến nhất, sử dụng frame đánh dấu gọi là keyframe [8], [10], [17]

Hình 2.1 Hệ thống Frame trong phần mềm đồ họa 3D

Để xác định các nhịp chuyển động thì các nhà thiết kế áp dụng kỹ thuật sử dụng frame đánh dấu gọi là keyframe Với kỹ thuật này sẽ đặt tư thế, trạng thái của đối tượng tại những vị trí khác nhau đã được xác định, lưu lại những trạng thái này thành những key Sau đó, những frame giữa hai key frame sẽ được chương trình tự động tính toán để tạo ra sự chuyển tiếp giữa hai trạng thái kề nhau

Hình 2.2 Mô tả chuyển động theo các thời điểm chính

Trang 31

Trong hầu hết các phần mềm đồ họa 3D để xây dựng chuyển động của một đối tượng, hệ thống Frame được coi là phương pháp thể hiện chuyển động một cách phổ biến nhất Những frame mang những thay đổi xuất hiện trong khoảng thời gian

đủ nhanh (thường là 24 hình/s) sẽ gây cảm giác chuyển động

Hình 2.3 Chuyển động nhận vật sử dụng keyframe

Có thể hiểu hơn nữa phương pháp keyframe là một kỹ thuật mà các công trình nhỏ như là một kịch bản (một loạt hình ảnh của đối tượng minh họa bằng một chuỗi các sự kiện) Nó cho phép dàn dựng và xây dựng một hình ảnh động bằng cách bố trí các đối tượng tại những vị trí khác nhau mà ta muốn và lưu lại những trạng thái ở thời điểm quan trọng này thành những key Những thời điểm quan trọng trở thành các điểm cố định trong thời gian qua đó đối tượng chuyển động đi qua

Lưu dữ liệu ảnh động: Nội suy bởi khung hình và thời gian

Mỗi đối tượng trong số các đối tượng của chúng ta, cho dù chúng đang chuyển động hay không, sẽ cần một khung hình chính xác định cho mọi kênh truyền

dữ liệu chuyển động tại thời điểm bắt đầu Chúng ta sẽ xác định kênh truyền dữ liệu chính như sau:

typedef struct stKEYCHANNEL{

float time;

float value; //Actual magnitude float tn, bs, ct; //Tension, bias and continuity int linear; //Flag to indicate that the key is linear }KEYCHANNEL

Trang 32

Nếu chúng ta có thể xem xét mỗi kênh truyền dữ liệu một cách độc lập, vấn

đề về mã sẽ là làm thế nào để nội suy một kênh đơn nhất Giả sử rằng một kênh cụ thể có năm vị trí chủ chốt Chúng ta có năm giá trị thời gian và năm giá trị dấu phẩy động Hình 2.4 cho thấy một tập hợp của các điểm, các điểm được nối lại bằng cách

sử dụng các đường thẳng Phương pháp nội suy tuyến tính này vô cùng dễ dàng thực hiện Giữa bất kỳ hai khung hình chính, K1 và K1, giá trị của một điểm P tại thời điểm t được tính bằng:

P = K 1 value + ((t – K 1 time)/(K 2 time – K 1 time))*(K 2 value – K 1 value)

Hình 2.4: Nội suy tuyến tính cho 5 Keyframe theo thời gian

Nhưng kết quả của phương pháp này sẽ rất dễ bị trục trặc Đó là do đường cong nối các điểm không rõ nét Sự mô tả về kỹ thuật của đường này là nó thiếu tính liên tục của G1 và C1 Một đường cong có tính liên tục tại G0 liên tục nếu nó được nối tại các vị trí chủ chốt, Kn, và có tính liên tục tại G1 nếu tiếp tuyến tại điểm này với cả đoạn Kn – 1 → Kn và đoạn Kn → Kn + 1 có một hướng mà không nhất thiết phải cùng biên độ Đối một đường cong liên tục tại C1, các tiếp tuyến phải ở cùng một hướng và cùng biên độ

Đối với các đường cong chúng ta đang xem xét, chúng ta có một giá trị thay theo thời gian Nếu bạn đã quen thuộc với giải tích, bạn sẽ biết rằng lấy đạo hàm một đường cong sẽ cho một đường cong mới thể hiện sự thay đổi độ dốc của đường cong ban đầu theo thời gian Đối một đường cong rõ nét chúng cần C1 liên tục khi

nó cong ở vị trí chủ chốt Có nhiều khả năng cho một đường cong dạng này Cách thức chuẩn là sử dụng một đường cong khác giữa mỗi cặp vị trí chủ chốt Để đảm

Trang 33

bảo rằng đường cong rõ nét tại các vị trí quan trọng, chúng ta cần phải xem xét độ dốc hoặc sự tiếp xúc với các đường cong ở đoạn kết thúc của một phần và bắt đầu phần tiếp theo Các đường dốc phải cùng một hướng và cùng biên độ để đảm bảo một sự chuyển đổi trơn tru Hình 2.5 cho thấy kết quả của việc sử dụng đường cong riêng phần theo đường cubic có hoặc không có sự nối tiếp của tiếp tuyến đến vị trí chủ chốt và đường cong theo sau các vị trí chủ chốt này Cách làm này rất hay, nhưng làm thế nào để chúng ta xác định một đường cubic đảm bảo để đi qua các vị trí chủ chốt Vấn đề này đưa đến một vấn đề quen thuộc với đồ họa máy tính nói chung, một trong những hàm số vẽ đường cong Một số hàm số vẽ đường cong không đi qua các vị trí chủ chốt thực sẽ không phù hợp Một đường cong phải bảo đảm đi qua các vị trí chủ chốt được gọi là nội suy

Hình 2.5 Nội suy bậc hai cho 5 Keyframe

Một loại đường cong phù hợp cho vấn đề này là đường Hermite, đặt tên theo tên một nhà toán học Một lần nữa, chúng ta cần phải xem xét loại đường cong này theo cách phân đoạn riêng biệt, đơn giản chỉ là nối hai vị trí quan trọng với mỗi đường cong Chúng ta muốn điều chỉnh các tiếp tuyến ở vị trí quan trọng, do đó, các dạng biến đổi của một đường cong Hermite mà chúng tôi sẽ sử dụng là Kochanek Bartels hoặc hình thức TCB TCB là viết tắt của độ căng thẳng, tính liên tục, và độ chênh lệch Bất kỳ độc giả quen thuộc với Lightwave 3D sẽ biết rằng loại đương cong này là các đường cong chuyển động chỉ có sẵn ở phiên bản 6 Việc điều chỉnh các thông số TCB có ảnh hưởng làm thay đổi tiếp tuyến với đường cong tại các vị trí chủ chốt Bây giờ để tìm một điểm P tại thời điểm t trên đường cong giữa các vị

Trang 34

trí chủ chốt K1 và K2, chúng ta tìm vectơ pháp tuyến T1 ở đoạn đầu của đường cong và vectơ pháp tuyến T2 ở đoạn cuối của đường cong Để tìm các vector pháp tuyến, đầu tiên chúng ta tính toán các hệ số thang độ của đoạn so với cả đoạn và đoạn phía trước đó với cả đoạn và đoạn phía sau

S1 = (K2.time – K1.time)/(K2.time – K0.time)

S2 = (K2.time – K1.time)/(K3.time – K1.time)

Giai đoạn tiếp theo của biểu diễn đường cong của chúng ta là tính toán các

hệ số Hermite ở thời gian thực tế Chúng ta đang xử lý một đường cong tham số khi

t biến thiên giữa 0 và 1 Bây ta bạn cũng có thể có hai vị trí chủ chốt với giá trị thời gian là 6,3 và 9,87 Nhưng chúng ta cần mở rộng khoảng thời gian này đến 1,0 Điều này rất dễ dàng thực hiện Giả sử chúng ta muốn biết giá trị của t vào thời điểm 7,8 Đầu tiên, chúng ta trừ đi thời gian bắt của đoạn và sau đó ta tính toán thời gian phân đoạn

t = 7.8 – 6.3 = 1.5

dur = 9.87 – 6.3 = 3.57

Bây giờ những gì chúng ta cần phải biết là 1,5 chính là một tỷ lệ của 3,57 Khi thời gian là 6.3 phương pháp này sẽ cho t là 0 và khi thời gian là 9,87, t sẽ là 1,0 Tuy nhiênt vào thời điểm 7,8, t được tính là

t = 1.5/3.57 = 0.42

Các hệ số Hermite được xác định như sau:

h0 = 2t 3 – 3t 2 + 1

Trang 35

h1 = –2t 3 + 3t 2 h2 = t 3 – 2t 2 + t h3 = t 3 – t 2

Cuối cùng, chúng ta có thể tính toán giá trị thực tế tại thời điểm t:

Q (t) = h0*K1.value + h1*K2.value + h2*T1 + h3*T2

Chú ý rằng khi t = 0, h0 = 1, h1 = 0, h2 = 0 và h3 = 0, t = 1, h0 = 0, h1 = 1, h2 = 0 và h3 = 0 Vì vậy tại t = 0 giá trị đường cong là :

Q (0) = 1*K1.value + 0*K2.value + 0*T1 + 0*T2 = K1.value

Và tại t = 1 giá trị đường cong là:

Q (1) = 0*K1.value + 1*K2.value + 0*T1 + 0*T2 = K2.value

Vì vậy đường cong đi qua vị trí các vị trí chủ chốt như chúng ta định Sau khi tính toán các tiếp tuyến tại mỗi đầu phân đoạn của đường cong, chúng ta có thể nội suy đường cong

 Nội suy hướng

Nếu chúng ta chọn sử dụng góc Euler là thông số lưu trữ cho phương hướng, nhưng chúng toán muốn sử dụng quaternions cho việc nội suy, thì chúng ta cần một cách để chuyển đổi giữa góc Euler và quaternions Lợi ích là phép nội suy này cho kết quả nội suy là hình ảnh động trơn tru hơn xu hướng của một đối tượng, so với việc sử dụng biểu diễn đường cong Hermite

Phép Toán quaternion từ các góc Euler được tính bởi:

typedef struct stQUATERNION{

double w, x, y, z;

}QUATERNION;

Hãy nhớ lại rằng nhân một phép toán quaternion chúng toán sử dụng quy tắc sau đây:

Trang 36

q1q2 = [w1w2 – v1• v2, v1 × v2 + w1v2 + w2v1]

Do đó,

qhqpqb = [ cos (h/2)cos (p/2)cos (b/2) – sin(h/2) sin(p/2) sin(b/2),

(cos(h/2) sin(p/2) sin(h/2) sin(p/2) + cos(b/2) cos(p/2) sin(h/2), cos (b/2)cos (h/2)sin (p/2) – cos (p/2)sin (h/2)sin (h/2)sin (p/2), cos (b/2)sin (h/2)sin (p/2) + cos (h/2)cos (p/2)sin (b/2))]

Dẫn đến hàm này:

void EulerAnglesToQuaternion( double h, double p,

double b, QUATERNION &q)

{

double h, p, b, ch, cp, cb, sh, sp, sb;

h = euler.h / 2.0; p = euler.p / 2.0; b = euler.b / 2.0;

ch = cos(h); cp = cos(p); cb = cos(b);

sh = sin(h); sp = sin(p); sb = sin(b);

để có thể tính bằng quaternions đƣợc tạo ra bởi Euler-AnglesToQuaternions, và tạo ra một cách nội suy nhƣ sau:

SlerpQuaternions(QUATERNION &start, QUATERNION &end,

double t, QUATERNION &result)

{

double theta, ct, st, scalestart, scaleend;

ct = start.w * end.w + start.x * end.x +

start.y * end.y + start.z * end.z;

theta = acos(-ct);

Trang 37

st = sin(theta);

startscale = sin((1.0 -t) * theta) / st;

endscale = sin(t * theta) / st;

result.w = startscale * start.w – endscale * end.w; result.x = startscale * start.x – endscale * end.x; result.y = startscale * start.y – endscale * end.y; result.z = startscale * start.z – endscale * end.z;

}else{

theta = acos(ct);

st = sin(theta);

startscale = sin((1.0 -t) * theta) / st;

endscale = sin(t * theta) / st;

result.w = startscale * start.w + endscale * end.w; result.x = startscale * start.x + endscale * end.x; result.y = startscale * start.y + endscale * end.y; result.z = startscale * start.z + endscale * end.z;

}

}

Nhiệm vụ duy nhất còn lại là tạo ra một ma trận toán từ phép toán quaternion mới Việc này, chúng ta có thể sử dụng kiến thức về ma trận chuyển động quay như sau [36][37][38][39][40]:

Rất khó để có thể xác định một vòng quay trực tiếp bằng cách sử dụng quaternions, do đó rất nhiều chương trình hoặc là sử dụng góc Euler hoặc sử dụng trục góc cho việc biểu thị sự tương tác và sử dụng phép toán quaternion cho việc nội suy

2.1.2 Kỹ thuật tạo chuyển động Path Animation

Kỹ thuật này cho phép một hay nhiều đối tượng chuyển động theo một đường cong đã được xác định trước trong không gian [8]

Theo phương pháp này một đường cong sẽ được vẽ ra, sau đó đối tượng sẽ được khoá với đường cong và chuyển động trên nó Ta có thể sử dụng hình dạng

Ngày đăng: 25/07/2017, 21:45

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Quang Huy, Tín Dũng, (2004), Đồ họa máy tính 3DSMax 6 vẽ phối cảnh ảnh 3 chiều, NXB Thống Kê, Tr. 37-96 Sách, tạp chí
Tiêu đề: Đồ họa máy tính 3DSMax 6 vẽ phối cảnh ảnh 3 chiều
Tác giả: Quang Huy, Tín Dũng
Nhà XB: NXB Thống Kê
Năm: 2004
[2] Lê Tấn Hùng, Huỳnh Quyết Thắng (2004), Đồ họa máy tính, NXB Khoa học kỹ thuật, Tr. 40-50 Sách, tạp chí
Tiêu đề: Đồ họa máy tính
Tác giả: Lê Tấn Hùng, Huỳnh Quyết Thắng
Nhà XB: NXB Khoa học kỹ thuật
Năm: 2004
[3] Nguyễn Công Minh, (2009), 3DS Max 2009, NXB Hồng Đức, Tr. 45-85 Sách, tạp chí
Tiêu đề: 3DS Max 2009
Tác giả: Nguyễn Công Minh
Nhà XB: NXB Hồng Đức
Năm: 2009
[4] Lưu Triều Nguyên, (2002), Thiết kế 3 chiều với 3DsMax 4, NXB Lao Động - Xã Hội, Tr. 445-494, Tr. 589-595 Sách, tạp chí
Tiêu đề: Thiết kế 3 chiều với 3DsMax 4
Tác giả: Lưu Triều Nguyên
Nhà XB: NXB Lao Động - Xã Hội
Năm: 2002
[5] Lưu Triều Nguyên, (2006), Các thủ thuật trong 3DSMax, NXB Lao Động - Xã Hội, Tr. 131-145 Sách, tạp chí
Tiêu đề: Các thủ thuật trong 3DSMax
Tác giả: Lưu Triều Nguyên
Nhà XB: NXB Lao Động - Xã Hội
Năm: 2006
[6] Nguyễn Huy Sơn (2006), “Virtual Reality Technologie - Công nghệ Thực tại ảo ”, http://tusach.thuvienkhoahoc.com Sách, tạp chí
Tiêu đề: Virtual Reality Technologie - Công nghệ Thực tại ảo
Tác giả: Nguyễn Huy Sơn
Năm: 2006
[7] Lê Huy Vần (2005), Nghiên cứu phát hiện va chạm và ứng dụng, Khoá luận văn tốt nghiệp, ĐH Công nghệ -ĐHQG Hà Nội, Tr 41-50 Sách, tạp chí
Tiêu đề: Nghiên cứu phát hiện va chạm và ứng dụng
Tác giả: Lê Huy Vần
Năm: 2005
[8] Đề tài “Ứng dụng công nghệ thực tại ảo Virtual Reality-VR trong bảo tàng các di sản”, Đề tài trọng điểm cấp Viện KH và CN Việt Nam 2004-2006.Tiếng Anh Sách, tạp chí
Tiêu đề: Ứng dụng công nghệ thực tại ảo Virtual Reality-VR trong bảo tàng các di sản
[9] Roman Filkorn, Marek Kocan Slovak, Simulation of human body kinematic, Department of Computer Science and Engineering, University of Technology Bratislava/ Slovak Republic Sách, tạp chí
Tiêu đề: Simulation of human body kinematic
[11] Henry David (2005), “MD5Mesh and MD5Anim files formats”, http://tfc.duke.free.fr/coding/md5-specs-en.html Sách, tạp chí
Tiêu đề: MD5Mesh and MD5Anim files formats
Tác giả: Henry David
Năm: 2005
[13] Andy Beane, 2012, “3D Animation Essentials”,John Wiley &Son, Inc,Canada Sách, tạp chí
Tiêu đề: “3D Animation Essentials”
[14] Steve Roberts, 2011,“Character Animation Fundatmentals”, Focal Press, USA Sách, tạp chí
Tiêu đề: “Character Animation Fundatmentals”
[10] Keyframe Animation; http://www.cadtutor.net/dd/bryce/anim/anim.html Link
[12] Learning Mayay - Character Rigging And Animation. http://www.learning- maya.com/24-0-character-setup-tutorials.html Link
[17] Animation - Keyframe, IKhttp://www.autodesk.com/techpubs/aliasstudio/2010/index.html?url=AnimationIKAddIKhandle.htm,topicNumber=d0e213743 Link
[18] The Art of Maya character Animation; http://www.highend3d.com Link
[32] SELRP: https://en.wikipedia.org/wiki/Slerp [33] Inverse Kinematicshttp://softimage.wiki.softimage.com/xsidocs/ik_AnimatingwithInverseKinematics.htm Link
[34] Inverse Kinematics - Forward kinematics http://blog.digitaltutors.com/understanding-inverse-and-forward-kinematics/ Link
[36] Quaternions and spatial rotation https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation Link
[39] Tutorial 17: Rotations http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-17-quaternions/ Link

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w