Báo cáo bài tập môn đa phương tiện đề tài video and graphics blender 3d

23 1 0
Báo cáo bài tập môn đa phương tiện đề tài video and graphics  blender 3d

Đ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

ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG ĐIỆN ĐIỆN TỬ - š›&š› - BÁO CÁO: Bài tập môn Đa phương tiện Đề tài: Video and Graphics- Blender 3D Sinh viên thực hiện: Cao Tuấn Dũng 20198120 Nguyễn Vũ Gia Bảo 20198116 Lưu Mạnh Đức 20198118 Mã lớp: 135074 Giảng viên hướng dẫn: Tiến sĩ Phạm Văn Tiến Hà nội, ngày tháng 02 năm 2023 LỜI NÓI ĐẦU Đồ họa máy tính lĩnh vực lí thú phát triển nhanh tin học Ngay từ xuất hiện, đồ họa máy tính có sức lơi mãnh liệt, sử dụng nhiều lĩnh vực khác như: khoa học, nghệ thuật, kinh doanh, thương mại, công nghiệp, quản lý, giáo dục, giải trí… cơng nghệ 3D ứng dụng đồ họa cấp cao phổ biến rộng rãi đến đời sống Với tính thực tiễn cao, bật kể đến như: Ứng dụng AR/VR, hoạt hình 3D, kỹ xảo hay ứng dụng 3D khác Để tạo nên sản phẩm hay ứng dụng vậy, chúng em cần phải nắm bắt kiến thức kỹ sử dụng thông thạo phần mềm bổ trợ Hiện có nhiều phần mềm 3D sẵn có thị trường để đáp ứng cho nhu cầu sáng tạo vô biên người Phổ biến cho nhu cầu sản xuất sản phẩm 3D Studio giới, kể đến phần mềm tiếng quen thuộc Houdini, 3ds Max, Maya, SketchUp, Modo, Maxon Cinema 4D, SideFX, v.v… Tuy nhiên, muốn làm quen học 3D có lựa chọn mẻ dễ dàng sử dụng với Blender, phần mềm dạng nguồn mở hoàn toàn với đầy đủ tính để phục vụ cho người học 3D từ bước đầu đến thành thục Bài tập hoàn thành hướng dẫn thầy Phạm Văn Tiến, chúng em xin chân thành cảm ơn hỗ trợ thầy Tuy nhiên, lượng kiến thức thời gian hồn thành đề tài cịn hạn hẹp, khơng thể tránh khỏi sai sót Nhóm chúng em mong nhận đóng góp, phê bình, chia sẻ thầy để sản phẩm nhóm hồn thiện Chúng em xin chân thành cảm ơn ! BẢNG PHÂN CÔNG CÔNG VIỆC Thành viên Cao Tuấn Dũng Lưu Mạnh Đức Nguyễn Vũ Gia Bảo Nguyễn Vũ Gia Bảo Lưu Mạnh Đức Cao Tuấn Dũng Cao Tuấn Dũng Nguyễn Vũ Gia Bảo Lưu Mạnh Đức Công việc Tạo Lip-sync cho khuôn mặt 3D điều khiển âm nhóm ghi sử dụng Keentools Thiết kế nhân vật 3D bao gồm: Giao diện nhân vật, Khung xương vùng (mặt, thân) Thay đối tượng chuyển động thực nhân vật 3D sử dụng python Điều khiển chuyển động khuôn mặt nhân vật qua Webcam Viết báo cáo, Quản lý lưu trữ MỤC LỤC PHẦN Tổng quan 1.1 Phần mềm blender 1.1.1 Khái niệm 1.1.2 Lịch sử phát triển 1.2 Tạo mơ hình (Modeling) 1.3 Motion tracking 1.4 Python 1.5 Công cụ FaceBuider Blender 1.6 Python Console Blender PHẦN Thiết kế 2.1 Giới thiệu đề tài 2.2 Giao diện Blender 2.3 Thao tác với cửa sổ 2.4 Sử dụng Keentools xây dựng khuôn mặt 3D 2.5 Thiết kế nhân vật 3D 2.6 Lip-sync cho nhân vật điều khiển âm người dùng 2.7 Thay chuyển động thực bằngPython Phần KẾT LUẬN 3.1 Ưu điểm 3.2 Nhược điểm 3.3 Mục tiêu phát triển TÀI LIỆU THAM KHẢO PHẦN Tổng quan 1.1 Phần mềm blender 1.1.1 Khái niệm Blender phần mềm đồ họa 3D miễn phí nguồn mở, sử dụng để làm phim hoạt hình, kỹ xảo, ảnh nghệ thuật, mẫu in 3D, phần mềm tương tác 3D Video game Các tính Blender bao gồm tạo mẫu 3D, UV unwrapping, áp vân bề mặt, mơ khói, chất lỏng, hạt chuyển động thể, điêu khắc, hoạt họa, phối hợp chuyển động, camera tracking, rendering chỉnh sửa video 1.1.2 Lịch sử phát triển Blender công ty Hà Lan NeoGeo bắt đầu phát triển ứng dụng nội bộ, dựa dấu thời gian file mã nguồn đầu tiên, ngày tháng năm 1994 xem ngày sinh nhật Blender Phiên 1.00 mắt vào tháng năm 1995, với người thiết kế đứng đầu lập trình viên người sở hữu cơng ty Ton Roosendaal, người trước viết chương trình dị tia tên Traces cho Amiga vào năm 1989 Cái tên "Blender" lấy cảm hứng từ hát ban nhạc Yello, từ album Baby mà NeoGeo sử dụng Showreel Ngày tháng năm 1998, Blender cho mắt công khai mạng phần mềm miễn phí SGI Cơng ty NeoGeo sau bị giải thể hợp đồng sở hữu lại cơng ty khác Sau đó, Ton Roosendaal sáng lập Not a Number Technologies (NaN) vào tháng năm 1998 để tiếp tục phát triển phát hành chương trình Chương trình phát hành dạng shareware đến NaN phá sản năm 2002 Lúc có nghĩa việc phát triển Blender bị hoãn Vào tháng năm 2002, Roosendaal sáng lập tổ chức phi lợi nhuận Blender Foundation với mục đích để tìm đường tiếp tục phát triển quảng bá Blender phần mềm nguồn mở Ngày 18 tháng năm 2002, Roosendaal khởi xướng chiến dịch "Free Blender" để tìm nguồn tài trợ, với mục đích làm Blender trở thành nguồn mở theo điều khoản GNU General Public License với giá 100.000 Euro (tương đương 100.670 đô la Mỹ thời) Ngày tháng năm 2002, số tiền thu thập đủ mã nguồn Blender công khai Hiện tại, Blender phần mềm miễn phí mã nguồn mở phát triển nhanh chóng cộng đồng, cộng thêm 15 lập trình viên th Blender Institute 1.2 Tạo mơ hình (Modeling) Việc tạo cảnh 3D cần ba thành phần chính: Mơ hình, ngun vật liệu ánh sáng Mơ hình hóa đơn giản nghệ thuật khoa học tạo bề mặt mô hình dạng vật thể giới thực thể trí tưởng tượng bạn vật thể trừu tượng 1.3 Motion tracking Motion tracking sử dụng để theo dõi chuyển động đối tượng máy ảnh thông qua ràng buộc để áp dụng liệ theo dõi cho đối tượng 3D tạo Blender nhập vào ứng dụng Trình theo dõi chuyển động Blender hỗ trợ số công cụ mạnh để theo dõi 2D tái tạo chuyển động 3D, bao gồm theo camera theo dõi đối tượng 1.4 Python Python ngơn ngữ lập trình hướng đối tượng đơn giản, dễ học, mạnh mẽ, cấp cao Python có cấu trúc cú pháp ngơn ngữ khác Python với triết lý thiết kế thuận tiện cho việc đọc hiểu code, đơn giản rõ ràng thiết kế Guido van Rossum Python hoàn toàn tạo kiểu động sử dụng chế cấp phát nhớ tự động Ngơn ngữ có cấu trúc liệu cấp cao mạnh mẽ cách tiếp cận đơn giản hiệu lập trình hướng đối tượng Python ngơn ngữ có hình thức sáng sủa, cấu trúc rõ ràng, thuận tiện cho người học lập trình Cấu trúc cịn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu Python đặt theo tên rắn thần Python thần thoại Hy Lạp đâu Rossum fan sê-ri chương trình hài cuối năm 1970, tên “Python” lấy từ tên phần sê-ri “Monty Python’s Flying Circus” Guido Van Rossum xuất phiên mã Python (phiên 0.9.0) alt.sources vào tháng năm 1991 Bản phát hành bao gồm xử lý ngoại lệ, hàm kiểu liệu cốt lõi list, dict, str loại khác Nó hướng đối tượng có hệ thống mô-đun Phiên Python 1.0 phát hành vào tháng năm 1994 Các tính phát hành cơng cụ lập trình chức lambda, map, filter reduce, thứ mà Guido Van Rossum khơng thích Sáu năm rưỡi sau vào tháng 10 năm 2000, Python 2.0 giới thiệu Bản phát hành bao gồm toàn danh sách, thu gom rác đầy đủ hỗ trợ unicode Bắt đầu từ năm 2000, nhà phát triển cốt lõi bắt đầu nghĩ Python 3.0 Họ muốn hợp lý hóa ngơn ngữ, cắt cấu trúc chức ngôn ngữ không cần thiết mà Python tích lũy gần 20 năm tồn Như Zen of Python nói: “Nên có — tốt — cách rõ ràng để làm điều đó” Những nỗ lực họ dẫn đến Python 3.0, phiên không tương thích ngược ngơn ngữ Python phát hành vào tháng 12 năm 2008 Thật không may, phát hành mang lại số phức tạp Các nhà phát triển không nhận Python sử dụng mã Python tự nhiên phụ thuộc vào thư viện Python khác Do đó, dễ dàng chuyển tập lệnh người sang Python 3, việc di chuyển chương trình dựa vào thư viện bên thứ ba lại khó nhiều chúng khơng nâng cấp nhanh 1.5 Cơng cụ FaceBuider Blender Tiện ích bổ sung FaceBuider cho Blender giúp xây dựng mơ hình 3D khn mặt đầu người vài ảnh Với FaceBuider, bạn không cần phải người lập trình mơ hình 3D có kinh nghiệm để tạo mơ hình 3D chất lượng với cấu trúc liên kết rõ ràng Một số tính FaceBuider: - Tự động thiết lập camera, phát định dạng ước tính xác - Hỗ trợ biểu cảm khuôn mặt - Căn chỉnh khuôn mặt tự động hỗ trợ bới AI Tạo hiệu ứng khuôn mặt theo cách thủ cơng với 51 hình dạng hịa trộn FACS tích hợp Tích hợp để sử dụng Unreal Engine Unity - Đa dạng, dễ sử dụng, hoạt động với ảnh 1.6 Python Console Blender Bảng điều khiển Python phương pháp nhanh chóng để thực thi lệnh, với quyền truy cập vào toàn API Python, lịch sử lệnh Tự động Hoàn Chỉnh Dấu nhắc lệnh điển hình cho Python 3.x, trình thơng dịch nạp sẵn sàng chấp nhận lệnh dấu nhắc >>> Bàn giao tiếp Python phương pháp tốt để khám phá khả Python tích hợp sẵn Blender Bàn giao tiếp Python sử dụng để kiểm tra phần nhỏ mã Python, sau dán vào tập lệnh lớn PHẦN Thiết kế 2.1 Giới thiệu đề tài + Đề tài “Video and Graphics – Blender 3D” với nhiệm vụ sau: Quay video clip có hai đối tượng chuyển động chụp ảnh selfile thành viên nhóm + Tạo khn mặt 3D riêng cho thành viên + Theo dõi chuyển động vật thể trích xuất quỹ đạo chúng + Thay đối tượng chuyển động thực đối tượng đồ họa 3D + Tạo Lip-sync cho khuôn mặt 3D, điều khiển âm ghi + Xây dựng giao diện người dùng cho phép kiểm sốt thơng số tạo 2.2 Giao diện Blender Blender phần mềm 3D miễn phí mã nguồn mở Ở đề tài nhóm sử dụng phiên blender 2.8 Hình 2- Giao diên người dùng Blender 2.8 + Cửa sổ Info: chứa thông tin giao diện lệnh với file + Cửa sổ 3D view: khu vực hiển thị đối tượng 3D + Cửa sổ Outliner: quản lý đối tượng theo tên + Cửa số Properties: thuộc tính chương trình thuộc tính đối tượng + Cửa sổ Timeline: làm việc với Animation + Nội dung cửa sổ quy định biểu tượng góc trái (trên dưới) Có thể thay đổi biểu tượng để cửa sổ hiển thị nội dung mong muốn Hình 2- bảng cửa sổ editor type 2.3 Thao tác với cửa sổ Blender sử dụng hệ thống cửa sổ vô linh hoạt để hiển thị thông tin khác Dưới số thao tác với cửa sổ: Thay đổi kích thước: Hình 2- Giao diện hiển thị thay đổi kích thước Đưa trỏ vào vùng giao hai cửa sổ, trỏ chuyền thành hình mũi tên, click kéo chuột trái để thay đổi kích thước cửa sổ Chia cửa sổ: Đưa trỏ vào góc bên phải góc bên trái cửa sổ, trỏ chuyển thành hình dấu cộng, click kéo chuột trái vào phía cửa sổ để chia nhỏ cửa sổ Kết hợp cửa sổ: Làm tương tự cách chia cửa sổ click kéo chuột sang cửa sổ cạnh cần kết hợp Lưu ý hai cửa sổ muốn kết hợp phải cột hàng Cửa sổ 3D view Tool shelf: T chứa cơng cụ Properties: N hiển thị thuộc tính cửa sổ 3D View thuộc tính đơi tượng 3D Điều khiển vùng nhìn Quay vùng nhìn: Chuột Di chuyển vùng nhìn: Shift + Chuột Phóng to, thu nhỏ vùng nhìn: Ctrl + Chuột Các đối tượng Con trỏ: Con trỏ đối tượng linh hoạt Blender Con trỏ quy định vị trí thêm đối tượng Ngồi trỏ đóng vai trò đối tượng trung gian để thực thao tác khác Di chuyển trỏ: Phim chuột trái Đưa trỏ gốc tọa độ: Shift + C Thêm đối tượng: Shift + A Hình 2- Giao diện hiển thị thêm đối tượng Xóa: X, Delete Sao chép đối tượng: Shift + D Sau nhấn Shift D, Blender thực lệnh chép di chuyển đối tượng Để chấp nhận lệnh di chuyển, nhấn chuột trái Hủy bỏ lệnh di chuyển, nhấn chuột phải 6 Chọn đối tượng Object Mode Chọn đối tượng: Chuột phải Chọn thêm bỏ chọn: Shift + Chuột phải Chọn tất bỏ chọn tất cả: A Chọn theo khung hình chữ nhật: B Chọn tho hình ( Bằng cách quét lên đối tượng ): C Chọn tự acachs khoanh vùng đối tượng: Ctrl + Chuột trái Các công cụ biến đổi đối tượng Hình 2- Các cơng cụ biến đổi đối tượng o o o Chọn đối tượng sau click vào biểu tượng tương ứng hình để xuất công cụ biến đổi đối tượng Di chuyển (Moving Objects) Quay (Rotating Objects) Thay đổi kích thước (Scaling Objects) Có thể nhấn Shift + Click để xuất đồng thời công cụ Mở file, lưu file Lưu file: Ctrl + S, Ctrl +W Mở file: Ctrl + O Tạo file mới: Ctrl + N Lưu ảnh chụp hình: Ctrl + F3 2.4 Sử dụng Keentools xây dựng khuôn mặt 3D Bước 1 : Install Requirement Modules Import Blender File Download blender 2.8.3 đến 3.4.0 sau chọn edit – prefereneces – add on - tìm install interface : KeenTools Facebuilder 2022.3.0 (có thể tìm download facebuilder KeenTools.iso sau import ) Hình 2- Cài đặt Keentool Blender Bước 2 : Create a new head Vào taskbar bên tay phải hình , chọn FaceBuilder – chọn create a new head giao diện sau Hình 2- Khối mặt có sẵn trước chỉnh sửa Bước 3 : Add images Chọn Add images để add file ảnh bao gồm các góc khn mặt để làm hình chiếu lên khối có sẵn Hình 2- Chọn chỉnh sửa hình ảnh Bước  : Căn chỉnh ảnh cho khớp với khn mặt Có thể chỉnh tay (xác định điểm khuôn mặt sau chỉnh cho khớp ) dùng align face để auto tự động khớp với khuôn mặt Bước 5 : Dựng lớp sơn lên bề mặt khuôn mặt mẫu Chọn create texture sau chọn select all images to create texture để chọn tất ảnh làm hình chiếu lên khn mặt KẾT QUẢ Hình 2- Kết hình ảnh thành viên nhóm 2.5 Thiết kế nhân vật 3D Bước 1 : Quan sát phân tích video Quan sát phân tích video , định nghĩa chuyển động Bước 2 : Tìm model Model bao gồm phần xương phần da Lựa chọn model gắn xương với da đầy đủ Import Rigging Rigfy : chọn edit- add-ons- Rigging Rigfy install Bước 3 : Thêm khung xương cho khuôn mặt thể Sau tiến hành cài đặt xong Rigging Rigfy, bước nhóm cần thực xây dựng khung xương cho phận Hình 2- 10 Thêm khung xương cho phận Sau bước quan trọng Upgrade Face Rig để hoàn tất thao tác Hình 2- 11 Hồn thiện upgrade Race Rig Bước 4 : Tạo cảnh Tính tốn frame theo thời gian tương ứng 24 frames/s Thời lượng video :25s tương đương 600 frame Hình 2- 12 Time line Hình 16 Timeline Chỉnh sửa frame : điều chỉnh xương ,da tự động chuyển đồng theo (đến model gắn xương vào đầy đủ ) Trong chế độ Pose Mode ,thao tác với xương nhóm xương để thay đổi tư Thao tác vói xương chủ yếu để xoay xương KẾT QUẢ: Hình 2- 13 Thiết kế nhân vật 3D 2.6 Lip-sync cho nhân vật điều khiển âm người dùng Bước 1: Install Requirement Modules Windows : Open Command Prompt as Administrator cd "C:\Program Files\Blender Foundation\Blender 2.82\2.82\ python\bin" python -m pip install upgrade pip python -m pip install opencv-contrib-python numpy Bước ta cần thực upgrade pip/pip3 lên phiên nhất, sau cài đặt thư viện opencv Về ưu điểm OpenCV đươc viết C/C++, có tốc độ tính tốn nhanh, sử dụng với ứng dụng liên quan đến thời gian thực Hình 2- 14 Cửa sổ cmd-install requirement modules Bước 2: Download character file Truy cập vào trang Studio.blender.org để download Character Cartoon 3D mong muốn phù hợp với version Hình 2- 15 Dowload Character Vincent version 2.80 Bước 3: Import Blender File Sau hoàn thành việc download file Blender.blend , click to File => Open => import file vừa download Hình 2- 16 Import file character blender.blend Bước 4: Xây dựng code tạo bảng điều khiển cửa sổ thuộc tính đối tượng Bảng điều khiển đưa vào phần thuộc tính đối tượng Hình 2- 17 File code bảng điều khiển cửa sổ thuộc tính đối tượng Bước nhóm cần làm Add file code vào Text Note rename sang “OpenCVAnim.py” cửa sổ Scripting Hình 2- 18 File code OpenCVAnim.py Run scripting kiểm tra thông tin cửa sổ Info Context Menu Hình 2- 19 Cửa sổ Info Context Menu Bước 5: Xây dựng File Code cho nhân vật 3D Hình 2- 20 File OpenCVAnimOperator.py Sử dụng thư viện OpenCV để điều khiển khuôn mặt nhân vật chuyển động theo hình ảnh thực thơng qua Webcam, điều mang tính ứng dụng cao vào dự án thực tế như: tựa Game nhập vai, hoạt hình 3D, kĩ xảo hay Metaverse Trong file code bao gồm: tất toán tử từ đếm thời gian đường dẫn đến mơ hình đào tạo tải xuống Mơ hình Độ phân giải webcam Điểm mơ hình 3D Máy ảnh đường trung bình động Vector Kết thực Sau thực thao tác kết nhận với giao diện Khung 640x480 Với video demo đính kèm phần submit Hình 2- 21 Giao diện làm việc Webcam điều khiển nhân vật 3D ... Python phương pháp tốt để khám phá khả Python tích hợp sẵn Blender Bàn giao tiếp Python sử dụng để kiểm tra phần nhỏ mã Python, sau dán vào tập lệnh lớn PHẦN Thiết kế 2.1 Giới thiệu đề tài + Đề tài. .. thiệu đề tài + Đề tài ? ?Video and Graphics – Blender 3D? ?? với nhiệm vụ sau: Quay video clip có hai đối tượng chuyển động chụp ảnh selfile thành viên nhóm + Tạo khuôn mặt 3D riêng cho thành viên... họa 3D + Tạo Lip-sync cho khuôn mặt 3D, điều khiển âm ghi + Xây dựng giao diện người dùng cho phép kiểm soát thông số tạo 2.2 Giao diện Blender Blender phần mềm 3D miễn phí mã nguồn mở Ở đề tài

Ngày đăng: 25/03/2023, 19:26

Tài liệu cùng người dùng

Tài liệu liên quan