Hình 2.4Nguồn sáng phía sau (Back lighting)
Người xem hướng mắt về phía đặt nguồn sáng, các chủ thể có phần cạnh bao bị khuất phía sau sẽ được thắp sáng và hiển thị dưới dạng bóng rọi hoặc làm mờ bằng một nguồn sáng phụ. Độ tương phản cao, tạo cảm giác rộng mở và kịch tính. Nếu nguồn sáng đặt xéo một góc nhỏ so với tia hướng nhìn, chủ thể sẽ xuất hiện một vành sáng do một hoặc một số góc cạnh của chủ thể đó tạo ra, nguồn sáng càng mạnh thì vành sáng này càng hiển thị rõ rệt.
Các khung cảnh ngược sáng thường tạo ra nhiều bóng đổ phía trước chủ thể, trừ khi nguồn sáng phía sau rất nhẹ. Trong hầu hết các trường hợp, bức hình sẽ có màu tối chủ đạo, đi kèm với một vũng sáng nổi bật. Các vành sáng xuất hiện trong trường hợp này sẽ rất hữu ích trong việc làm nổi bật các đường nét của chủ thể. Một đặc điểm khác của loại nguồn sáng này là nó giúp biểu lộ các chi tiết có tính trong suốt, tính mờ đục, các kết cấu hoặc chi tiết trong vùng bóng rọi và vùng vành sáng. Loại nguồn sáng này cũng rất hữu ích trong việc tạo thêm điểm nhấn thu hút cho bức hình.
Nguồn sáng phía sau có thể biến các chi tiết tầm thường trở nên lôi cuốn và hấp dẫn
Hình 2.5 Chiếu sáng từ phía trên (Top Lighting)
Có thể bạn quan tâm!
- Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng trong thực tại ảo - 2
- Môi Trường Và Ngôn Ngữ Lập Trình Cho Đồ Họa 3D
- Chiếu Sáng Chính Diện (Front Lighting)
- Mô phỏng sự tạo bóng của vật thể từ một nguồn sáng trong thực tại ảo - 6
- Một Số Thuật Toán Chiếu Sáng Toàn Cục
- Các Nút Chức Năng Cho Cửa Sổ Scene.
Xem toàn bộ 81 trang tài liệu này.
Nguồn sáng từ trên (Top lighting) là một trường hợp ít gặp hơn, mặc dù nó vẫn khá phổ biến trong những ngày trời mây, ít nắng. Có thể quan sát hiện tượng này lúc trời nắng giữa trưa, trong các công trình nội thất, ánh đèn sân khấu…Với nguồn sáng nhẹ, đây là một cách khá hữu dụng trong việc miêu tả hình dáng chi tiết. Dưới nguồn sáng mạnh, nó lại đem đến cảm giác huyền ảo bằng cách tạo ra các bóng đổ kịch tính, che đi hầu hết hình dáng của chủ thể bên dưới: ví dụ như người đứng ngay dưới nguồn sáng mạnh sẽ có hốc mắt màu đen vì vùng mắt lúc này hoàn toàn nằm trong vùng bóng đổ và không có ánh sáng truyền tới.
Theo tôi biết thì nguồn sáng từ trên hiếm khi được sử dụng, tuy nhiên không có nghĩa là không nên dùng loại nguồn sáng này. Với những ngày nhiều mây thì đây là dạng thiết lập nguồn sáng chân thật nhất, với cả bầu trời lúc này đóng vai trò như một nguồn sáng khuếch tán rộng lớn.
Hình 2.6 Chiếu sáng từ phía dưới (Below Lighting)
Dạng nguồn sáng từ dưới thậm chí còn hiếm gặp hơn nhiều so với nguồn sáng từ trên. Trong thực tế, hiện tượng này có thể xảy ra khi một người cầm đèn hay ngọn đuốc, khi đó sẽ có ánh sáng phản chiếu từ bên dưới như từ mặt nước chẳng hạn. Lúc này cách xuất hiện của mọi vật trong khung cảnh sẽ rất khác biệt, và bị đảo ngược (tương tự như khi một người dùng đèn pin soi sáng khuôn mặt họ từ dưới lên vậy: bóng đổ sẽ xuất hiện lộn ngược lên trên).
Và một lần nữa, sự hiếm gặp của loại nguồn sáng này có thể được sử dụng để cho ra các hiệu ứng vô cùng độc đáo và sáng tạo. Nó khiến chúng ta bất chợt nhận thấy các sự vật dường như có gì không đúng hay trái với thực tế, và đó chính là cách mà ta nên vận dụng yếu tố ánh sáng để truyền tải thông điệp hoặc cảm xúc đến người xem.
2.1.2. Tạo bóng
“Bóng (Shadow) là một vùng tối nằm giữa một vùng được chiếu sáng, xuất hiện khi một vật thể được chiếu sáng toàn bộ hoặc một phần”
Bóng là một trong những yếu tố quan trọng nhất của tri giác con người
về
việc nhận biết các vật thể trong thế giới 3 chiều. Bóng giúp cho ta nhận biết được vị trí tương đối của vật đổ bóng (occluder) với mặt nhận bóng (receiver), nhận biết được kích thước và dạng hình học của cả vật đổ bóng và mặt nhận bóng.
Hình 2.7: Bóng cung cấp thông tin về vị trí tương đối của vật thể.
Với ảnh ở bên trái ta không thể biết được vị trí của con rối. Nhưng với ảnh bên phải ta thấy vị khoảng cách của chúng so với mặt đất xa dần.
Hình 2.8: Bóng cung cấp thông tin về dạng hình học của mặt tiếp nhận.
Hình bên trái ta không thể biết được dạng hình học của mặt tiếp nhận, còn mặt bên phải thì dễ dàng thấy được.
2.2. Kỹ thuật hiển thị mô hình Occlusion culling
Sơ lược về kỹ thuật Occlusion Culling
Unity cung cấp cho chúng ta một công cụ tối ưu rất hay sử dụng kỹ thuật tối ưu được sử dụng bởi rất nhiều trò chơ hiện nay đó là Occlusion Culling. Đây là kỹ thuật cho phép khả năng vô hiệu hóa kết xuất hình ảnh của các đối tượng khi chúng không được nhìn thấy bởi camera do bị che khuất bởi các đối tượng khác. Kỹ thuật này không tự động được thực hiện trong đồ họa 3D máy tính, mặc định những đối tượng ở xa camera hơn sẽ được vẽ ra trước và sau đó các đối tượng ở gần hơn sẽ được vẽ đè lên (được gọi bằng thuật ngữ “overdraw”). Ngoài kỹ thuật Occlusion Culling, còn có một số kỹ thuật tối ưu khác như Frustum Culling, kỹ thuật này chỉ cho phép vô hiệu hóa các đối tượng nằm ngoài vùng nhìn của camera. Trong khi đó Occlusion Culling ngoài việc khắc phục vấn đề Overdraw mà còn tận dụng lại khả năng của kỹ thuật Furstum Culling.
Tiến trình của Occlusion Culling được thực hiện bởi một camera ảo để xây dựng một hệ thống gồm tập hợp các đối tượng có thể hiển thị. Dữ liệu này được dùng trong quá trình runtime bởi camera để xác định rằng “cái gì được xuất hiện và cái gì không được xuất hiện?”. Occlusion Culling giúp giảm số lần gọi lại công việc dựng hình (Draw call), giúp tăng hiệu suất của ứng dụng. Dữ liệu cho kỹ thuật Occlusion Culling bao gồm các ô (Cells), mỗi ô là một nhánh của khối toàn bộ đối tượng trong Scene, cụ thế hơn thì các ô này tạo thành một cây nhị phân. Occlusion Culling sử dụng hai cây, một giành cho View Cells (Static Object – đối tượng tĩnh) và một giành cho Target Cells (Moving Object – đối tượng động). View Cells là một bản đồ liệt kê các đối tượng tĩnh có thể nhìn thấy nhằm giúp cho kết quả của việc chọn lọc các đối tượng tĩnh được chính xác hơn. Điều quan trọng cần ghi nhớ là khi tạo đối tượng, chúng ta cần đảm bảo sự cân bằng giữa kích thước đối tượng
và kích thước của mỗi ô. Chúng ta không nên có các đối tượng quá nhỏ so với kích thước ô cũng như không nên có các đối tượng lớn bằng kích thước của nhiều ô.
Thỉnh thoảng chúng ta có thể cải thiện bằng việc chia một đối tượng lớn thành nhiều đối tượng nhỏ. Chúng ta có thể trộn (gộp) nhiều đối tượng nhỏ lại thành một để giảm số Draw calls nhưng nếu việc chúng được đặt trong cùng một ô sẽ làm cho Occlusion Culling sẽ không có hiệu quả. Tập hợp các ô và thông tin quyết định chúng có được nhìn thấy từ một ô khác hay không có tên gọi là PVS (Potentially Visible Set).
Công cụ Occlusion Culling trong Unity
Để sử dụng Occlusion Culling, chúng ta cần phải thực hiện một số thao tác cài đặt. Đầu tiên, màn chơi của chúng ta cần phải được chia nhỏ thành từng mảnh với kích thước hợp lý. Tiếp theo, đánh dấu (tag) các đối tượng mà chúng ta muốn chúng trở thành một phần dữ liệu trong quá trình thực hiện kỹ thuật Occlusion Culling.
Hình 2.9 Đánh dấu đối tượng.
Sau khi thực hiện các thao tác cài đặt cơ bản, chúng ta đã có thể sử dụng công cụ Occlusion Culling với các thẻ chứ năng mà Unity cung cấp để Unity tính toán và thu thập dữ liệu cho tối ưu hóa.
Hình 2.10 Thẻ Object trong công cụ Occlusion
Hình 2.11Thẻ Bake trong công cụ Occlusion
Hình 2.12 Thẻ Visualization trong công cụ Occlusion
Các thẻ Object, Bake, Visualization cung cấp chức năng cho phép chúng ta xác định vùng, các đối tương sẽ áp dụng Occlusion; xác định Camera cần dùng dữ liệu từ Occlusion Culling để xử lí, kết xuất hình ảnh.Cho
phép chúng ta tùy chọn về các giới hạn xa, gần, kích thước của các ô chứa đối tượng Occlusion.
Hình 2.13 Vùng và các ô áp dụng Occlsion Culling.
2.3. Kỹ thuật hiển thị mô hình Bump Mapping
Đặt vấn đề
Hiện nay hiệu ứng chiếu sáng trên từng điểm ảnh được sử dụng khá phổ biến trong các sản phẩm mô phỏng nhằm tăng cường chất lượng đồ họa mô phỏng. Thay vì chiếu sáng theo từng đỉnh vertex, per-pixel lighting cho chất lượng đồ họa cao hơn hẳn do có thể áp dụng nhiều thuật toán mới trong đồ họa 3 chiều như bump bề mặt bằng normal map, phản chiếu bề mặt bằng specular map… Ứng dụng khi tự thực hiện chiếu sáng trên điểm ảnh bằng Shaders phải giải quyết các tất cả các vấn đề về chiếu sáng như diffuse lighting, specular lighting… Diffuse lighting trong các thư viện chủ yếu sử dụng bump bằng normal map và specular lighting chủ yếu sử dụng specular map, 2 thuật toán chiếu sáng này sẽ được trình bày kỹ ở phần này.
Cơ sở lý thuyết
Qui trình chiếu sáng trên điểm ảnh chủ yếu phân ra làm 2 công đoạn riêng biệt: thực hiện tính toán màu chính (diffuse color) và tính toán màu phản chiếu (specular color). • Tính toán màu diffuse (có bump bề mặt bằng