Phân tích đối tƣợng cần tạo để lựa chọn hoặc tạo ra đối tƣợng nguyên thuỷ cho phù hợp.
Xuất phát từ đối tƣợng nguyên thuỷ đã chọn, dùng các công cụ chỉnh sửa để biến đổi hình dạng đối tƣợng theo mục đích mong muốn.
Hƣớng phát triển này phù hợp với các đối tƣợng nguyên thuỷ của Polygon khi mà các kỹ thuật Edit Plygons và Subdivíion Surfaces đƣợc sử dụng
Hƣớng phát triển này cho kết quả là một mô hình khá mịn và liên tục tuy nhiên việc đi vào từng chi tiết nhỏ của đối tƣợng trở nên khó khăn và kích thƣớc của mô hình đạt đƣợc là khá lớn đối với những đối tƣợng có bề mặt phức tạp. Ví dụ tạo bàn tay từ một hình hộp
Hình 2.15.1. Minh họa cách tạo bàn tay theo hƣớng liên tục
Hình 2.15.2. Minh họa cách tạo bàn tay theo hƣớng liên tục
Hình 2.15.3. Minh họa cách tạo bàn tay theo hƣớng liên tục
Hình 2.15.4. Minh họa cách tạo bàn tay theo hƣớng liên tục 2.3.2.2. Tạo mô hình theo hƣớng rời rạc
Phân tích đối tƣợng cần tạo để chia đối tƣợng ra các phần nhỏ khác nhau trong mức độ cho phép, tức là không rời rạc quá đối tƣợng. Ứng với từng phần, chọn một đối tƣợng nguyên thuỷ phù hợp, dùng các kỹ thuật chỉnh sửa để định dạng đối tƣợng theo ý muốn. Ghép nối các phần đạt đƣợc với nhau để tạo nên một đối tƣợng hoàn chỉnh. Cách này dễ thao tác và có thể đi sâu vào chi tiết
Hƣớng phát triển này cũng chỉ phù hợp với những đối tƣợng nhất định còn lại sẽ có một tổng thể không mịn.
Ví dụ sau đây thể hiện một khía cạnh của mô hình kiểu rời rạc:
Hình 2.16.1. Minh họa mô hình ngƣời theo hƣớng rời rạc
Để mô hình một cô gái ta cần chụp hình cô gái ở ba mặt trƣớc, sau và bên trái. Sau đó import (nhập) vào môi trƣờng mô hình. 3 hình trụ đƣợc sử dụng để tạo thân, cánh tay và chân đƣợc đặt vào đúng vị trí .
Hình 2.16.2. Minh họa mô hình ngƣời theo hƣớng rời rạc
Để tạo ra chân ngƣời theo mong muốn, ta sử dụng các thao tác co giãn, dịch chuyển, xoay cho các phần, các đƣờng cong tạo nên hình trụ sao cho khớp với hình vẽ đƣợc nhập vào. Điều này đƣợc thực hiện đầu tiên với góc nhìn ngang. Sau đó thực hiện với góc nhìn trực diện.
Hình 2.16.3. Minh họa mô hình ngƣời theo hƣớng rời rạc
Sau khi nắn chỉnh đƣợc một chân. Ta tiếp tục nắn chỉnh cho tay cũng với các thao tác, kỹ thuật tƣơng tự.
Hình 2.16.4. Minh họa mô hình ngƣời theo hƣớng rời rạc
Để thực hiện phần thân ta cắt đôi hình trụ theo chiều dọc để mô hình cho một nửa của thân. Cũng với các thao tác tƣơng tự và ta đƣợc kết quả nhƣ hình vẽ.
Hình 2.16.5. Minh họa mô hình ngƣời theo hƣớng rời rạc
Một phần cơ thể của cô gái đƣợc hoàn thành cơ bản. Tiếp đó một bàn chân đƣợc tạo ra bằng cách mở rộng cạnh theo hƣớng chỉ ra.
Hình 2.16.6. Minh họa mô hình ngƣời theo hƣớng rời rạc Tạo cổ và đầu cho cô gái.
Hình 2.16.7. Minh họa mô hình ngƣời theo hƣớng rời rạc Sử dụng kỹ thuật soi gƣơng để tạo ra nửa kia của cơ thể.
Hình 2.17. Tạo khuôn mặt
Để tạo ra khuôn mặt cô gái chi tiết hơn ta sử dụng một ảnh 2 chiều và tải vào khung nhìn, sau đó chia nhỏ khuôn mặt hình thành nên mắt, mũi, mồm… đƣơng nhiên nếu nhƣ trình độ mô hình cao và có năng khiếu họa sĩ thì cũng không cần dùng đến hình ảnh.
Hình 2.18. Tạo các ngón tay
Đầu tiên tạo ra một ngón tay sử dụng một khối hộp, tiếp đó nhân bản (copy) và điều chỉnh (co giãn…) để tạo ra các ngón tay còn lại (trừ ngón tay cái) và sắp xếp nhƣ hình ảnh dƣới đây:
Hình 2.19. Tạo bàn tay
Tiếp đó khâu các cạnh bên giữa các ngón tay lại với nhau để chúng liền thành một khối. Tạo mở rộng mặt phẳng mới đƣợc tạo ra, tạo ngón tay cái ta có đƣợc một bàn tay khá hoàn chỉnh.
2.3.2.3. Kết hợp hai hƣớng trên
Đối với một đối tƣợng có thể mô hình một phần ở dạng liên tục và một phần ở dạng rời rạc và sau đó kết hợp lại với nhau. Maya hỗ trợ sự chuyển đổi giữa các kiểu bề mặt của đối tƣợng:
Polygons to Subdivision Surface Nurbs to Polygons
2.3.3. Nghệ thuật tạo mô hình
Trong quá trình tạo mô hình ta thƣờng xuyên phải sử dụng các phƣơng pháp sau coi nhƣ là những kỹ sảo nhỏ:
+ Phương pháp 1: Sử dụng máy quét, máy ảnh lấy các mặt cắt khác nhau của đối tƣợng, sau đó tiến hành tạo theo.
+ Phương pháp 2: Sử dụng đối tƣợng 2 chiều ví dụ cây 2 chiều để tạo mô hình cho đối tƣợng 3 chiều tĩnh.
Hình 2.20. Tạo không gian
Ở hình ảnh này, những ngọn đồi thực chất là một ảnh 2 chiều quen thuộc của windowsXP. Ảnh 2 chiều này đƣợc sử dụng làm texture (tính chất bề mặt) cho một mặt phẳng đƣợc đặt ở phía xa. Và sau đó một tháp nhỏ 3 chiều thực sự đƣợc tạo và đặt ở phía trƣớc.
Cả 3 cách làm này đều rất hiệu quả đặc biệt trong việc làm giảm kích thƣớc mô hình. Phƣơng pháp thứ nhất là rất phổ biến và thƣờng hay đƣợc dùng với kỹ thuật mô hình NURBs, vì khi đó các đƣờng cong sẽ đƣợc bao bọc lấy đối tƣợng, sau đó dùng phƣơng pháp tạo mặt phẳng nhƣ loft, revole… để thu đƣợc kết quả. Phƣơng pháp thứ hai giúp ta tạo ra cả một cánh rừng, vƣờn hoa mà không phải lo ngại về vấn đề kích thƣớc. Phƣơng pháp thứ 3 cho phép tạo một không gian xung quanh rộng lớn. Những mô hình đạt đƣợc có sử dụng các phƣơng pháp này đƣợc gọi là mô hình 2.5D.
2.4. Kỹ thuật tạo kết xuất
Việc kết xuất là quá trình hoàn thành của một khung cảnh để đƣa ra sản phẩm cuối cùng, quá trình này bao gồm các bƣớc: Đặt vật liệu, áp texture (áp ảnh bề mặt), thiết lập ánh sáng và cuối cùng là kết xuất.
2.4.1. Thiết lập vật liệu và texture
Sau khi đã tạo đƣợc mô hình bề mặt nhƣ mong muốn, ta phải thêm các tính chất bề mặt cho mô hình bề mặt nhƣ là màu sắc, lông, màu da… những tính chất này đƣợc gọi là textures của mô hình.
Chúng ta có thể thêm các bề mặt texture và những hiệu ứng render khác bằng cách sử dụng những nhóm tô bóng. Nhóm tô bóng là một mạng các nút
không phụ thuộc đƣợc kết nối hoàn toàn tới một nút Shading groups. Nhóm này có thể bao gồm các nút bề mặt (texture) và tọa độ để áp lên bề mặt (UV), loại vật liệu (material) và thậm chí cả những nguồn sáng có liên quan.
Đối với những mô hình có tính chất bề mặt đơn giản nhƣ mặt bàn, sàn nhà chẳng hạn, việc thêm tính chất bề mặt đơn giản chỉ là chọn màu phù hợp hoặc gán cho nó một ảnh 2 chiều chụp mặt bàn trong thực tế. Còn đối với những mô hình có tính chất bề mặt phức tạp nhƣ mô hình động vật, hoa văn ở đình chùa … thì việc thêm tính chất bề mặt trở thành vấn đề rất khó khăn. Lúc này ta phải sử dụng một hỗ trợ mạnh hơn của phần mềm đó là cửa sổ ánh xạ UV. Cửa sổ ánh xạ UV là một cửa sổ làm việc trên không gian tọa độ 2 chiều, nó ánh xạ các điểm trên hệ tọa độ UV thành một mặt phẳng biểu diễn bề mặt của đối tƣợng, cửa sổ này cũng hiện cả tính chất bề mặt mà ta thêm cho mô hình. Lúc này để thêm tính chất bề mặt cho đúng ta sẽ dịch chuyển các tọa độ UV vào các vùng ảnh tƣơng ứng. Công việc này giống nhƣ là thực hiện một ánh xạ từ các điểm ảnh vào các điểm trên bề mặt mô hình.
2.4.2. Ảnh Texture
Texture là các ảnh để tạo ra họa tiết của bề mặt đổ bóng. Tất cả các hành động định nghĩa một bề mặt sẽ trông nhƣ thế nào sau khi render có thể đƣợc coi là tập các phƣơng thức của node texture.
Thông thƣờng các texture là các ảnh bitmap đƣợc import vào phần mềm đồ hoạ để chiếu (map) tới các thuộc tính của vật liệu. Texture map cho thuộc tính nào của vật liệu nhƣ màu sắc, độ trong suốt hay độ sáng sẽ gây ra các hiệu ứng tƣơng ứng ảnh hƣởng tới bề ngoài của đối tƣợng.
Các texture có 2 dạng là 2D texture và 3D texture:
2D texture bao lấy đối tƣợng giống nhƣ là gói quà hoặc là gắn vào mặt phẳng giống nhƣ wallpaper (Xem hình 2.21).
3D texture chiếu xuyên qua đối tƣợng giống nhƣ các vân trên đá hoa hay là trên gỗ. Với 3D texture, các đối tƣợng trông nhƣ đƣợc khắc lên chất liệu (Xem hình 2.22).
Các texture môi trƣờng - Environment texture hay đƣợc sử dụng để làm background của đối tƣợng hoặc là map phản xạ.
Hình 2.21. Texture 2D
Hình 2.22. Texture 3D 2.4.3. Kết xuất
Kết xuất là một quá trình sinh tạo một hình ảnh từ một mô hình bằng cách sử dụng một chƣơng trình ứng dụng phần mềm. Mô hình là mô tả của các đối tƣợng ba chiều bằng một ngôn ngữ đƣợc định nghĩa chặt chẽ hoặc bằng một cấu trúc dữ liệu. Mô tả này bao gồm các thông tin về hình học, điểm nhìn, chất liệu và bố trí ánh sáng của đối tƣợng.
Chƣơng 3: CHƢƠNG TRÌNH THỬ NGHIỆM 3.1. Bài toán
Ngày nay, công nghệ thực tại ảo đang là một công nghệ hiện đại và dẫn đầu để giải quyết các bài toán mô phỏng. Trên thế giới đã phát triển và ứng dụng thực tại ảo từ rất sớm trong nhiều lĩnh vực nhƣ giáo dục, quân sự, y học… và đặc biệt là lĩnh vực giải trí nhƣ game, đồ họa. Ở Việt Nam, công nghệ thực tại ảo đã có những ứng dụng tích cực, nhiều bài toán mô phỏng đã đƣợc triển khai và ứng dụng nhƣ việc tái tạo lại các khu di tích, đền thờ, các danh lam thắng cảnh, các tình huống giao thông… và một trong những bài toán có ý nghĩa đó là việc mô phỏng thành công các bộ phận trên cơ thể ngƣời.
Để củng cố cho phần lý thuyết đã nghiên cứu ở chƣơng 2, tác giả sẽ chọn một trong số các kỹ thuật ở trên để thực hiện việc mô phỏng. Với một khoảng thời gian hạn chế, trong khuôn khổ luận văn này tôi tiến hành việc mô phỏng “hệ hô hấp” từ đó ứng dụng vào bài giảng cho sinh viên học tập và nghiên cứu.
Bài toán đặt ra ở đây là xây dựng một chƣơng trình mô phỏng hệ hô hấp theo tiếp cận 3D, mà cụ thể ở đây là chƣơng trình có thể đọc và hiển thị mô hình 3D của hệ hô hấp, tác giả chỉ quan tâm đến một số tƣơng tác và thấy đƣợc các vị trí góc cạnh khác nhau của hệ hô hấp theo yêu cầu. Một số các tƣơng tác cần phải có chẳng hạn nhƣ là: Phóng to, thu nhỏ, xoay, ...
Về nguyên tắc, mô phỏng sẽ bao gồm hai công việc sau:
Xây dựng mô hình mô phỏng
Điều khiển mô hình bằng ngôn ngữ lập trình
Với bài toán mô phỏng hệ hô hấp, yêu cầu chính của bài toán nhƣ sau: - Dùng 3DS Max để tạo mô hình “hệ hô hấp”
- Dùng công cụ OpenSG định dạng các đối tƣợng 3D trong 3DS Max bằng cách chuyển định dạng *.max sang định dạng *.osg
- Viết chƣơng trình Virtual C++ sử dụng bộ mã nguồn mở Open SceneGrạph để hiển thị và điều khiển mô hình 3D
Hình 3.1. Lƣu đồ bài toán Cụ thể là các bƣớc thực hiện nhƣ sau:
Bước 1: Thu thập thông tin về hệ hô hấp
Sau khi đã tìm hiểu về cấu tạo của hệ hô hấp, em đã tiến hành chọn lọc và mô tả về một số hệ cơ quan hô hấp.
Bảng thông tin mô tả về hệ hô hấp STT Tên Mô tả
1 Mũi
Mũi là cơ quan đầu tiên của hệ hô hấp mà không khí phải đi qua để vào phổi. Mũi gồm có 3 phần: mũi ngoài, mũi trong (hay hốc mũi) và các xoang cạnh mũi. Hốc mũi gồm 2 lỗ mũi, ngăn cách nhau bởi vách mũi. Hốc mũi thông với xoang một số xƣơng nhƣ xƣơng trán, xƣơng bƣớm, xƣơng sàng, xƣơng hàm trên.
2 Thanh quản
Thanh quản nằm trƣớc thực quản , dƣới lớp da cổ, phần trên thông với hầu, phần dƣới thông với khí quản. Hình thể bên ngoài của thanh quản có 2 mặt: mặt trƣớc và mặt sau:
- Mặt trƣớc: Nhìn từ dƣới lên trên là cung sụn nhẫn, dây chằng nhẫn-giáp, mặt trƣớc sụn giáp. Màn hình hiển thị Chƣơng trình Virtual C++ Hiển thị và điều khiển Mô hình Định dạng OpenSG Export Đọc file OpenSG
- Mặt sau: Là phần trƣớc của phần thanh hầu, từ dƣới lên có mảnh sụn nhẫn, sụn phễu, lỗ vào thanh quản và mặt sau sụn nắp.
3 Khí quản
Khí quản nằm phía trƣớc thực quản, phía trên tiếp giáp với sƣơng sụn nhẫn, một nửa nằm ở cổ, một nửa nằm ở ngực, có hình ống tròn, phía sau hơi bẹt, đƣờng kính 2cm
4 Phế quản
- Là phần tiếp tục của khí quản , gồm 2 phế quản gốc trái và phải, đƣợc tạo bởi các vòng sụn kín, nhỏ hơn khí quản. Phế quản gốc phải to , ngắn và dốc hơn phế quản gốc trái . Mặt trong của khí quản và phế quản đƣợc lót một lớp niêm ma ̣c mềm.
- Phế quản khi vào phổi phân nhánh nhỏ dần thành tiểu phế quản, vi phế quản. Vi phế quản cấu tạo bằng các vòng cơ và tận cùng là các phế nang.
5 Phổi
- Phổi gồm hai lá trái và phải. Phổi có hình chóp, đáy rộng và hơi lõm theo chiều cong của cơ hoành, phần đỉnh hẹp và nhô lên phía trên xƣơng đòn. Hai lá phổi mềm xốp và đàn hồi, là tập hợp của các phế nang và phế quản. Lá phổi phải có hai rãnh sâu trên bề mặt chia lá phổi thành 3 thùy, còn lá phổi trái có một rãnh chia ra thành 2 thùy.
- Phổi đƣợc bao bởi hai lớp màng: Lớp ngoài là lá thành lót mặt trong lồng ngực, lớp trong bao chặt lấy phổi gọi là lá tạng
Bước 2: Mô hình hóa 3D hệ hô hấp
Bước 2.1: Tạo mô hình thô
Để mô hình lá phổi ta cần chụp hình lá phổi ở các mặt cắt khác nhau: nhìn ngang, nhìn trƣớc, nhìn sau,…sau đó tải các ảnh này vào các khung nhìn của phần mềm và mô hình theo. Từ ảnh ta vẽ 1 lƣới lên ảnh bằng cách: chấm 1 điểm lên ảnh, chấm tiêp điểm thứ 2. Nối 2 điểm tạo thành đƣờng thẳng, chấm điểm tiếp theo để tạo thành tam giác. Chấm đến khi nào hết mặt này rồi xoay tạo tiếp mặt sau. Sử dụng các thao tác xoay, co giãn, di chuyển để tạo ra mô hình màng phổi phải.
Hình 3.2. Mô hình Màng phổi phải biểu diễn dƣới dạng lƣới các đa giác
Hình 3.3. Mô hình lá phổi
Tiếp theo ta sử dụng một hình hộp, sau đó sử dụng kỹ thuật split để chia bề mặt và dùng kỹ thuật extrude để mở rộng bề mặt và các thao tác xoay, co giãn, di chuyển để tạo ra các thành phần còn lại của hệ hô hấp.
Hình 3.4. Hệ hô hấp 3D biểu diễn dƣới dạng lƣới
Bƣớc 2.2: Đặt vật liệu, phủ tecture (áp ảnh bề mặt) cho mô hình
- Chọn đối tƣợng cần gán vật liệu (chọn vật liệu phù hợp để gán cho đối tƣợng đã chọn)
- Ở đây ta chọn vật liệu là blinn ->file ->dẫn tới ảnh bề mặt cần chọn mà ta muốn.
Hình 3.5. Ảnh bề mặt cho đối tƣợng
- Sau quá trình tạo mô hình và gán vật liệu, áp ảnh bề mặt ta đƣợc mô hình hệ hô hấp hoàn chỉnh.
Bước 3: Rendering
Sử dụng công cụ lập trình Virtual C++ kết hợp với OpenSG vào hệ thống phần mềm 3DSMax.
3.2. Chƣơng trình thử nghiệm