1. Đổ bóng – Shading
a. Giới thiệu về đổ bóng và texture các surface
Đổ bóng – Shading
Trước hết cần tìm hiểu một số khái niệm sau:
− Surface shading: là sự kết hợp giữa chất liệu của đôi tượng với texture áp lên đối tượng
− Surface texturing: một texture là một ảnh tạo ra hoạ tiết cho surface. Phép kết nối một texture với vật liệu của đối tượng gọi là phép map.
− Shading network: Đây là tập các node liên kết với nhau theo phương pháp DG, trong đó node trước được tạo ra, truyền giá trị, cho ouput là input của node sau. Ví dụ: các node texture phải lấy tập giá trị về màu sắc của node material nếu muốn sử dụng phép color map.
Khi đổ bóng phải chú ý đến độ phản chiếu ánh sáng specular highlight. Có những đối tượng sẽ phản ứng với ánh sáng rất mạnh nhưng có những đối tượng lại không. Ví dụ một con cá voi thì sẽ phải bóng sáng hơn một chiếc là khô. Vì thế tuỳ vào từng đối tượng để chọn vật liệu sáng cho phù hợp.
Như vậy độ sáng của đối tượng không phụ thuộc vào vị trí đặt điểm sáng mà phụ thuộc vào góc nhìn (camera) và độ bóng nhẵn của bề mặt.
Hình2.20: Vật liệu sáng hay sử dụng
Với các vật liệu sáng khác nhau lại sử dụng cho những trường hợp khác nhau. Như Blinn hay dùng cho các bề mặt sáng bóng trong hoạt hoạ trong khi đó Phong hay PhongE lại có thể gây ra hiện tượng nhấp nháy khi hoạt hoạ.
Highlight: là một kiểu phản chiếu ánh sáng mà làm cho đối tượng trông vửa phẳng nhẵn lại vừa chói sáng.
Hình dưới mô tả hiện tượng chói sáng, màu chói sáng và chói sáng có phản chiếu.
Hình2.21 : Các hiện tượng highlight
Các vật liệu - material
Có thể một bề mặt được chiếu sáng trông như ở thế giới thực nhưng có rất nhiều sự khác biệt khi các surface và ánh sáng tương tác trên một phần mềm đồ hoạ. Để tạo ra một vật liệu phù hợp, các node sau tương tác với nhau:
- Metarial node là một node quyết định surface của đối tượng sẽ biểu hiện như thế nào khi dựng hình xong. Các node này sẽ định nghĩa làm thế nào để surface tương tác với ánh sáng. Metarial node phải thể hiện ánh sáng thông qua các thông tin sau, các thông tin này cũng là các node riêng.
- Surface metarial node:Thể hiện các kiểu của surface mà trên đó sẽ áp các texture. Các thuộc tính như là ánh sáng, độ mờ, độ phản chiếu, vẻ bóng láng v..v Ví dụ, nếu một texture yêu cầu một bề mặt sáng, như crome thì sử dụng Phong material hơn là Lambert.
- Displacement material node:Để sử dụng một ảnh xác định quá trình chạm trổ trên các đối tượng trong khung cảnh.
- Volumetric material node: Để mô tả các hạt khói như: hạt sương, hạt khói hay hạt hơi nước..
Các metarial node khác nhau về giá trị của tập thuôc tính có thể được liên kết với nhau để áp dụng nhiều vật liệu trên một đối tượng. Vật liệu như vậy được gọi là vật liệu phân tầng layered shader.
Tuy nhiên quá trình xử lý với phân tầng vật liệu sẽ mất nhiêu thời gian hơn vì vậy thay vào phân tầng vật liệu thì nên phân tầng các texture hơn mà hiêu quả đạt được thì vẫn như thế. Texture này được gọi là layered texture.
Các texture
Texture là các ảnh để tạo ra hoạ 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. Trong Shading networks thì texture node hay metarial node đều là đầu vào của Shading Group node.
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à goặc là gắn vào mặt phẳng giống như wallpaper (Hình 25).
• 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 (Hình 26).
• 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ình2.23: Texture 3D
Một số chú ý để sử texture hiệu quả :
- Nói chung, hay sử dụng file texture thay vì material vì nó đơn giản hơn và chất lượng hình ảnh tốt hơn, tốn ít dung lượng hơn.
- Các File texture nên bé nhất có thể để giảm thời gian render. Apple Mac OS X còn không hỗ trợ cho các texture lớn hơn 1K.
- Với các bề mặt như tường, gỗ, đá hoa.... trên các đối tượng có các cạnh thẳng hàng nhau thì sử dụng các ảnh làm nhiều lần. Ảnh này sẽ được phân tách thành các phần nhỏ hơn để map. Các ảnh này tải sẽ nhanh hơn, dễ dùng hơn trong quá trình render.
- Các ảnh bitmap nên để dạng hình vuông.
- Các texture hay sử dụng là các file *.PSD. PSD hay sử dụng bởi các lợi ích của nó trong layer sets như sau :
• Có thể thêm, xoá hay sửa chữa bất kì một tầng nào trong khi file đó vẫn duy trì kết nối với phần mềm đồ hoạ
• Có thể dễ dàng tạo layered texture
Để sử dụng một texture, kết nối texture đó tới các thuộc tính của vật liệu của đối tượng. Đó gọi là hành vi map. Các thuộc tính mà texture kết nối tới sẽ xác định xem texture sẽ được sử dụng như thế nào và vì thế sẽ ảnh hưởng tới kết quả cuối cùng.
Ví dụ khi map một texture hình bàn cờ với hai màu trắng đen thì phải kết nối texture với thuộc tính màu sắc và sau đó xẽ xác định xem phần nào là ô trắng phần nào là ô đen. Map sử dụng gọi là color map
Hình2.24: Color map
* Các phép map hay sử dụng:
- color map: Kết nối texture với thuộc tính Color, mô tả màu đối tượng - transparency map: Kết nối texture với thuộc tính Transparency, mô tả đối tượng sẽ trong suốt ở chỗ nào, mờ đục ở chỗ nào.
- specularity map: Kết nối texture với thuộc tính Specularity, mô tả ánh sáng chiếu trên đối tượng sẽ như thế nào.
- reflection map: Kết nối texture với thuộc tính Reflection, mô tả một vật phản xạ với xung quanh như thế nào.
- bump map và displacement map: Tạo ra các bề mặt lồi lõm trên bề mặt mà không cần phải dựng. Hiện tượng này gọi là Surface Relief
Hình2.25: Surface Relief
- Map thường normal map: phép map áp texture vào surface theo toạ độ UV tuỳ thuộc vào các tham số UV của surface.
- Map định hướng projection map: phép chiếu texture thông qua một không gian 3D giống như một máy chiếu. Khi đó texture 2D sẽ trông như một texture 3D vì nó thề hiện được cả độ dài, rộng và sâu.
Hình2.26: Normal map và Projection map
Nền - Background
- Thông thường thì nền của bức ảnh được đính kèm vảo ảnh nhờ phần mềm. Nhưng nếu đươc, vẫn có thể chèn nền do người dùng định nghĩa. Việc này nhằm:
• Tránh phải dựng các đối tượng nền và khung cảnh nhưng lại muốn thể hiện khung nhìn như là trong 2D
• Giống như là một sự tham chiếu ngẫu nhiên trong dựng hình và hoạt hóa - Nền cơ bản và nền do texture:
Hình2.27: Tạo nền bằng màu cơ bản hoặc bằng file texture
Nền cơ bản hay còn gọi là nền màu sẽ tạo nền với một màu nào đó ví dụ như đen, trắng hay xanh dương.
Image file background :
Hình2.28: Tạo nền bằng file ảnh
Một cách khác để tạo nền là sử dụng ảnh hay một tập ảnh và map thành một mặt phẳng ảnh nền như là một tấm phông của khung cảnh. Cách này hay dùng trong các trường hợp như:
• Như một tham chiếu khi dựng cảnh
• Như một background thay vì phải dựng toàn bộ
• Bắt lấy bóng và phản xạ
• Tạo ra các môi trường với các texture môi trường.
Image plane là một mặt phẳng được sinh tự động do mặt phẳng chiếu của camera và vuông góc với camera. Tưởng tượng ở đằng sau khung cảnh có một mặt phẳng, mặt phẳng này được xác định sao cho camera có dịch chuyển, giao điểm vì thế cũng dịch chuyển nhưng mặt phẳng vẫn bao quát toàn bộ khung cảnh.
Các file image nền tĩnh (Static image file background) là nền một ảnh và không thay đổi trong quá trình hoạt hóa
Các file image nền động (Dynamic image file background) là nền gồm nhiều ảnh hoặc là một file film.
Các mô phỏng nền 3D:Một nền ảnh là một ảnh 2D đặt ở đằng sau đối tượng trong khung cảnh. Tuy nhiên có thể mô phỏng ảnh nền 3D. Mô phỏng bằng cách tạo ra các surface “đóng thế” của đối tượng trên ảnh nền. Các đối tượng trong khung cảnh khi đó có thể:
• Chuyển động ra sau đối tượng trong ảnh nền
• Tạo bóng trên các đối tượng của ảnh nền
• Được các đối tượng ở ảnh nền phản chiếu chính xác .
Hình2.29: Các mô phỏng nền 3D 2. Ánh sáng – Lighting
Trong thế giới thực, khi mà một nguồn sáng chiếu tới một surface thì phần nào hướng tới nguồn sáng thì sẽ phát sáng, các phần còn lại sẽ là tối hoặc là nửa tối. Nếu một đối tượng nằm giữa một đối tượng và một vùng chiếu sáng thì đối tượng thứ hai sẽ tạo bóng trên đối tượng thứ nhất. (Hình 2.30 bên dưới)
Sự hấp thụ, sự phản xạ, sự khúc xạ ánh sáng là các vấn đề cần đề cập đến trong quá trình chiếu sáng. Màu sắc của đối tượng trong thế giới thực thực ra là sự tương tác của đối tượng đối với ánh sáng.
Tất cả các đối tượng đều có khả năng hấp thụ hay phản xạ ánh sáng. Các đối tượng hấp thụ ánh sáng sẽ bị tối hoặc là mờ mờ. Ví dụ như gỗ.Các đối tượng
phản xạ ánh sáng nếu bề mặt trơn nhẵn. Ví dụ như gương hoặc kính.Các đối tượng mặt nhám phản xạ ánh sáng theo nhiều góc khác nhau. Ví dụ như Trái đất. Các đối tượng khúc xạ ánh sáng cho ánh sáng truyền qua. Ví dụ như nước hay là kim cương.
Ví dụ: Một vài kiểu ánh sáng
Hình2.30: Một vài kiểu ánh sáng 3. Kết xuất- Rendering
a. Các loại kết xuất
- Có ba loại kết xuất: kết xuất cứng, mềm và vector (hardware, software, vector rendering).
- Software rendering: đây là kiểu kết xuất cho chất lượng của hình ảnh cao nhất, có thể lấy ra các kết quả phức tạp nhât. Các tính toán được thực hiện ở trên CPU. Đặc biệt là nó không đòi hỏi sức mạnh của card đồ hoạ. Vì thế kết xuất bằng phương thức này rất linh hoạt. Chính xác thì chất lượng do phần mềm render quyết định. Một vài phần mềm render như: vrml, mentalray, Maya software renderer v...v
- Hardware rendering: đây là kiểu kết xuất phụ thuộc vào card video và driver cài đặt cho máy tính. Kết xuất bằng phần cứng thì cho tốc độ làm việc nhanh hơn kết xuất bằng phần mềm nhưng nó lại cho hình ảnh kém hơn. Ngoài ra, kết xuất bằng kiểu này có thể không thực hiện được các hiệu ứng phức tạp như : đổ bóng cấp cao, các phản chiếu mà phải dùng phần mềm mới có thể dùng được.
- Vector rendering: đây là cách dựng hình trong trường hợp muốn tạo phong cách riêng cho sản phẩm ( ví dụ như cartoon, tonal art, wireframe...) với các định dạng ảnh bitmap và vector2D
Trên đây là một số kĩ thuật dựng hình cơ bản. Tuỳ thuộc vào phần mềm dựng hình và tuỳ thuộc vào hoàn cảnh cụ thể các phương pháp sẽ được áp dụng
b. Một số chú ý để kết xuất hiệu quả:
Để hiệu quả phải có sự cân bằng giữa độ phức tạp của hình ảnh được yêu cầu và tốc độ dựng hình để xác định có bao nhiều frame thì đủ cho một khoảng thời gian nhất định.
Thời gian render nói chung là lâu vì nó đòi hòi một lượng các phép tính khổng lồ của máy tính. Hình càng lắm chi tiết, càng phức tạp thì thời gian dựng hình càng lâu. Nhất là trong mục đích thương mại, yếu tố kinh tế được đặt lên trên hàng đầu nên chất lượng của hỉnh ảnh cũng chỉ nên tốt ở mức vừa phải để làm sao càng đỡ tốn thời gian dựng hình càng tốt. Vì thế trong các phần mềm Games, các hình ảnh thường là chất lượng trung bình.
Tóm lại, một quá trình dựng hình khái quát nhất bao gồm các bước sau:
b1: Dựng mô hình - modelling b2: Tạo bóng - shading
Chương 3:
Sử dụng mô hình 3D vào trong tạo lập Web
3.1. Các vấn đề đặt ra khi sử dụng các mô hình 3D trong tạo lập Web tạo lập Web
Sau khi có được mô hình, vấn đề tiếp theo là làm thế nào để đẩy được các mô hình lên trang Web.
Các vấn đề đặt ra khi sử dụng mô hình 3D trong tạo lập Web:
• Chất lượng và dung lượng của hình ảnh.
• Làm thế nào để đẩy những ảnh 3D lên trang Web?
Chất lượng ảnh có ảnh hưởng tới diện mạo của Website vì thế chất lượng của các ảnh phải chấp nhận được. Còn dung lượng của hình ảnh quyết định tới thời gian tải của mô hình trên trang Web và dung lượng của bộ nhớ. Hai yêu cầu này đều đòi hỏi phải giải quyết tốt nhưng thường xảy ra một mâu thuẫn đó là nếu chất lượng ảnh càng cao thì khối lượng tính toán càng lớn và dung lượng ảnh càng tăng. Vậy phải giải quyết mâu thuẫn trên như thế nào?
Với vấn đề thứ hai, để các mô hình đẩy được lên trang Web thì phải xem trình duyệt có hỗ trợ cho loại định dạng của file sau khi xuất ra hay không.
3.2. Giải pháp
Với vấn đề thứ nhất, để hình ảnh có chất lượng, nó phụ thuộc vào kĩ thuật và kinh nghiệm của người dựng; sức mạnh của phần mềm dựng hình được sử dụng; phương tiện tạo kết xuất.
Để giảm dung lượng ảnh phải giảm được số điểm điều khiển, giảm hay nén các face, xác định kích cỡ các chi tiết cho phù hợp.
• Áp dụng kinh nghiệm của người dựng hình vào trong dựng hình bắt đầu từ lựa chọn loại mô hình (NURBS, Polygon, Subdiv...) đến việc tối ưu lại mô hình trong quá trình biên tập. Ở chương 2, bên cạnh việc giới thiệu các kĩ thuật dựng hình, với sự hiểu biết của em, em đã giới thiệu các kĩ thuật dựng hình đó được sử dụng vào những trường hợp nào, lưu ý khi sử dụng và cách để giảm số điểm điều khiển, số face khi biên tập mô hình.
• Sử dụng texture thay vì dùng toàn material vừa cho bề mặt đẹp hơn, dễ làm việc hơn, vừa giảm thời gian dựng hình, giảm dung lượng.Ví dụ:dùng Bump map và Displacement map thay vì phải dựng các sự vật có bề mặt lồi lõm sẽ cho hiệu quả bề mặt lồi lõm như thật mà tốn ít dữ liệu hơn.
• Xuất file thành các định dạng khác nhau cho các kích cỡ khác nhau. Ví dụ: file dạng nhị phân cho kích cỡ file nhỏ hơng dạng text.
• Việc chọn loại hình tạo kết xuất cũng ảnh hưởng tới công việc. Bởi vì như đã nói, kết xuất ảnh hưởng tới chi phí dựng hình, chất lượng hình. Hơn nữa, không phải định dạng file nào sau khi kết xuất cũng sử dụng được và không phải trình duyệt nào cũng chấp nhận các định dạng của file sau khi kết xuất.
Giải quyết vấn đề này như sau:
o Chọn loại tạo kết xuất là software renderer. Các software renderer hay sử dụng là : Vray, Mental ray và vrml.
o Chọn trình duyệt: IE
o Chọn loại phần mềm kết xuất: