Chúng ta có thể kể đến cả các lĩnh vực như: các hệ chuyên gia, các hệ xử lý thời gian thực … Hiện nay, đồ họa máy tính đang là một lĩnh vực hết sức lý thú và được ứng dụng rất nhiều tron
Trang 2LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: PGS.TS Đỗ Năng Toàn
THÁI NGUYÊN - 2016
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan luận văn là công trình nghiên cứu của riêng cá nhân tôi, kết quả của luận văn hoàn toàn là kết quả của tự bản thân tôi tìm hiểu, nghiên
cứu dưới sự hướng dẫn của giáo viên hướng dẫn PGS.TS Đỗ Năng Toàn
Tôi hoàn toàn chịu trách nhiệm về tính pháp lý quá trình nghiên cứu khoa học của luận văn này
Thái Nguyên, tháng 4 năm 2016
HỌC VIÊN
Mai Thị Bính
Trang 4Học viên cũng xin gửi lời cảm ơn tới Ban giám hiệu trường Trung cấp Kinh tế Kỹ thuật Lạng sơn đã tạo điều kiện thuận lợi cho học viên tham gia khóa học vào quá trình hoàn thành luận văn
Và học viên cũng xin gửi lời cảm ơn tới các đồng nghiệp, gia đình và bạn bè những người đã ủng hộ, động viên tạo mọi điều kiện giúp đỡ để học viên có được kết quả như ngày hôm nay
Thái Nguyên,10 tháng 4 năm 2016
Học viên
Mai Thị Bính
Trang 5MỤC LỤC
MỞ ĐẦU 1
Lý do chọn đề tài 1
CHƯƠNG 1 KHÁI QUÁT VỀ ĐỐI TƯỢNG 3D 3
VÀ BÀI TOÁN BIỂU DIỄN NURBS 3
1.1 Khái quát về đối tượng 3D 3
1.1.1 Một số khái niệm về đồ họa 3D 3
1.1.2 Khái niệm về một số chi tiết trong mô hình 7
1.1.2.1 Các điểm (Points) 7
1.1.2.2 Các đường cong(Curves) 8
1.1.2.3 Các Surface 11
1.1.2.4 Mô hình 3D 12
1.1.2.5 Tổng quan về mô hình hóa 13
1.1.2.6 Hệ tọa độ trong không gian 3 chiều 13
1.1.2.7 Quá trình xử lý hiển thị trong đồ họa 3D 15
1.2 Biểu diễn đối tượng 3D 15
1.2.1 Biểu diễn mặt lưới 3D 16
1.2.2 Biểu diễn bề mặt trơn tham số 17
1.2.3 Đường cong tham số NURBS 17
1.2.4.Thư viện xử lý đồ họa OpenGL 20
1.3 Kết luận chương 21
CHƯƠNG 2 22
MỘT SỐ VẤN ĐỀ TRONG BIỂU DIỄN 22
MÔ HÌNH 3D BỞI KỸ THUẬT NURBS 22
2.1 Đường cong tham số NURBS 22
2.1.1 Đường cong – CURVE 22
2.1.2 Điểm biểu diễn đường cong (curve represents points ) 22
2.1.3 Đường cong đa thức bậc ba tham biến 23
2.1.4 Đường cong Hermite 24
Trang 62.1.5 Đường cong Bezier 26
2.1.6 Đường cong B-Splines 29
2.1.6.1 Đường cong bậc ba Splines 29
2.6.1.2 Đường B-Spline 33
2.1.7 Đường cong tham số NURBS 38
2.2 Bề mặt NURBS 40
2.2.1 Mô hình bề mặt (Surface) và các phương pháp xây dựng 40
2.2.1.1 Các khái niệm cơ bản 40
2.2.1.2 Biểu diễn mảnh tứ giác 40
2.2.1.3 Tam giác – Triangular 42
2.2.2 Mặt từ các đường cong 43
2.2.2.1 Mặt cong bậc ba Hermite 43
2.2.2.2 Mặt cong Bezier 45
2.2.2.3 Mặt cong B-spline 48
2.2.2.4 Bề mặt NURBS 49
2.2.2.5 Thuật toán NURBS biểu diễn bề mặt 50
CHƯƠNG 3 CHƯƠNG TRÌNH THỰC NGHIỆM 52
3.1 Bài toán 52
3.2 Phân tích lựa chọn công cụ 53
3.3 Một số kết quả của chương trình 55
PHẦN KẾT LUẬN 62
TÀI LIỆU THAM KHẢO 63
Trang 7DANH MỤC HÌNH ẢNH
Hình 1.1 Minh hoạ tham số của đường cong tại một điểm 9
Hình 1.2 Normal 10
Hình 1.3 Các thành phần chính của một đường cong 11
Hình 1.4 Một cảnh biểu diễn đối tượng 3 chiều 12
Hình 1.5 Hệ tọa độ Descartes ba chiều với trục y 14
có chiều chạy xa người quan sát 14
Hình 1.6 Hệ tọa độ Descartes ba chiều với trục x 14
có chiều chạy về phía người quan sát 14
Hình 1.7 Quá trình xử lý và hiển thị 3D 15
Hình 1.8 Biểu diễn các đường cong và mặt cong 16
Hình 1.9 Lưới tam giác và lưới tứ giác 17
Hình 1.10 Biểu diễn mặt đa giác 17
Hình 1.11 Minh hoạ tiến trình dựng một chiếc cốc đơn giản bằng NURBS 18 Hình 2.1 Đường cong đa thức bậc ba 23
Hình 2.2 Đường cong Hermite 24
Hình 2.3 Đường cong Hermite 26
Hình 2.4 Đường cong Bezier 27
Hình 2.5 Hàm hợp của đường cong Bezier 27
Hình 2.6 Kết nối hai đường cong 30
Hình 2.7 Phân đoạn của đường cong Spline – Hermite 31
Hình 2.8 Đường cong B-spline 35
Hình 2.9 Biểu diễn mảng tứ giác 41
Hình 2.10 Kết nối mảng tứ giác 41
Hình 2.11.Mảnh tam giác 42
Hình 2.12 Mặt cong Hermite và các điểm dữ liệu 44
Trang 8Hình 2.13 Mặt cong Bezier 45
Hình 2.14 Nối hai mảnh Bezier bậc ba 47
Hình 2.15 Bề mặt NURBS 49
Hình 3.1 Biểu diễn mô hình bề mặt Nurbs 55
Hình 3.2 Biểu diễn mô hình bề mặt Nurbs 56
Hình 3.3 Biểu diễn mô hình bề mặt Nurbs 569
Trang 9DANH MỤC TỪ VIẾT TẮT
1 2D Two- dimensional Không gian hai chiều
2 3D Three-dimensional Không gian ba chiều
3 CAD Computer-aided design thiết kế được sự hỗ trợ của
máy tính
4 CP Control point Một điểm điều khiển hình
dạng của một đối tượng
5 CPU Central Processing Unit Bộ xử lí trung tâm
6 CT Computed Tomography chụp quét cắt lớp điện toán
7 CV Control vertex
Một điểm mà điều khiển hình dạng của đường cong NURBS hay bề mặt
8 EP Edit point
Một điểm mà nằm trên đường cong là điểm nối của
đa thức biểu diễn đường cong
9 NURBS Non-Uniform Rational
B-spline
B-spline hữu tỉ không đồng đều
10 OPENGL Open Graphics Library
một tiêu chuẩn kỹ thuật đồ họa có mục đích định ra một giao diện lập trình ứng dụng (tiếng Anh: API)đồ họa 3 chiều
Trang 10MỞ ĐẦU
1 Lý do chọn đề tài
Trong những năm gần đây công nghệ thông tin đã đạt được những bước phát triển nhảy vọt cả về phần cứng lẫn phần mềm Những ứng dụng của nó vào cuộc sống ngày càng phong phú, đa dạng và thiết thực hơn Từ các lĩnh vực cơ bản như khoa học cơ bản, kinh tế, kỹ thuật cho đến các lĩnh vực như giải trí, du lịch, không lĩnh vực nào không có sự ứng dụng thiết thực và hiệu quả của công nghệ thông tin Sự phát triển không ngừng của sức mạnh máy tính đã làm cho một số lĩnh vực khó phát triển trước kia nay đã có khả năng phát triển và đã đạt được những thành tựu đáng kể Chúng ta có thể kể đến cả các lĩnh vực như: các hệ chuyên gia, các hệ xử lý thời gian thực …
Hiện nay, đồ họa máy tính đang là một lĩnh vực hết sức lý thú và được ứng dụng rất nhiều trong cuộc sống, đặc biệt phương pháp mô hình hóa hình học các đối tượng 3 chiều dựa trên mặt cong NURBS đang được quan tâm nghiên cứu và triển khai trong đồ họa ba chiều Hơn thế, phương pháp này đang được ứng dụng để mô hình hóa các vật thể trong các hệ thống CAD/CAM
Các đường cong và các surface NURBS có rất nhiều các ứng dụng và được ưa dùng trong thiết kế công nghiệp và tự động Đây là những nơi các hình dạng trơn tru với lượng dữ liệu tối thiểu là yêu cầu đặt ra Các đường cong NURBS phát huy hiệu quả trong việc tạo ra đường chuyển động liên tục của một đối tượng được hoạt hoá Trong quá trình tìm hiểu và nghiên cứu về
đồ họa máy tính cùng cùng với gợi ý của thầy hướng dẫn học viên đã lựa chọn đề tài “Biểu diễn mô hình 3D bằng kỹ thuật NURBS trong máy tính”
2 Đối tượng và phạm vi nghiên cứu
+ Đối tượng:
- Mô hình đối tượng 3D;
Trang 11- Kỹ thuật NURBS trong biểu diễn đối tượng 3D;
+ Phạm vi:
- Biễu diễn bởi kỹ thuật NURBS để biểu diễn đường cong và bề mặt
mô hình 3D trong máy tính
3 Ý nghĩa khoa học và thực tiễn của đề tài nghiên cứu:
- Hệ thống hóa kỹ thuật biểu diễn đối tượng 3D bởi đường cong NURBS và bề mặt NURBS
- Đề xuất hướng nghiên cứu hỗ trợ cho việc mô phỏng các đối tượng trong thế giới thực, mô phỏng hình học và đặc biệt trong thiết kế công nghiệp
và tự động như sản xuất các hình dáng bên ngoài của tầu, của ô tô, tầu ngầm
và máy bay … và còn thiết kế phông chữ cho các ngôn ngữ khác nhau,…
4 Phương pháp nghiên cứu
- Phương pháp nghiên cứu lý thuyết: Tìm hiểu, tổng hợp tài liệu, phân tích, đánh giá các phương pháp
- Phương pháp trao đổi khoa học, lấy ý kiến chuyên gia
- Phương pháp thực nghiệm: xây dựng chương trình cụ thể để thử nghiệm, phân tích, đánh giá kết quả đạt được
5 Luận văn gồm ba phần chính:
Chương 1 Khái quát về đối tượng 3D và bài toán biểu diễn NURBS Chương 2 Một số vấn đề trong biểu diễn mô hình 3D bởi kỹ thuật NURBS;
Chương 3 Chương trình thử nghiệm
Trang 12CHƯƠNG 1 KHÁI QUÁT VỀ ĐỐI TƯỢNG 3D
VÀ BÀI TOÁN BIỂU DIỄN NURBS
Nội dung chính của chương sẽ trình bày những khái niệm cơ bản về đồ họa ba chiều theo định hướng của đề tài và các khái niệm biểu diễn mô hình 3D, biểu diễn đường cong và bề mặt
1.1 Khái quát về đối tượng 3D
1.1.1 Một số khái niệm về đồ họa 3D
Đồ họa máy tính là một lĩnh vực khoa học nghiên cứu về các thuật toán cũng như kĩ thuật cho phép tạo, hiển thị và điều khiển hình ảnh trên màn hình máy tính Đồ họa máy tính có liên quan đến đại số, hình học giải tích, hình học họa hình, quang học, kĩ thuật máy tính và chế tạo phần cứng (các loại màn hình, các thiết bị xuất, nhập, các vi mạch đồ họa )[1]
Hệ đồ họa bao giờ cũng có hai thành phần chính đó là phần cứng và phần mềm Phần cứng gồm thiết bị hiển thị và nhập dữ liệu, … Phần mềm gồm công cụ lập trình và các trình ứng dụng đồ họa Công cụ lập trình cung cấp tập các hàm đồ họa có thể được dùng trong các ngôn ngữ lập trình cấp cao như C, Pascal, Các hàm cơ sở của đồ hoạ bao gồm việc tạo đối tượng
cơ sở của hình ảnh như đoạn thẳng, đa giác, đường tròn, …, thay đổi màu sắc, chọn khung nhìn, áp dụng các phép biến đổi, …Ứng dụng đồ họa được thiết
kế cho những người dùng không phải là lập trình viên tạo được đối tượng, hình ảnh, … mà không cần quan tâm tới việc chúng được tạo ra như thế nào
Ví dụ như là Photoshop, AutoCAD, …
Việc thể hiện các đối tượng 3D trên máy tính là cần thiết vì phần lớn các đối tượng trong thế giới thực là đối tượng 3D còn thiết bị hiển thị chỉ hiển thị ảnh 2 chiều Do vậy muốn có hình ảnh 3 chiều ta cần phải giả lập Biểu diễn đối tượng 3D bằng máy tính phải tuân theo quy luật về phối
Trang 13cảnh, ánh sáng, tối… giúp người xem nhìn thấy hình ảnh gần đúng nhất Chiến lược cơ bản là chuyển đổi từng bước Hình ảnh sẽ được hình thành ngày càng chi tiết hơn
Khi mô hình hóa và hiển thị một hình ảnh 3D chúng ta xét rất nhiều khía cạnh và các vấn đề khác nhau không đơn giản là thêm một tọa độ thứ 3 cho các đối tượng Bề mặt đối tượng có thể được xây dựng bởi nhiều tổ hợp khác nhau của mặt phẳng và mặt cong, đôi khi chúng ta còn mô tả một số thông tin bên trong đối tượng Khi biểu diễn đối tượng 3 chiều bằng máy tính ta cần quan tâm các vấn đề sau:
Phương pháp biểu diễn
Có 2 phương pháp biểu diễn đối tượng 3 chiều là phương pháp biểu diễn bề mặt và biểu diễn theo phân hoạch không gian
Phương pháp biểu diễn bề mặt mô tả đối tượng bằng một tập hợp các
bề mặt giới hạn phần bên trong của đối tượng với môi trường bên ngoài Thông thường ta xấp xỉ các bề mặt phức tạp bởi các mảnh nhỏ hơn gọi là các patch (mặt vá) Các mảnh này có thể là các đa giác hoặc các mặt cong
Phương pháp phân hoạch không gian thường dùng để mô tả các thuộc tính bên trong đối tượng
Các phép biến đổi hình học
Khi áp dụng một dãy các phép biến đổi hình học có thể tạo ra nhiều phiên bản của cùng một đối tượng Do đó có thể quan sát vật thể ở nhiều vị trí, nhiều góc độ khác nhau và cảm nhận về các hình ảnh vẽ ba chiều sẽ trực quan, sinh động hơn Các phép biến đổi thường được sử dụng là phép tịnh tiến, phép quy, phép biến dạng… được mô tả bằng các ma trận Ma trận của mỗi phép biến đổi có các dạng khác nhau
Vấn đề chiếu sáng
Tác dụng của việc chiếu sáng là làm cho các đối tượng hiển thị trong
Trang 14máy tính giống với vật thể trong thế giới thực Để thực hiện công việc này cần phải có các mô hình tạo sáng
Vật thể được chiếu sáng nhờ vào ánh sáng đến từ khắp mọi hướng gọi
là ánh sáng xung quanh (ambient light) hay ánh sáng nền (background light) Trên bề mặt có 2 loại hiệu ứng phát sáng là khuếch tán (diffuse light) - ánh sáng đi theo mọi hướng và phản xạ gương (specular light)
Vấn đề tạo bóng
Để tạo bóng ta ứng dụng các mô hình xác định cường độ sáng theo nhiều kiểu khác nhau tùy thuộc bài toán cụ thể Các vật có bề mặt phẳng chỉ cần tính cường độ sáng chung cho một bề mặt là có thể hiển thị đối tượng tương đối thật Các vật có bề mặt cong phải tính cường độ sáng cho từng pixel trên bề mặt Để tăng tốc độ ta xấp xỉ các mặt cong bởi một tập hợp các mặt phẳng Với mỗi mặt phẳng sẽ áp dụng mô hình cường độ không đổi (flat shading) hoặc cường độ nội suy (Gouraud shading, Phong shading) để tạo bóng
Các ứng dụng cơ bản của đồ họa 3D
3D là công nghệ được xây dựng từ các phần mềm máy tính, giúp người
sử dụng có thể quan sát hình ảnh trong không gian ba chiều Ứng dụng của công nghệ này được sử dụng trong một số lĩnh vực đạt hiệu quả cao như Y học, xây dựng, kiến trúc, phim, trò chơi Tại Việt Nam công nghệ này chỉ mới được sử dụng phần lớn trong quảng cáo và kiến trúc
Ứng dụng đồ hoạ 3D trong y tế
Ứng dụng công nghệ hình ảnh 3D thu hút sự chú ý của nhiều người trong lĩnh vực y học Nhiều bác sĩ cũng tận dụng công nghệ mới này phục vụ điều trị bệnh nhân giúp tăng độ chính xác và hiệu quả
Với phương pháp chụp cắt lớp điện toán (CT) hay chụp cộng hưởng từ (MRI) Bác sĩ phải theo dõi hình ảnh 2D trên màn hình, vừa phải tưởng tượng
Trang 15hình ảnh trong không gian 3 chiều đã gặp không ít khó khăn Ứng dụng công nghệ hình ảnh 3D, bác sĩ nhìn được các hình ảnh 3 chiều rõ nét ngay lập tức
và tập trung hơn vào phẫu thuật
Ứng dụng đồ hoạ 3D trong xây dựng kiến trúc
Đối với người thiết kế: có thể vẽ lên không gian 3 chiều, ứng dụng vật liệu thật vào không gian, phối trí và phân tích ánh sáng, thông gió hợp lý nhất cho công trình thiết kế xây dựng làm cho sự kết hợp giữa các yếu tố, bố trí các vật dụng trở nên hài hoà Tính toán tải trọng kết cấu chính xác nhất, đưa
ra giải pháp tiết kiệm vật tư và chi phí nhằm nâng cao năng lực cạnh tranh
Đối với người khách hàng: ứng dụng 3D trong kiến trúc làm cho người xem như đứng ngay trong không gian trong thực tế
Ứng dụng đồ hoạ 3D trong phim, trò chơi
Công nghệ 3D trong phim ảnh đang là xu hướng phát triển của điện ảnh thế giới Ứng dụng tạo hình 3D mang đến cho người xem những trải nghiệm thực sự, những hình ảnh sống động và hấp dẫn Nó cũng được sử dụng để tạo các hiệu ứng phim và thực tại ảo, khán giả sẽ trải nghiệm những hành động,
cử chỉ sống động như thật Trong game, ứng dụng công nghệ 3D để xây dựng
mô hình, và chuyển động cho hình ảnh sắc nét giúp người chơi bao quát được toàn bộ góc nhìn với chất lượng hình ảnh tốt nhất và không bị gián đoạn
Ứng dụng đồ hoạ 3D trong mô phỏng, đào tạo
Hệ thống phần mềm mô phỏng các thí nghiệm bằng hình ảnh minh họa sống động, giúp học sinh dễ nhận biết, tiếp thu và tạo sự hứng thú với môn học Cho phép học sinh, sinh viên được quan sát trực quan các mô hình cụ thể, thấy được những hoạt động, chuyển động của các sự vật, sự kiện được giảng viên trình bày Học sinh được hình dung một cách rõ ràng và đầy đủ các khái niệm về hình học không gian, địa lý vũ trụ, mô hình sinh học hoặc các khái niệm khó tưởng tượng ra trong thế giới hai chiều
Trang 16 Ứng dụng đồ hoạ 3D trong lĩnh vực quốc phòng và an ninh
Những sản phẩm mô phỏng sẽ được áp dụng trong giảng dạy các môn khoa học như Giáo dục quốc phòng, quân sự Người học có thể quan sát chi tiết các hoạt động của các bộ phận cơ khí, quy trình hoạt động và tương tác, những hiện tượng xảy ra trong các hoạt động của vũ khí Công nghệ mô phỏng 3D mô tả chi tiết cụ thể hiện tượng bắn, quá trình chuyển vận của các
bộ phận trong tương tác sự vật, hiện tượng giúp cho học sinh dễ nhận biết, tiếp thu tạo sự hứng thú với môn học
Có thể nói các ứng dụng tiềm năng của công nghệ hình ảnh 3D là
vô hạn và để làm được điều đó ta phải biết cách biểu diễn mô hình 3D trong máy tính
1.1.2 Khái niệm về một số chi tiết trong mô hình
1.1.2.1 Các điểm (Points)
Trong dựng hình, có nhiều thuật ngữ để nói về điểm Mỗi một thuật ngữ lại được áp dụng trong các trường hợp khác nhau
- Control point (CP): Một điểm điều khiển hình dạng của một đối
tượng Ví dụ của CP là các điểm của NURBS (control vertices - CVs), các đỉnh của Polygon (polygonal vertices)
Một đối tượng phải có các điểm điều khiển để biến đổi hình dạng
- Control vertex (CV): Trong dựng hình, một điểm mà điều khiển hình
dạng của đường cong NURBS hay bề mặt thì gọi là control vertex
- Vertex: là một đỉnh Nhiều Vertex thì người ta sử dụng từ vertices
Nó là:
Một điểm trong không gian 3D
Trong dựng đa giác, nó là một góc giao của hai hoặc nhiều face của đa giác
- Edit point (EP): Trong dựng hình, một điểm mà nằm trên đường
Trang 17cong mà là điểm nối của các đa thức biểu diễn đường cong thì được gọi là các Edit point
Thêm các EP đối với một đường cong không ảnh hưởng tới hình dạng của đường cong nhưng tạo ra thêm đoạn (segment) cho đường cong và thêm phần (span) cho bề mặt
EP còn được gọi là các knot
- Multi-knot và CV Multiplicity: Multi-knot là nhiều EP ở trong cùng
một vị trí trong không gian CV multiplicity là nhiều CV ở trong cùng một ví trí trong không gian
Multi-knot và CV muliplicity thường không được mong muốn Vì lý do: thứ nhất là làm tăng dung lượng, thứ hai là không có tác dụng gì cho đường cong và thứ 3 là nhiều công cụ sẽ không làm việc chính xác khi có chúng [2]
đường cong đó người ta gọi là edit points, còn mỗi đoạn đó người ta gọi là segment hay là span
Tuy nhiên không phải lúc nào các đường cong bậc cao cũng phải giảm
Trang 18bớt bậc của nó đi Những đường cong bậc tầm 5 đến 7 có lợi là cho đường cong có vẻ trơn tru hơn và có độ căng Chúng thường được sử dụng trong
thiết kế tự động (automotive design)
Bậc của đường cong cũng xác định độ trơn của các điểm nối giữa các span:
Đường bậc 1 (linear): các đường cong chỉ việc đặt ở các vị liên tiếp nhau
Đường bậc 2 (squadratic): các đường cong đặt tiếp xúc với nhau
Đường bậc 3 (cubic): các độ cong liên tiếp với nhau
- Bậc(degree): Đây là khái niệm để chỉ một span thì có bao nhiêu CV
Đường bậc 1: là các EP đặt thẳng hàng
Đường bậc 2: Có một phần cong giữa các EP
Các bề mặt thì có nhiều bậc theo chiều dài và chiều rộng Có thể chiều rộng bậc 3 nhưng chiều dài lại bậc 4
-Parameter (tham số): Các tham số là các giá trị bằng số duy nhất của các điểm (giống như là toạ độ) nằm trên đường cong hay surface
Hình 1.1 Minh hoạ tham số của đường cong tại một điểm
Tham số mà càng lớn thì điểm nằm càng cao trên đường cong
Đối với đường cong, cần một tham số xác định dọc theo chiều dài đường cong, đó là tham số U
Đối với surface cần một tham số nữa để xác định theo bề rộng của surface, đó là tham số V
- Normal: Nó là đường trực giao tại một điểm nằm trên bề mặt hay
Trang 19đường cong Nó dùng để xác định xem một mặt đang xét là mặt trong (inside) hay mặt ngoài (outside) của bề mặt
Hình 1.2 Normal
- Có thể chia đường cong thành 3 loại: khép kín, đóng, mở (periodic, closed, open)
Khép kín: Có 2 phần đầu và cuối nằm gối lên nhau
Đóng: Có 2 phần: đầu và cuối chung nhau tại một điểm
Mở: Phần đầu và cuối không giao nhau
Đối với đường khép kín, khi dịch chuyển EP đầu thì EP cuối dịch theo Một số đường cong cơ bản là theo kiểu này
Đối với đường cong đóng, khi dịch chuyển EP thì tính đóng bị mất Nên tạo ra đường cong khép kín hơn là đường cong đóng
- Các thành phần của một đường cong:
CV: Số CV trên một đoạn sẽ bằng bậc của đường cong tạo đoạn đó cộng với 1 Ví dụ như một đường cong bậc 3 thì cần đến 4 CV trên nó
EP: CV và EP cho biết có bao nhiêu đoạn tạo ra đường cong đó
Hull: khi vẽ một số đường cong thì có đường nối giữa các CV để thể hiện vết của hình đường cong, đó là hull
Trang 20Hình 1.3 Các thành phần chính của một đường cong
Những thành phần này quyết định đến việc hiển thị của đường cong: Curve direction : đường cong chỉ có một hướng U
Span : khoảng cách giữa 2 điểm Editpoint
Hull : đường nối giữa 2 điểm đã cho
Control Vertex(CV): điểm điều khiển
Biên tập một đường cong nên làm việc với các CV hơn là các EP vì các
EP không làm thay đổi hình dạng của đường cong bằng các CV, dễ gây đổ vỡ hình khối và tăng dung lượng
1.1.2.3 Các Surface
Tạm dịch là bề mặt Trong dựng hình, surface là một tập các đường
cong liên kết với nhau
Trong tạo kết xuất, surface là một lớp bao phủ đối tượng để xác định xem đối tượng đó sẽ phản xạ ánh sáng như thế nào Có thể bề mặt chỉ có một màu nào đó, hoặc có thể là một mẫu vật liệu, một vỏ xù xì, hoặc trơn nhẵn Một số thành phần của surface:
- Isoparm: viết tắt từ cụm từ isoparametric curve Đó là một đường
cong nằm trên surface hay ở một EP có giá trị U hoặc V là hằng số
Trang 21- Đường cong trên bề mặt (curve-on-surface): Là một loại đường cong
nằm trong một vùng tham số nào đó của đường cong Curve-on-surface thường được sử dụng để cắt tỉa surface
Một đối tượng đồ hoạ là một tập các surface Có hai kĩ thuật hiển thị của surface là dạng đổ bóng (shaded surface) và dạng khung (wireframe)
- Shaded surface: Một kĩ thuật hiển thị cho phép một đối tượng hình
học được trình bày ở dạng đổ bóng kín một bề mặt
- Wireframe: Một kĩ thuật hiển thị cho phép một đối tượng hình học
được trình bày ở dạng là một tập các đường là khung của mô hình
Hình 1.4 Một cảnh biểu diễn đối tượng 3 chiều
Trang 22Trong 3D đồ họa máy tính, mô hình 3D là quá trình phát triển một đại diện toán học của bất kỳ ba chiều bề mặt của một đối tượng (hoặc là vô tri vô giác, sinh sống) thông qua phần mềm chuyên dụng Sản phẩm này được gọi
là mô hình 3D
1.1.2.5 Tổng quan về mô hình hóa
Trong kỹ thuật biểu diễn, người ta phân thành hai nhóm: mô hình hóa vật thể và mô hình hóa hình học
Kỹ thuật mô hình hóa hình học được phát triển trong các ngành công nghiệp tự động hóa và chủ yếu được sử dụng để thiết kế các hình dạng của xe hơi Hiện nay, mô hình này còn được ứng dụng trong các ngành như công nghiệp hàng không, hải quân… và một số lĩnh vực khác Mô hình này cũng
hỗ trợ chính cho việc điều khiển về mặt hình dạng
Kỹ thuật mô hình hóa vật thể được xây dựng dựa trên các thông tin biểu diễn đầy đủ, chính xác, rõ ràng một đối tượng trong không gian chúng có thể tạo ra các mô hình trên máy tính với khả năng phân loại bất
kỳ điểm nào trong không gian ba chiều: phía trong, phía ngoài, hoặc là trên bề mặt của đối tượng
1.1.2.6 Hệ tọa độ trong không gian 3 chiều
Không gian ba chiều là một mô hình hình học có ba thông số trong
đó bao gồm tất cả các vật chất được chúng ta biết đến Ba chiều được nhắc đến ở đây thường là chiều dài, chiều rộng, chiều cao (hoặc chiều sâu) Ba hướng bất kì nào cũng có thể được chọn, miễn là chúng không nằm trong cùng một mặt phẳng
Là 3 trục vuông góc nhau từng đôi một x'Ox, y'Oy, z'Oz mà trên đó đã chọn 3 véc-tơ đơn vị i, j, k sao cho độ dài của 3 véc-tơ này bằng nhau
Hệ tọa độ Descartes
Trang 23Hình 1.5 Hệ tọa độ Descartes ba chiều với trục y
có chiều chạy xa người quan sát
Hình 1.6 Hệ tọa độ Descartes ba chiều với trục x
có chiều chạy về phía người quan sát
Hệ tọa độ cực
Hệ tọa độ cực là một hệ tọa độ hai chiều trong đó mỗi điểm M bất kỳ
trên một mặt phẳng được biểu diễn bằng 2 thành phần:
Trang 24 Khoảng cách từ điểm đó tới một điểm gốc O (gốc Cực) gọi là bán kính
Góc tạo bởi đường thẳng OM với hướng gốc cho trước (trục Cực)
Hệ tọa độ cực hữu ích trong những trường hợp trong đó quan hệ giữa hai điểm dễ được viết dưới dạng góc và khoảng cách Trong các hệ tọa độ thông thường như hệ tọa độ Descartes, quan hệ này chỉ có thể được biểu diễn dưới dạng công thức lượng giác
1.1.2.7 Quá trình xử lý hiển thị trong đồ họa 3D
Hình 1.7 Quá trình xử lý và hiển thị 3D
1.2 Biểu diễn đối tượng 3D
Khi biểu diễn một đối tượng ba chiều, ta cần phải xem xét nhiều khía cạnh Cụ thể như đường cong, mặt cong của đối tượng Ngoài ra, cần thêm một số thông tin về thuộc tính của đối tượng
Có nhiều phương pháp khác nhau để mô tả các đối tượng 3D Tùy thuộc vào từng đối tượng cụ thể, có thể dùng các phương pháp thích hợp với thuộc tính của các loại đối tượng đó Chẳng hạn để biểu diễn các đối tượng như mặt tròn xoay, các đối tượng dùng để thiết kế các mô hình máy bay, bánh răng… thường được sử dụng thông qua mặt cong tham số
Trang 25Các đối tượng trong thế giới thực phần lớn là các đối tượng ba chiều còn các thiết bị hiển thị chỉ biểu diễn hai chiều Do vậy muốn có hình ảnh ba chiều ta cần phải tiến hành giả lập Ngoài ra khi chúng ta mô hình hoá và hiển thị một đối tượng ba chiều, ta cần phải xem xét rất nhiều khía cạnh khác nhau như mặt phẳng, mặt cong và một số thông tin về bên trong các đối tượng Biểu diễn mô hình ta có thể biểu diễn dưới dạng mô hình khung dây,
mô hình lưới đa giác, …
Biểu diễn mô hình dạng khung dây cho ta thấy được các chi tiết bên trong của mô hình, sử dụng các phương pháp di chuyển, xoay, xoá đi các đường khuất (để thể hiện mô hình dạng mặt)
Hình 1.8 Biểu diễn các đường cong và mặt cong
1.2.1 Biểu diễn mặt lưới 3D
Việc sử dụng mô hình khung lưới cho phép ta hình dung được kết cấu bên trong của một mô hình 3D bằng cách xoay chuyển đối tượng và chọn lựa xóa các đường ẩn (những đường mà thường khi người ta không thể trông thấy thông qua các mặt phẳng cắt ngang)
Khi thể hiện bằng mô hình này, các đối tượng này không giống thực tế lắm Vì vậy người ta dùng các kỹ thuật tạo bóng và loại bỏ các đường và mặt khuất Mô hình này thường nhanh nên người ta thường dùng nó trong việc xem phác thảo (preview) các đối tượng, đặc biệt là trong các hệ CAD
Trang 26Một dạng thông thường của lưới đa giác là các dãy tam giác (triale strip) Khi đa giác được mô tả bởi nhiều hơn ba đỉnh, các đỉnh của nó có thể không đồng phẳng Điều này có thể dẫn đến các lỗi tính toán Một phương pháp đơn giản là phân đa giác này thành các tam giác
Hình 1.9 Lưới tam giác và lưới tứ giác
Hình 1.10 Biểu diễn mặt đa giác
1.2.2 Biểu diễn bề mặt trơn tham số
Trong trường hợp các đối tượng thực sự phức tạp, người ta thường dùng một hay nhiều mặt cong trơn ghép nối lại với nhau Mỗi thành phần dùng để ghép nối được gọi là mặt vá (patch)
1.2.3 Đường và mặt cong tham số NURBS
NURBS là từ viết tắt của Non-Uniform Rational B-Spline Đây là một kiểu hình khối bao gồm các đường cong (curves), các mảng ráp (patches), các
bề mặt (surfaces)
Trang 27NURBS là một tập hợp rộng lớn các đường cong conic, splines và Bezier Chúng có khả năng phù hợp đặc biệt trong 3D bởi vì chúng cung cấp tính liên tục rất hoàn hảo với một lượng tối thiểu các điểm điều khiển (control points)
Non-Uniform là phần tham số hoá của đường cong
Rational là phương trình hữu tỉ của đường cong Tính chất này cho phép NURBS có thể thể hiện các đường conic cũng như các đường cong đa dạng khác một cách chính xác
B-splines là các đường cong đa thức có thể hiện theo tham số
Điều đặc biệt của NURBS chính là sử dụng các phương trình tham
số để biểu diễn đường cong và các phương trình này phù hợp cho biểu diễn trong 3D
Sử dụng các mô hình kiểu NURBS khi muốn dựng các bề mặt có độ trơn nhẵn cao Ví dụ: hình cầu
Với tầm quan trọng của mình, NURBS đã được tập trung nghiên cứu trong 3 thập kỉ gần đây Khi dựng hình, thường dựng những phần đơn giản bằng Polygon còn những phần có nhiều đường cong, đòi hỏi độ nhẵn mịn cao thì thường người ta sử dụng NURBS
Hình 1.11 Minh hoạ tiến trình dựng một chiếc cốc đơn giản bằng NURBS
Trang 28Các đường cong và các surface NURBS cĩ rất nhiều các ứng dụng và được
ưa dùng trong thiết kế cơng nghiệp và tự động Đây là những nơi các hình dạng trơn tru với lượng dữ liệu tối thiểu là yêu cầu đặt ra Các đường cong NURBS phát huy hiệu quả trong việc tạo ra đường chuyển động liên tục của một đối tượng được hoạt hố
Tĩm lại, NURBS là một mơ hình tốn học được sử dụng trong kĩ thuật đồ họa máy tính để biểu diễn đường cong và bề mặt
Việc phát triển NURBS được bắt đầu từ những năm 1950 bởi những
kĩ sư cần các biểu diễn tốn học chính xác của các bề mặt tự do như vỏ của tàu thủy, bề mặt bên ngồi của tàu khơng gian vũ trụ và vỏ ơtơ, những thứ mà cĩ thể sản xuất lại một cách chính xác bất cứ khi nào bằng kĩ thuật Trước đĩ, loại bề mặt như vậy chỉ được biểu diễn bởi một mơ hình tạo bởi một người thiết kế mỹ thuật cơng nghiệp
Những người tiên phong cho cuộc phát triển này cĩ Pierre Bézier,
kỹ sư của Renault và Paul de Casteljau làm việc cho Citroën, cả hai đều
ở Pháp Bézier đã làm việc gần như đồng thời với de Casteljau, khơng ai biết về cơng việc của người kia Nhưng bởi vì Bézier đã cơng bố thành quả của ơng ta, những người sử dụng cơng nghệ đồ họa máy tính ngày này cơng nhận đường Spline được biểu diễn với các điểm điều khiển giữ cữ cho đường cong là đường cong Bézier splines, Trong khi tên tuổi của de Casteljau chỉ được biết và dùng cho thuật tốn mà ơng ấy phát triển để ước định bề mặt tốn học điều khiển tham số Vào những năm 1960 mọi việc đã trở nên rõ ràng rằng non-uniform rational B-splines là sự khái quát hĩa của đường cong Bézier splines
Lúc đầu NURBS chỉ được sử dụng trong thuộc tính của gĩi phần mềm CAD của các cơng ty ơtơ Sau này chúng trở thành một phần của chuẩn gĩi chuẩn đồ họa máy tính
Trang 29Quá trình dựng ảnh tương tác thời gian thực của đường cong và bề mặt NURBS được tạo bởi máy trạm làm việc silicon vào năm 1989 Vào năm
1993 công cụ mô hình hóa tương tác NURBS cho máy tính cá nhân gọi là NURBS, đã được phát triển bởi CAS Berlin, một công ty nhỏ mới hình thành liên kết với trường đại học kĩ thuật Berlin Ngày nay hầu hết các ứng dụng đồ họa máy tính chuyên nghiệp có sẵn cho máy tính để bàn đều sử dụng kỹ nghệ NURBS, các ứng dụng này thông thường nhất được thực hiện bởi việc kết hợp một công cụ NURBS từ một công ty chuyên sâu
Một đường cong NURBS được xác định bởi các thông số: bậc, tập điểm điều khiển có trọng số và một vector knot Đường và mặt cong NURBS
là trường hợp tổng quát của đường, mặt cong B-spline and Bézier, điểm khác biệt cơ bản là các điểm điều khiển đã được gán trọng số, khiến cho đường cong NURBS có tỉ lệ
1.2.4.Thư viện xử lý đồ họa OpenGL
OpenGL là một tiêu chuẩn kỹ thuật đồ họa nhằm mục đích tạo ra một giao diện lập trình ứng dụng đồ họa 3D được phát triển đầu tiên bởi Silicon Graphic, Inc OpenGL đã trở thành một chuẩn công nghiệp và các đặc tính kỹ thuật của OpenGL do Uỷ ban kỹ thuật ARB OpenGL cho phép phát triển các ứng dụng đồ họa sử dụng nhiều ngôn ngữ lập trình khác nhau như C/C++, Java, Delphi, v.v…, tuy nhiên OpenGL cũng có thể được dùng trong ứng dụng đồ họa 2D Giao diện lập trình này chứa khoảng 250 hàm để vẽ các cảnh phức tạp từ những hàm đơn giản và được ứng dụng rộng rãi trong các trò chơi điện tử Ngoài ra còn được dùng trong các ứng dụng CAD, thực tại ảo, mô phỏng khoa học, mô phỏng thông tin, phát triển trò chơi OpenGL sử dụng hệ tọa độ theo quy tắc bàn tay phải
Trang 30Tuy nhiên trong các ứng dụng đồ họa máy tính, hầu hết các đối tượng được biểu diễn dưới dạng phương trình không tham số chưa thể hiện ý tưởng người thiết kế Với những bề mặt có độ lồi lõm bất kỳ thì đòi hỏi khi thay đổi
vị trí của một điểm điều khiển thì yêu cầu phải có sự thay đổi cục bộ chứ không phải toàn cục trên bề mặt Để đáp ứng yêu cầu trên ta sử dụng kiểu vectơ nút (vector knot) không đều và mặt cong NURBS cho việc biểu diễn các đối tượng phức hợp 3D Do vậy trong chương 2 sẽ đưa ra phương pháp tổng thể về những mô hình toán học để biểu diễn và xây dựng các loại đường
và mặt cong phức hợp trong không gian 3D trên máy tính mà ta gọi là đường cong và mặt cong tham số NURBS
Trang 31CHƯƠNG 2 MỘT SỐ VẤN ĐỀ TRONG BIỂU DIỄN
MÔ HÌNH 3D BỞI KỸ THUẬT NURBS
Nội dung chính của chương này hệ thống hóa một số vấn đề trong biểu diễn mô hình 3D bởi đường cong và mặt cong NURBS
2.1 Đường cong tham số NURBS
2.1.1 Đường cong – CURVE
Trong các ứng dụng của đồ hoạ máy tính, hầu như các thực thể là đường cong mềm và mặt cong, chúng dùng để mô tả thế giới thực: nhà cửa,
xe cộ, núi non….hay xây dựng nên các thực thể đang được thiết kế Nhưng ta thấy sử dụng các phương trình đường cong không thể hiện được hình ảnh thực hay ý tưởng của người thiết kế, còn nếu ta dùng tập hợp các điểm thì thường cần nhiều dung lượng nhớ để lưu trữ cũng như tốc độ tính toán
2.1.2 Điểm biểu diễn đường cong (curve represents points )
Ta thấy qua hai điểm vẽ được một đường thẳng Qua ba điểm vẽ được một đường cong trong mặt phẳng Qua bốn điểm vẽ được một đường cong trong không gian Dùng các phương trình đường cong như Hypebol, parabol, thì tính toán phức tạp và không thể hiện được hình ảnh thực hay ý tưởng của người thiết kế
Chọn đường cong như thế nào để phù hợp với máy tính? Biểu diễn và
điều khiển đường cong thông qua điểm điều khiển Đường cong là các đối
tượng cơ bản thường là kết quả của tiến trình thiết kế và các điểm đóng vai trò
là công cụ để kiểm soát và mô hình hoá đường cong Cách tiếp cận này là cơ
sở của lĩnh vực thiết kế mô hình hình học nhờ máy tính (Computer Aided
Geometric Design - CAGD)
Các cách để biểu diễn đường cong:
Tường minh (Explicit functions): y = f(x), z = g(x)
Trang 32 Không tường minh (Implicit equations): f(x,y,z) = 0
Biểu diễn các đường cong tham biến (Parametric representation)
x = x(t), y = y(t), z = z(t) trong đó t [0 1]
Hạn chế:
Hệ đồ hoạ ứng dụng chỉ mô tả bó hẹp trong đoạn nào đấy
Đường cong bậc cao với mỗi giá trị của x ta luôn có 2 tập giá trị của
y (thực tế chỉ cần 1)
Chúng ta cần biểu diễn đường cong mềm (chỉ biễu diễn đường
“cong gẫy”)
2.1.3 Đường cong đa thức bậc ba tham biến
Phải đảm bảo là đường cong không gian với 3 tọa độ x, y, z Tránh được những tính toán phức tạp và những phần nhấp nhô ngoài ý muốn xuất hiện ở những đa thức bậc cao
Công thức mô tả:
Tường minh : y = f3(x), z = g3(x)
Không tường minh: f3(x,y,z) = 0
Hình 2.1 Đường cong đa thức bậc ba
Biểu diễn các đường cong tham biến:
x = f3(u), y = f3(u), z = f3(u) trong đó u [0, 1]
Theo Lagrange:
x = a1 + b1u + c1u2 + d1u3
Trang 33y = a2 + b2u + c2u2 + d2u3
z = a3 + b3u + c3u2 + d3u3
Ở đây ba phương trình với 12 ẩn số
Với bốn điểm p0, p1, p2, p3 phương trình xác định (vì bốn điểm thì xác định một đường cong trong không gian)
Mỗi một điểm cho 3 cặp giá trị:
Tất cả có 12 phương trình, thay vào 3 phương trình trên ta tính được 12
ẩn a1….d3
Ghi chú: rõ ràng có sự thay đổi một chút về đường cong thì ta lại phải giải lại hệ phương trình để tính các tham số cho đường cong, dẫn đến tính toán chậm
2.1.4 Đường cong Hermite
Phương pháp Hermite dựa trên cơ sở của cách biểu diễn Ferguson hay Coons năm 60 Với phương pháp của Hermite đường bậc ba sẽ xác định bởi hai điểm đầu và cuối cùng với hai góc nghiêng tại hai điểm đó
Hình 2.2 Đường cong Hermite
Theo công thức toán học hàm bậc ba được biểu diễn dưới dạng:
Trang 34Độ dốc của đường cong được đo bằng p’(u)
P0 và p1 ta có hai độ dốc p0’ và p1’ với u = 0 và u = 1 tại hai điểm đầu, cuối của đoạn [0, 1]:
Trang 35Hình 2.3 Đường cong Hermite
2.1.5 Đường cong Bezier
Việc sử dụng điểm với các vector kiểm soát được độ dốc của đường cong tại những điểm mà nó đi qua Tuy nhiên không được thuận lợi cho việc thiết kế tương tác, không tiếp cận với các độ dốc của đường cong bằng các giá trị số (Hermite)
Paul Bezier, nhân viên hãng RENAULT vào năm 1970 đi đầu trong việc ứng dụng máy tính cho việc xây dựng các bề mặt Hệ thống UNISURF của ông được áp dụng trong thực tế vào năm 1972 được thiết kế và kiểm xe Mezesez hay Renaut
Bezier đã sử dụng đa giác kiểm soát cho đường cong tại những đỉnh của đa giác và tiếp tuyến tại đó (p0, p1, p2, p3)
Ta có p0, p3 tương tác với p0, p1 trên đường Hermite, điểm trung gian p1, p2 được xác định bằng 1/3 theo độ dài của vector tiếp tuyến tại điểm p0 và p3
Trang 36Hình 2.4 Đường cong Bezier
Hình 2.5 Hàm hợp của đường cong Bezier
Ưu điểm:
Dễ dàng kiểm soát hình dạng của đường cong hơn vector tiếp tuyến tại
p0’ và p1’ của Hermite;