phần mở đầu, nắn chỉnh đối tượng 3D là một trong những bài toán quan trọng của đồ họa máy tính nói chung và đồ họa ba chiều nói riêng, đặc biệt là trong các ứng dụng về mô phỏng trong Thực tại ảo. Dưới đây, tôi xin trình bày ngắn gọn về bài toán này. GIỚI THIỆU Bài toán nắn chỉnh biến dạng đối tượng đã được các nhà khoa học trên toàn thế giới quan tâm nghiên cứu từ rất lâu. Một trong những nghiên cứu đầu tiên có thể kể đến đó là ý tưởng của các nhà cơ khí, họ muốn thực hiện các thử nghiệm cho các thiết kế của mình.
Khi họ cho các sản phẩm thiết kế như máy móc, xe hơi. tương tác va chạm với nhau, từ đó tính toán sự biến dạng của các đối tượng. Ban đầu họ thực hiện trên các mô hình thực tế bằng cách xây dựng các mô hình thật cho các thiết kế và sau đó cho chúng va chạm với nhau và họ xác định mức độ biến dạng trực tiếp trên đối tượng. Họ thấy rằng cách làm này khá phức tạp và tốn kém, vì mỗi lần họ thực hiện thử nghiệm, họ phải tạo ra các mô hình mẫu thật, sau một lần thử nghiệm họ lại phải làm lại mô hình, rất mất thời gian và tốn kém.
Họ bắt đầu nghĩ đến việc sẽ chuyển bài toán này lên thành bài toán mô phỏng các va chạm, tương tác giữa các đối tượng trên máy tính. Cách tiếp cận vấn đề này của họ là đầu tiên họ sẽ xây dựng các máy mọc, xe cộ v. bằng mô hình 3D, sau đó họ thêm các tham số cho các mô hình 3D này để có thể tính toán được sự biến dạng sau khi tương tác với các đối tượng khác. Cách làm này cho thấy sự tiện dụng và hiệu quả, họ có thể chỉ cần phải xây dựng các mô hình 3D này một lần trên máy tính và sau đó dùng lại.
Họ có thể dễ dàng thay đổi các tham số cho các thí nghiệm va chạm và tính toán mức độ biến dạng. Điều này cho phép họ có thể thực hiện được nhiều tính toán, thử nghiệm hơn. Tiếp đến là các nhà điện ảnh, bài toán của họ gặp phải cũng có độ phức tạp không kém các nhà cơ khí, thậm chí còn phức tạp hơn. Mỗi một cảnh phim, họ phải phá hủy đi rất nhiều công trình, đồ đạc v.
mà họ phải rất mất công mới xây dựng lên. Tiếp nữa là trong điện ảnh, các kỹ xảo biến hình là vô cùng quan trọng, họ thường phải mất nhiều ngày mới có thể xây dựng xong một cảnh biến hình cho một nhân vật nào đó, rất mất thời gian và tốn kém. Công nghệ đồ họa ra đời, như một phép mầu với điện ảnh. Họ hoàn toàn có thể xây dựng các môi trường, cảnh quay 3D trên máy tính, thực hiện các vụ nổ, các kỹ xảo phức tạp trên máy tính và sau đó ghép vào cảnh phim.
Họ có thể dễ dàng thực hiện biến đổi từ nhân vật này thành nhân vật khác hoặc những biến đổi trên chính nhân vật một cách dễ dàng trên máy tính. Cách tiếp cận của họ cũng gần giống với cách nhà cơ khí, đầu tiên họ cũng thực hiện mô hình hóa 3D các z 17 cảnh quay, các nhân vật giống với các nhân vật ngoài thực tế. Cách nhân vật 3D này đóng vai trò như các diễn viên đóng thế để thực hiện các cảnh quay phức tạp như sự biến đổi từ người thành quái thú, cảnh quay các ô tô bị méo mó sau một vụ tai nạn v. và còn rất nhiều ý tưởng của các nhà chuyên môn khác, cũng nghiên cứu liên quan đến vấn đề nắn chỉnh biến dạng đối tượng.
Những bài toán thực tế phải đối mặt đã góp phần thúc đẩy các nghiên cứu về đồ họa máy tính nói chung và các nghiên cứu về nắn chỉnh biến dạng đối tượng 3D nói riêng. Bài toán nắn chỉnh biến dạng đối tượng 3D khi thực hiện trên máy tính cũng gặp không ít những thách thức cả về độ phức tạp lẫn thời gian tính toán cho các quá trình nắn chỉnh và biến đổi đối tượng 3D. Hơn thế nữa việc mô hình hóa đối tượng 3D một cách tối ưu, làm cho mô hình vừa nhẹ lại vừa đảm bảo độ chi tiết và phù hợp với phương pháp nắn chỉnh biến dạng cũng không phải là việc dễ dàng. Để giải quyết vấn đề này, đã có rất nhiều cách giải quyết được đưa ra, phần tiếp theo tôi trình bày về một số hướng tiếp cận chính để giải quyết bài toán này.
MỘT SỐ HƯỚNG TIẾP CẬN Nắn chỉnh biến dạng đối tượng bao gồm hai pha chính: pha thứ nhất là mô hình hóa đối tượng thành đối tượng 3D, pha thứ hai là nắn chỉnh biến dạng. Thường thì pha thứ nhất sẽ góp phần quan trọng cho kết quả và thời gian tính toán cho pha thứ hai, nếu việc mô hình hóa tốt thì việc nắn chỉnh biến dạng sẽ chính xác hơn và tối ưu hơn. Việc mô hình hóa đối tượng 3D có rất nhiều phương pháp khác nhau như đã trình bày trong mục 1.3, mỗi một cách xây dựng đối tương 3D lại có ưu và nhược điểm khác nhau. Dựng từ ảnh thì mô hình thường nhẹ, tối ưu về mặt hình học nhưng độ chính xác của mô hình lại hạn chế, còn dựng mô hình bằng máy Scan 3D thì thường cho độ chính xác và chi tiết cao nhưng mô hình lại nặng.
Điều này có ảnh hưởng rất lớn tới quá trình nắn chỉnh đối tượng, nếu mô hình nhẹ, hình học tối ưu thì việc nắn chỉnh sẽ nhanh và ngược lại. Dựa trên các nghiên cứu về đối tượng 3D có thể đưa ra ba cách tiếp cận phổ biến cho bài toán này gồm: Tiếp cận dựa vào phân vùng đối tượng Tiếp cận này thực hiện bằng cách phân bề mặt của đối tượng 3D thành nhiều vùng riêng biệt, hoặc cũng có thể có ràng buộc giữa các vùng với nhau, mỗi một vùng sẽ được áp dụng thống nhất một phép nắn chỉnh. Việc phân vùng cho đối tượng cũng là một pha rất quan trọng trong hướng tiếp cận này, phân vùng có chính xác, tối tưu thì nắn chỉnh mới hiệu quả. Phân vùng đối tượng thường được thực hiện dựa trên hai phương pháp chính dó là phân vùng cứng và phân vùng động.
Phân vùng cứng tức là chúng ta sẽ phân vùng đối tượng thành các vùng riêng biệt và cố định trên đối tượng, z 18 phân vùng động tức là chúng ta sẽ thực hiện tính toán vùng ảnh hưởng tùy ý mỗi khi thực hiện nắn chỉnh. Một số nghiên cứu thuộc cách tiếp cận này có thể kể đến như: Khi nghiên cứu, giải quyết bài toán tạo sự biến đổi cho hoạt hình khuôn mặt, năm 2003 Tong-Yee Lee và Po-Hua Huang [20] đã đề xuất một phương pháp biến đổi mô hình khuôn mặt 3D nguồn thành khuôn mặt 3D đích dựa vào nắn chỉnh biến dạng, phương pháp mà hai ông đưa ra là phân chia khuôn mặt thành các vùng cứng, sau đó áp dụng các phép nắn chỉnh, biến đổi lên các vùng đó nhằm làm tăng độ chính xác và thời gian tính toán. Chúng ta có thể hình dung một cách rõ hơn về nghiên cứu này qua hình 1. a) Đầu vào b) Kết quả đầu ra Hình 1.
Nghiên cứu của Tong-Yee Lee và Po-Hua Huang Vào năm 2005, Yong Joo Kim và cộng sự đã khái niệm “3D Warp Brush” [20]. Trong nghiên cứu của mình, mỗi một lần thực hiện một biến đổi trên mô hình họ sẽ tính toán vùng ảnh hưởng tại một điểm (giả sử là điểm con trỏ chuột) lên các vùng xung quanh và thực hiện biến đổi vùng này theo điểm ban đầu. Nghiên cứu của Yong Joo Kil và cộng sự z 19 Một nghiên cứu khác, năm 2014 Henry Schäfer và cộng sự đã nghiên cứu về việc nắn chỉnh đối tượng 3D bằng cách thực hiện phân vùng động và tính toán trên GPU, kết quả nghiên cứu cho thấy phương pháp này khác hiệu quả và có tính ứng dụng cao [22]. Nghiên cứu của Henry Schäfer và cộng sự Nhận xét: Qua việc điểm qua các nghiên cứu, chúng ta thấy rằng phương pháp tiếp cận này có ưu điểm với các đối tượng có sự biến đổi mang tính cục bộ cao (như biểu cảm của khuôn mặt) và thời gian tính toán nhanh vì thực hiện trên nhiều vùng nhỏ, nhưng vấn đề gặp phải là ở biên của các vùng và việc ghép nối các vùng lại với nhau mà vẫn đảm bảo tính trơn của bề mặt đối tượng.
Về cơ bản, các bước thực hiện chính của phương pháp này bao gồm: Bước 1: Phân vùng bề mặt hình học của đối tượng (Phân vùng được thực hiện một cách tự động hoặc thủ công, tùy thuộc vào đối tượng). Bước 2: Lựa chọn hàm biến đổi cho các vùng (Việc lựa chọn hàm biến đổi phụ thuộc rất nhiều vào yêu cầu biến đổi đặt ra, thông thường với những biến đổi đơn giản người ta hay chọn các phép biển đổi afine như phương pháp dựa vào Hệ tọa độ Barycentric. Phương pháp này sẽ được tôi trình bày chi tiết và cụ thể trong mục 2. Còn với những biến đổi phức tạp thường người ta hay chọn các phép biến đổi bậc cao).
Bước 3: Tính toán dữ liệu trong vùng theo hàm biến đổi (Sau khi đã lựa chọn phương pháp biến đổi cho từng vùng, với mỗi một kỹ thuật được lựa chọn thì việc tính toán lại khác nhau tùy thuộc vào từng kỹ thuật). Tiếp cận dựa vào điểm điều khiển Bề mặt đối tượng 3D sẽ được đặc trưng và điều khiển bởi một tập điểm (tập điểm điều khiển), khi chúng ta biến đổi tập điểm này, thì dữ liệu của đối tượng sẽ biến z 20 đổi theo. Cách tiếp cận này thường được thực hiện qua hai pha: pha thứ nhất là xác định tập điểm điều khiển và mối quan hệ giữa chúng với toàn bộ dữ liệu của đối tượng, pha thứ hai là nắn chỉnh. Việc nắn chỉnh được thực hiện: trước tiên chúng ta sẽ tìm hàm biến đổi từ sự biến đổi của tập điểm điều khiển, sau đó áp dụng hàm biến đổi này lên toàn bộ đối tượng để thu được kết quả.
Đây có thể là cách tiếp cận phổ biến nhất cho bài toán nắn chỉnh biến dạng đối tượng 3D, nên có rất nhiều các nghiên cứu liên quan tới cách tiếp cận này. Parry [23] đã đưa ra nghiên cứu về việc biến đổi tự do hình học của đối tượng rắn 3D sử dụng các khối bao đối tượng. Trong báo cáo của mình, nhóm cho rằng kỹ thuật mà họ đề xuất có thể được sử dụng với bất kỳ hệ thống mô hình rắn, chẳng hạn như CSG hay B-rep.