Morphing

Trong video clip bài Black and White của Michael Jackson có đoạn cuối khá thú vị: những khuôn mặt biến đổi từ từ.

thumbnailImage

Hiệu ứng này gọi là Morphing. Vào đầu thập niên 90, với sự trợ giúp của phần mềm máy tính, các hiệu ứng Morphing đã trở nên rất thật và tự nhiên. (Và thế là Michael Jackson áp dụng ngay vào video clip của mình, phỏng?).

Chúng ta thử tìm hiểu xem Morphing hoạt động như thế nào.

Xét hai bức ảnh của Bill Gates và Steve Jobs:

bill_gates steve_jobs

Một cách Morphing thô thiển (nhưng đơn giản) là cross-fading, tức là cho bức #1 giảm alpha dần, trong khi đó bức #2 tăng alpha dần, và Blend hai bức lại với nhau. Cách nay có thể có hiệu quả với điều kiện kích thước cũng như tỷ lệ các bộ phận trên khuôn mặt của hai ông này là giống nhau. Tuy nhiên, rõ ràng là điều kiện đó không xảy ra ở đây.

Để kích thước và tỷ lệ các bộ phận trên 2 khuôn mặt giống nhau chúng ta cần bóp méo (Warping) mặt một ông, ví dụ Bill Gates, để sao cho giống với Steve Jobs như này:

bill_gates_meo

Warping chính là yếu tố then chốt và khó nhất trong Morphing, còn Blend chỉ là trò đơn giản. Có nhiều kỹ thuật Warping, tiện nhất là dùng lưới tam giác (Triangular Mesh). Trước hết, chọn ra những cặp điểm tương ứng trên 2 khuôn mặt của mỗi ông như sau:

Ở mỗi bức hình, để tạo ra Triangular Mesh từ những điểm vừa chọn, ta sẽ tìm Delaunay Triangulation của chúng. Có nhiều thuật toán tìm Delaunay Triangulation, trong trường hợp này, vì số điểm không quá lớn (vài chục đến vài trăm), nên dùng thuật toán Incremental do nó có cài đặt đơn giản. Ta có Triangular Mesh như sau:

Bây giờ chúng ta chỉ cần bóp méo từng cặp tam giác một. Lập trình viên OpenGL sẽ thấy việc này thật dễ dàng: tạo texture coord lúc band đầu, sau đó tại thời điểm t cần phải vẽ ra thì giữ nguyên texture coord và thay đổi tọa độ điểm; việc co dãn các texture thế nào là việc của OpenGL. Sau khi bóp méo mặt Bill Gates ta có tỷ lệ trên khuôn mặt giống Steve Jobs:

Tất nhiên, để hiệu ứng đẹp hơn nữa, chúng ta cần phải vừa bóp méo, vừa Blend luôn, chứ đừng nên bóp méo xong hết rồi mới Blend.

1 2 3 4 5 6 7

Các phương pháp tạo Morphing phức tạp còn có thể tự động chọn ra những cặp điểm tương ứng, cũng như là mở rộng ra không gian 3 chiều. Việc nghiên cứu những phương pháp như thế thì đòi hỏi phải nghiemtucvl mới được.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s