1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu hiệu ứng bóng đổ từ hai nguồn sáng trong biểu diễn vật thể 3d

71 4 0

Đ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

Thông tin cơ bản

Tiêu đề Nghiên cứu hiệu ứng bóng đổ từ hai nguồn sáng trong biểu diễn vật thể 3D
Tác giả Nguyễn Thị Hồng Hạnh
Người hướng dẫn TS. Vũ Đức Thái
Trường học Đại học Thái Nguyên
Chuyên ngành Khoa học máy tính
Thể loại luận văn thạc sĩ
Năm xuất bản 2019
Thành phố Thái Nguyên
Định dạng
Số trang 71
Dung lượng 2,22 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN VỀ MÔ PHỎNG VÀ BÀI TOÁN HIỂN THỊ MÔ HÌNH 3D (10)
    • 1.1. Tổng quan về Thực tại ảo (10)
      • 1.1.1. Thực tại ảo (10)
      • 1.1.2. Các sản phẩm của Thực tại ảo (11)
    • 1.2. Môi trường và ngôn ngữ lập trình (14)
      • 1.2.1. Công cụ, phần mềm sử dụng (14)
      • 1.2.2. Bài toán mô phỏng thực tại ảo (16)
      • 1.2.3. Ứng dụng thực tại ảo trong trưng bày ảo (18)
    • 1.3. Kết luận (20)
  • CHƯƠNG 2. MỘT SỐ KỸ THUẬT HIỂN THỊ MÔ HÌNH 3D (22)
    • 2.1. Ánh sáng (22)
    • 2.2. Một số đơn vị đo lường ánh sáng (24)
    • 2.3. Hàm phân phối phản xạ hai chiều (BRDF) (28)
    • 2.4. Nguồn sáng và phân loại nguồn sáng (31)
    • 2.5. Phương trình chiếu sáng (33)
    • 2.6. Thuật toán Occlusion – Culling (34)
    • 2.7. Thuật toán Bump Mapping (39)
    • 2.8. Kỹ thuật biểu diễn bóng đổ (51)
    • 2.9. Phát triển bài toán ứng dụng (57)
  • Chương 3. MÔ PHỎNG HIỆU ỨNG BÓNG ĐỔ TỪ HAI NGUỒN SÁNG (59)
    • 3.1. Bài toán mô phỏng hiện vật tại bảo tàng (59)
      • 3.1.1. Yêu cầu với thực nghiệm (60)
      • 3.1.2. Xây dựng cơ sở dữ liệu mô phỏng (61)
    • 3.2. Phân tích, lựa chọn công cụ (61)
    • 3.3. Một số kết quả thực nghiệm tối ưu mô hình (62)
    • 3.4. Kết luận (67)
  • KẾT LUẬN (68)
  • TÀI LIỆU THAM KHẢO (69)

Nội dung

TỔNG QUAN VỀ MÔ PHỎNG VÀ BÀI TOÁN HIỂN THỊ MÔ HÌNH 3D

Tổng quan về Thực tại ảo

Thực tại ảo (Virtual Reality - VR) là một hệ thống mô phỏng sử dụng đồ họa máy tính để tạo ra một thế giới sống động và chân thực Công nghệ này cho phép người dùng trải nghiệm những môi trường ảo một cách tương tác và immersively, mang lại cảm giác như đang ở trong một không gian thực sự.

Công nghệ VR không chỉ đơn thuần là một trải nghiệm tĩnh mà còn phản ứng và thay đổi theo tín hiệu đầu vào từ người sử dụng, như hành động và lời nói Đặc điểm nổi bật của VR là khả năng tương tác thời gian thực, cho phép máy tính nhận biết và điều chỉnh thế giới ảo ngay lập tức theo mong muốn của người dùng Sự thay đổi này được hiển thị ngay trên màn hình, tạo nên sự thu hút mạnh mẽ từ mô phỏng Tương tác và khả năng hấp dẫn của VR góp phần tạo ra cảm giác đắm chìm, khiến người sử dụng cảm thấy như họ thực sự là một phần của hành động trên màn hình Hơn nữa, VR còn nâng cao cảm giác này bằng cách tác động lên tất cả các kênh cảm giác của con người, mang đến trải nghiệm sống động và chân thực hơn.

Hình 1.1: Một hệ thống VR tại Viện Fraunhofer (CHLB Đức)

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

1.1.2 Ứng dụng của Thực tại ảo

Tại các quốc gia phát triển, công nghệ thực tế ảo (VR) đã được áp dụng rộng rãi trong nhiều lĩnh vực như khoa học kỹ thuật, kiến trúc, quân sự, giải trí và du lịch, đồng thời đáp ứng đa dạng nhu cầu trong nghiên cứu, giáo dục, thương mại và dịch vụ.

Y học, du lịch là lĩnh vực ứng dụng truyền thống của VR Bên cạnh đó

Công nghệ VR đang được áp dụng rộng rãi trong nhiều lĩnh vực như giáo dục, nghệ thuật, giải trí, du lịch ảo và bất động sản Đặc biệt, trong lĩnh vực quân sự, VR đã trở thành một công cụ quan trọng tại các quốc gia phát triển Ngoài những ứng dụng truyền thống, VR còn có những ứng dụng mới nổi như trong sản xuất, ngành rôbốt và hiển thị thông tin, bao gồm thăm dò dầu mỏ và thị trường bất động sản Với tiềm năng ứng dụng lớn, có thể khẳng định rằng mọi lĩnh vực thực tế trong cuộc sống đều có thể được cải thiện và phát triển thông qua công nghệ thực tế ảo.

1.1.2 Các sản phẩm của Thực tại ảo

Thực tế ảo (Virtual reality) tạo ra môi trường 3D giả lập, mang đến trải nghiệm chân thực cho người dùng như họ đang ở trong không gian đó Ngoài thị giác, thực tế ảo còn tích hợp thính giác và cảm giác không gian, cho phép người dùng di chuyển và cầm nắm vật thể Một số sản phẩm nổi bật của thực tế ảo bao gồm:

 Trải nghiệm nhà mẫu ảo

– Dễ dàng thu hút khách hàng ở xa, xóa bỏ rào cản địa lý

– Giúp khách hàng có cái nhìn tổng quan và chi tiết về dự án

– Khách hàng có thể di chuyển, đi lại trong không gian nhà mẫu

– Hình ảnh đẹp, khám phá dưới nhiều góc nhìn

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Hình 1.2: Khám phá không gian dựán Bất Động Sản tại bất kỳ đâu

 Trải nghiệm du lịch khám phá

– Trải nghiệm ấn tượng đem đến sức hút lớn cho khách hàng

– Giúp khách hàng dễ dàng đưa ra lựa chọn phù hợp và nhanh chóng – Hình ảnh đẹp, choáng ngợp

Hình 1.3: Trải nghiệm du lịch tới mọi nơi trên thế giới

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Tương tác với mọi đồ vật trong không gian ảo với trải nghiệm như thật – Trải nghiệm hấp dẫn giúp thu hút khách hàng

– Giúp khách hàng có cảm nhận chân thực và dễ đưa ra quyết định mua hàng

– Dễ dàng xem từng chi tiết, cầm nắm các vật dụng

– Hình ảnh đẹp và chân thực

 Trải nghiệm không gian cửa hàng trưng bày mẫu xe

Cửa hàng trưng bày mẫu xe sẽ được số hóa thành không gian ảo và tích hợp lên kính thực tế ảo, cho phép khách hàng di chuyển và tương tác với không gian này từ bất kỳ đâu.

– Thể hiện góc nhìn toàn cảnh, không bị hạn chế góc nhìn

– Đi lại trải nghiệm từng góc cạnh của không gian cửa hàng

– Cung cấp thông tin chi tiết về từng mẫu xe

Hình 1.4: Cửa hàng trưng bày ôtô

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Trải nghiệm lái xe thực tế ảo với công nghệ VR cho phép khách hàng khám phá chi tiết và thiết kế tuyệt đẹp của xe Người dùng có thể tương tác bằng cách mở, đóng cửa, khởi động và thay đổi cấp, màu sắc của xe, mang đến cảm giác như đang lái một chiếc siêu xe thật sự.

– Gây ấn tượng với khách hàng trong sự kiện ra mắt mẫu xe mới

– Gia tăng trải nghiệm của người dùng đối với sản phẩm

– Thúc đẩy người dùng tương tác với thương hiệu của doanh nghiệp và có khả năng tiếp tục với quá trình bán hàng

Hình 1.5: Khám phá không gian xe

Môi trường và ngôn ngữ lập trình

1.2.1 Công cụ, phần mềm sử dụng

3DS Max là một ứng dụng mạnh mẽ cho mô hình hóa 3D, hoạt cảnh và rendering Với môi trường học tập dễ dàng, nó giúp các nghệ sĩ nhanh chóng tạo ra sản phẩm 3DS Max thường được sử dụng trong việc sản xuất phim, video nghệ thuật và phát triển game.

Trung tâm Học liệu và Công nghệ thông tin - ĐHTN đã số hóa các sản phẩm đa phương tiện 3DS Max hiện đang là phần mềm hàng đầu trong thiết kế trực quan, phát triển game, tạo hiệu ứng ảo và phục vụ cho công tác đào tạo.

Khóa học cung cấp hướng dẫn chi tiết từ việc làm chủ giao diện và thao tác điều khiển, tiến tới quy trình chuẩn của sản phẩm 3D tĩnh Nội dung bao gồm các bước quan trọng: Dựng hình (Modelling), Gán vật liệu (Mapping & Shading), Thiết lập ánh sáng (Lighting) và Kết xuất ảnh (Rendering).

Hình 1.6:Giao diện phần mềm 3DS max

 Thư viện xử lý đồ họa OpenGL

OpenGL (Open Graphics Library) là một tiêu chuẩn kỹ thuật đồ họa nhằm cung cấp giao diện lập trình ứng dụng (API) cho đồ họa 3 chiều Nó hỗ trợ phát triển ứng dụng đồ họa bằng nhiều ngôn ngữ lập trình khác nhau như C/C++, Java, và Delphi, đồng thời cũng có thể được áp dụng trong đồ họa 2 chiều Giao diện này bao gồm khoảng 250 hàm cho phép vẽ các cảnh phức tạp từ những hàm đơn giản, và được sử dụng phổ biến trong ngành công nghiệp trò chơi điện tử cũng như trong nhiều ứng dụng đồ họa khác.

Trung tâm Học liệu và Công nghệ thông tin - ĐHTN đã số hóa các ứng dụng như CAD, thực tế ảo, mô phỏng khoa học và phát triển trò chơi Trong OpenGL, không gian được mô tả thông qua hình học xạ ảnh, trong đó mỗi điểm có bốn tọa độ Việc sử dụng bốn tọa độ này giúp xử lý một cách tổng quát các điểm vô tận trong không gian.

1.2.2 Bài toán mô phỏng thực tại ảo

VR là một hệ thống mô phỏng tương tác hai chiều với khả năng xử lý thời gian thực, đặc biệt nhờ vào kỹ thuật Stereo 3D, giúp người dùng đắm chìm trong không gian ảo Việc xây dựng mô hình 3D là bước quan trọng đầu tiên trong quá trình phát triển hệ thống VR Hiện nay, có hai xu hướng chính để thực hiện mô phỏng hình 3D.

Phương pháp đầu tiên để thể hiện các mô hình 3D là sử dụng ngôn ngữ lập trình truyền thống như C# Phương pháp này không yêu cầu cấu hình phần cứng mạnh mẽ và có khả năng thực hiện các mô phỏng phức tạp với độ chính xác cao Tuy nhiên, do yêu cầu về trình độ lập trình cao và các thuật toán phức tạp, nó không được phổ biến Ngoài ra, việc tạo ra các cảnh rộng lớn cũng gặp nhiều khó khăn Mặc dù không được ưa chuộng, phương pháp này đôi khi là lựa chọn duy nhất cho những ai cần mô phỏng chính xác các hiện tượng thiên nhiên, nhưng chỉ phù hợp với các mô phỏng quy mô nhỏ và trong mục đích học tập.

Cách thứ hai để thực hiện mô phỏng là sử dụng các công cụ đã được xây dựng sẵn, phương pháp này không yêu cầu trình độ lập trình cao và tiết kiệm thời gian, phù hợp với các mô phỏng không cần độ chính xác cao Tuy nhiên, nhược điểm lớn là nó cần cấu hình hệ thống mạnh để cài đặt và chạy, đặc biệt là trong quá trình kết xuất Dù vậy, phương pháp này đang ngày càng phổ biến, đặc biệt trong lĩnh vực Game 3D, Web3D và Phim 3D Một số bộ công cụ mô phỏng thông dụng hiện nay bao gồm

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

3DsMax, Maya, Autocad, Painter3D, VirtualML, Softimage, Renderman, Houdili, Lightware, Flash.v.v

Trạng thái đối tượng mô phỏng có 2 dạng chính: mô phỏng tĩnh và mô phỏng động

Mô phỏng tĩnh là loại mô phỏng chỉ thể hiện mô hình không có sự chuyển động hay biến đổi, thường áp dụng cho các vật thể tĩnh Đây là hình thức mô phỏng đơn giản nhất.

 Mô phỏng động: mô phỏng động được tách thành 2 loại, đó là mô phỏng động theo thời gian thực và mô phỏng động không theo thời gian thực:

Mô phỏng động theo thời gian thực là hình thức mô phỏng đối tượng có sự chuyển động và thay đổi theo thời gian, không gian Khi có tương tác, hệ thống cần đáp ứng sự kiện trong một khoảng thời gian nhất định; quá thời gian đó, kết quả sẽ không còn ý nghĩa Đây là dạng mô phỏng phức tạp và khó khăn nhất, nhưng đồng thời cũng là một đặc trưng quan trọng của Thực tế ảo (Virtual Reality).

Mô phỏng động không theo thời gian thực là loại mô phỏng không yêu cầu thời gian phản hồi, phù hợp cho việc xây dựng các hệ thống mô phỏng ít tương tác và không cần đáp ứng thời gian Để thực hiện mô phỏng, có hai phương pháp chính: phương pháp giả mô phỏng và phương pháp mô phỏng thật.

Phương pháp giả mô phỏng sử dụng kỹ thuật xử lý ảnh để tạo ra các đối tượng và hiệu ứng đánh lừa thị giác con người Ví dụ, nó có thể biến đổi hình ảnh 2D thành hình ảnh 3D hoặc áp dụng các phương pháp Texture để tạo ra chiều sâu và sự sống động cho hình ảnh.

Phương pháp mô phỏng thật sử dụng các kỹ thuật tạo đối tượng và hiệu ứng dựa trên các thuật toán khoa học, nhằm biểu diễn chính xác các tính chất vật lý của đối tượng thông qua các hàm biến đổi.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Mỗi phương pháp đều có những ưu và nhược điểm riêng, do đó, việc lựa chọn phương pháp phù hợp để xây dựng phụ thuộc vào mức độ quan trọng của đối tượng trong hệ thống.

1.2.3 Ứng dụng thực tại ảo trong trưng bày ảo

Trưng bày ảo đã trở thành một công cụ quan trọng trong nhiều lĩnh vực, từ bảo tàng đến thương mại điện tử và văn hóa nghệ thuật Trong bảo tàng, trưng bày ảo cho phép khách tham quan khám phá hiện vật mà không cần đến tận nơi, nâng cao trải nghiệm người dùng Trong thương mại, nó giúp nhà sản xuất quảng bá sản phẩm một cách chính xác và hiệu quả Công nghệ như Thực tại ảo và Thực tại tăng cường đã mở ra khả năng tương tác với hiện vật ảo, giải quyết các vấn đề như thiếu hiện vật và chi phí sản xuất mẫu Tuy nhiên, để phát triển ứng dụng trưng bày ảo, cần nghiên cứu và giải quyết nhiều vấn đề như tối ưu hóa mô hình và quản lý.

Kết luận

Ứng dụng thực tại ảo trong đời sống đã giải quyết nhiều vấn đề phức tạp mà khó có thể xử lý nếu không có công nghệ này Những thách thức mà thực tại ảo giúp vượt qua thường có hiệu quả cao hơn so với các phương pháp truyền thống.

Trung tâm Học liệu và Công nghệ thông tin – ĐHTN đã số hóa tài liệu với chi phí cao, nhưng việc ứng dụng thực tại ảo đã làm cho các vấn đề trở nên đơn giản hơn Hiệu quả mang lại từ công nghệ này là rất lớn, cả về mặt vật chất lẫn tinh thần.

Luận văn nghiên cứu xây dựng chương trình mô phỏng sự tạo bóng của một vật thể dưới tác động của hai nguồn sáng, với hình ảnh mô phỏng là không gian trưng bày tại bảo tàng Văn hóa các dân tộc Việt Nam ở Thái Nguyên Chương 2 sẽ trình bày lý thuyết và thuật toán được sử dụng trong quá trình cài đặt mô phỏng.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

MỘT SỐ KỸ THUẬT HIỂN THỊ MÔ HÌNH 3D

Ánh sáng

Ánh sáng là một loại bức xạ với hai tính chất chính: sóng điện từ và hạt Khi ánh sáng tương tác với bề mặt, nó tạo ra hai hiệu ứng chính là “bóng bề mặt” và “bóng đổ” Hiệu ứng “bóng bề mặt” xảy ra khi ánh sáng phản xạ từ bề mặt, cho phép mắt chúng ta nhận biết đối tượng Ngược lại, khi ánh sáng gặp bề mặt không trong suốt, nó không thể tiếp tục truyền đi, dẫn đến hiện tượng “bóng đổ”, nơi các điểm phía sau không nhận được ánh sáng từ nguồn sáng.

Trong quang học sóng, ánh sáng được xem là một dạng sóng điện từ, và do đó nó tuân theo các quy luật của sóng như quy luật truyền thẳng, phản xạ và khúc xạ Năng lượng của ánh sáng trong trường hợp này cũng được xem xét.

Ánh sáng được tạo ra từ dao động điện từ trường, với hướng dao động điện trường và từ trường vuông góc nhau, cho phép ánh sáng truyền đi trong không gian Ánh sáng này, được gọi là "phân cực tuyến tính", có sóng điện trường và từ trường giao động trên một mặt phẳng cố định Dựa vào tính chất phân cực của ánh sáng khi đi qua các vật liệu đặc biệt, người ta đã phát triển các hệ thống hiển thị hình ảnh 3D như máy chiếu 3D, ti vi 3D và kính 3D Sự phát triển của các thiết bị này đóng vai trò quan trọng trong sự tiến bộ của lĩnh vực thực tế ảo (VR) hiện nay.

Trong quang học hạt, ánh sáng được mô tả như những hạt photon di chuyển với tốc độ ánh sáng Mỗi photon mang một năng lượng cụ thể, phụ thuộc vào tần số và độ dài bước sóng của ánh sáng.

Khả năng quan sát của con người đối với ánh sáng khác nhau tùy thuộc vào bước sóng Con người có thể nhìn thấy ánh sáng trong khoảng từ 380nm đến 780nm, trong khi ánh sáng có bước sóng lớn hơn được gọi là hồng ngoại và nhỏ hơn là tử ngoại, mà con người không thể quan sát được Điều này cho thấy khả năng nhìn của con người không đồng đều đối với từng loại ánh sáng trong khoảng nhìn thấy.

Hình 2.1 là đồ thị thể hiện khả năng quan sát của con người với từng mức sóng cụ thể của ánh sáng

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Hình 2.1 Khả năng quan sát của con người tương ứng với từng mức sóng

Trong đồ họa 3D, tính chất sóng - hạt của ánh sáng được thể hiện qua các quy luật hình học và quang học Để hiểu rõ hơn về những quy luật này, trước tiên chúng ta cần tìm hiểu một số đơn vị đo lường ánh sáng quan trọng.

Một số đơn vị đo lường ánh sáng

Ánh sáng là bức xạ điện từ, vì vậy việc đo lường ánh sáng cũng đồng nghĩa với việc đo lường bức xạ Dưới đây là những đơn vị đo lường phổ biến trong các nguyên tắc xây dựng hình ảnh.

Góc khối là khái niệm trong Toán học và Vật lý, mô tả các góc trong không gian ba chiều giữa một vật thể và một điểm quan sát Tương tự như góc trong mặt phẳng hai chiều, góc khối giúp ước lượng kích thước của vật thể từ vị trí quan sát, ví dụ như một vật thể nhỏ nhưng gần điểm quan sát sẽ có góc khối lớn hơn.

Góc khối là một khái niệm quan trọng trong hình học không gian, được ký hiệu là ω và có đơn vị đo là steradian (sr) Nó có thể lớn hơn một vật thể có kích thước lớn nếu vật thể đó được đặt xa điểm quan sát Độ lớn của góc khối được tính toán dựa trên tỷ lệ giữa diện tích S của hình chiếu của vật thể lên một hình cầu có tâm là điểm quan sát và bình phương bán kính R của hình cầu đó.

Steradian là đơn vị đo góc khối, tương tự như radian trong không gian hai chiều, với ω = 1 steradian khi S = R² Góc khối của toàn bộ mặt cầu là 4π sr, trong khi góc khối của bán cầu là 2π sr Ngoài ra, góc khối còn có hai đơn vị không chính thức khác là độ vuông (deg²) và diện tích tỉ lệ, trong đó deg² được tính bằng công thức deg² = (180/π)².(sr) và diện tích tỉ lệ là 1/4π.(sr).

Góc khối không phải là đơn vị đo lường ánh sáng trực tiếp, nhưng nó đóng vai trò quan trọng trong nhiều đơn vị đo khác và các quy tắc liên quan đến ánh sáng.

 Năng lượng bức xạ (Radiant Energy)

Năng lượng bức xạ: hiểu đơn giản là lượng năng lượng (công) được vận chuyển thông qua ánh sáng Nó thường được ký hiệu là Q, và đo bằng joule [J

= Ws = Nm= kgm 2 s -2 ].Năng lượng bức xạ phụ thuộc vào số lượng photon và tần số (mức năng lượng) của các photon

 Thông lượng bức xạ (Radiant Flux) hay Công xuất bức xạ (Radiant

Công suất bức xạ, ký hiệu là Φ, được định nghĩa là lượng năng lượng bức xạ phát ra trong một đơn vị thời gian, với đơn vị đo lường là watt [W] Công thức tính công suất bức xạ là Φ = ∫ 𝑊(𝜆)𝑑𝜆, trong đó Φ nhấn mạnh rằng công suất bức xạ có thể được tính bằng cách tích phân theo thời gian của W(λ).

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Hàm năng lượng của nguồn phát 𝑊(𝜆) tương ứng với bước sóng 𝜆, trong đó độ nhạy cảm của mắt với từng bước sóng khác nhau ảnh hưởng đến hiệu suất bức xạ Để đánh giá cảm thụ ánh sáng của mắt, người ta kết hợp hàm độ lợi của mắt theo bước sóng, dẫn đến công thức đo thông lượng trên đặc điểm cảm thụ của mắt: Φ = ∫ 𝑡𝑖𝑚 𝑑𝑜 𝑊(𝜆)𝑉(𝜆)𝑑𝜆, với đơn vị là lumen Hàm 𝑉(𝜆) biểu diễn khả năng cảm thụ của mắt người tương ứng với từng bước sóng.

Độ rọi bức xạ (Irradiance) và độ tỏa sáng (Radiant Exitance) là hai hình thức của mật độ thông lượng Độ rọi bức xạ, ký hiệu là E, được tính theo một công thức cụ thể.

Độ rọi E được tính bằng công thức E = dΦ/dA, với dΦ là thông lượng bức xạ đến một bề mặt và dA là diện tích bề mặt Độ tỏa sáng, ngược lại, là thông lượng bức xạ trên một đơn vị diện tích thoát ra từ bề mặt Trong đồ họa máy tính, độ tỏa sáng thường được gọi là radiocity và được ký hiệu bằng một ký hiệu đặc trưng.

B(x), người ta tính độ tỏa sáng bởi công thức sau:

Cả độ rọi bức xạ và độ tỏa sáng đều sử dụng một đơn vị đo lường đó là

Trong quang học sóng, mật độ thông lượng được định nghĩa là sản phẩm của điện từ trường, tỷ lệ thuận với biên độ của các thành phần sóng điện và sóng từ Do đó, nó cũng tỷ lệ thuận với bình phương biên độ của sóng ánh sáng nói chung.

 Cường độ bức xạ (Radiance)

Cường độ bức xạ là phép đo lượng ánh sáng phát ra hoặc đi qua một khu vực cụ thể trong một đơn vị góc khối theo hướng nhất định, trên một đơn vị diện tích bề mặt Thông số này có vai trò quan trọng trong việc đánh giá mức độ phóng xạ của một khu vực.

Cường độ bức xạ từ một nguồn khuếch tán hoặc phản xạ của bề mặt khuếch tán được đo bằng watts trên mỗi mét vuông (W/m²) trong mỗi đơn vị góc khối (sr) Điều này cho thấy rằng bề mặt gần nguồn sáng nhận được nhiều năng lượng hơn so với bề mặt ở xa, tức là cường độ bức xạ tỷ lệ nghịch với khoảng cách Cường độ bức xạ thường được ký hiệu là L và có thể được tính theo một công thức nhất định.

Trong hệ tọa độ cầu, trường hợp L(x,θ,ϕ) có θ là góc thiên đỉnh và ϕ là góc phương vị Đối với L(x,ω), ω là hướng ánh sáng, trong khi θ là góc giữa hướng ánh sáng và vector pháp tuyến tại điểm x Thông lượng bức xạ phát ra trên đơn vị diện tích dA được biểu diễn trong đơn vị góc khối dω.

Radiance là một yếu tố quan trọng trong đồ họa máy tính, đóng vai trò là hằng số theo đường thẳng trong không gian Đại lượng này được sử dụng rộng rãi trong các hệ thống rendering, bao gồm cả ray-tracers và đồ họa tương tác với bộ tăng tốc đồ họa.

Trong đồ họa máy tính, nguồn sáng điểm được mô phỏng như một nguồn phát ra năng lượng bức xạ từ một điểm duy nhất trong không gian ba chiều Tuy nhiên, Radiance không phải là đại lượng phù hợp để đo độ sáng của nguồn ánh sáng này, do có sự kỳ dị tại vị trí trung tâm của nguồn sáng, nơi mà hướng nguồn sáng và góc θ không thể xác định.

Hàm phân phối phản xạ hai chiều (BRDF)

Để tính toán độ chiếu sáng trong một cảnh, việc xác định các thuộc tính bề mặt của các đối tượng là rất quan trọng Những thuộc tính này có thể được mô tả bằng một hàm số, và trong đồ họa máy tính, hàm phân phối phản xạ hai chiều (BRDF) thường được sử dụng để mô hình hóa các đặc tính bề mặt.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Hàm phân phối phản xạ hai chiều (BRDF) là mô hình chủ yếu để mô tả phản xạ cục bộ từ một nguồn sáng đến điểm quan sát trên bề mặt BRDF được định nghĩa là tỷ số giữa cường độ bức xạ L0 phát ra từ bề mặt tại điểm x theo hướng ω0 và độ rọi bức xạ Li đến bề mặt theo hướng ωi, được thể hiện qua công thức dưới đây.

Đơn vị đo lường của BRDF là [sr -1 ], xác định mức độ phản xạ ánh sáng tại bề mặt Tương tự, hàm phân phối truyền qua (BTDF) mô tả mức sáng truyền qua bề mặt Sự kết hợp giữa BRDF và BTDF được gọi là hàm phân phối tán xạ hai chiều.

(bidirectional scattering distribution function ký biệu là BSDF)

Mặc dù BRDF là công cụ phổ biến trong đồ họa máy tính, nhưng không thể mô hình hóa hoàn toàn các hiệu ứng ánh sáng tương tác với bề mặt chỉ bằng các hàm BRDF và BTDF Để đạt được điều này, chúng ta cần đơn giản hóa và giới hạn nhiều yếu tố và điều kiện.

Trung tâm Học liệu và Công nghệ thông tin – ĐHTN đã thực hiện số hóa, cho phép mô hình hóa các hiệu ứng ánh sáng thông qua các hàm BRDF (BTDF) Các ràng buộc và giả thiết đơn giản hóa được áp dụng để đảm bảo tính chính xác trong quá trình mô hình hóa.

 Ánh sáng phản xạ từ bề mặt có cùng tần số với ánh sáng đến bề mặt

Hiện tượng huỳnh quang xảy ra khi bề mặt được nung nóng hoặc chiếu sáng bởi một nguồn phát, khiến các electron trên bề mặt nhận năng lượng và chuyển từ mức năng lượng S0 lên S* Các electron ở mức năng lượng cao có xu hướng trở về mức năng lượng ban đầu S0 trong khoảng thời gian từ 10^-12 đến 10^-9 giây Khi quay trở lại mức S0, electron giải phóng năng lượng dưới dạng photon, thường có mức năng lượng thấp hơn so với mức năng lượng mà electron đã nhận.

Ánh sáng phản xạ ngay lập tức khi được chiếu sáng, với năng lượng photon không được lưu trữ mà tái phát dưới dạng lân quang Hiện tượng lân quang tương tự như huỳnh quang, nhưng khác biệt ở chỗ các electron ở mức năng lượng cao tồn tại lâu hơn, thường từ vài mili giây đến hàng phút, và trong một số trường hợp đặc biệt, có thể kéo dài tới hàng giờ.

Trong không gian trống rỗng, ánh sáng di chuyển mà không có sự can thiệp của phương tiện truyền thông Khi ánh sáng đến điểm đích, nó chỉ tác động tại bề mặt mà không bị phân tán trong các vật thể xung quanh, điều này tạo ra sự phân biệt rõ ràng giữa môi trường và các vật thể trong suốt.

 Hệ số phản xạ và hệ số truyền qua

Mặc dù BRDF cung cấp một mô tả chi tiết về thuộc tính bề mặt, vẫn có một số ngoại lệ, chẳng hạn như khi tính toán BRDF cho gương hoàn.

Trung tâm Học liệu và Công nghệ thông tin - ĐHTN đã tiến hành số hóa tài liệu nhằm nâng cao chất lượng học tập Tia phản xạ   0 sẽ đạt giá trị tối ưu khi tương ứng với tia   i, và sẽ bằng 0 trong các trường hợp khác.

Hệ số phản xạ, ký hiệu là , là một đặc trưng định lượng quan trọng cho thuộc tính phản xạ của bề mặt, được định nghĩa là tỉ số giữa thông lượng phản xạ.

Giá trị của hệ số phản xạ  nằm trong khoảng [0, 1] Việc chuyển đổi giữa hệ số phản xạ và BRDF không phải lúc nào cũng đơn giản, mà chỉ khả thi trong một số trường hợp đặc biệt, chẳng hạn như với bề mặt khuếch tán (Lambertian), khi f r là hằng số, thì có =π f r.

Hệ số phản xạ và hệ số truyền qua (r) được định nghĩa là tỷ lệ giữa thông lượng ánh sáng truyền qua và thông lượng ánh sáng nhận được tại bề mặt Phần ánh sáng còn lại bị hấp thụ tại bề mặt được xác định bởi hệ số hấp thụ (ký hiệu là α), là tỷ lệ giữa lượng ánh sáng hấp thụ và lượng ánh sáng đến bề mặt Tổng của hệ số phản xạ, hệ số truyền qua và hệ số hấp thụ luôn luôn bằng 1.

Nguồn sáng và phân loại nguồn sáng

Nguồn sáng là mọi thứ phát ra ánh sáng, cần thiết để quan sát sự vật trong thế giới Trong tự nhiên, có nhiều nguồn sáng như mặt trời, đốm lửa, bóng điện, đèn, nến và các nguồn sáng phản chiếu như gương hay vật kim loại bóng Nguồn sáng có thể được phân loại theo nhiều tiêu chí, trong đó có khả năng phát sáng, chia thành hai loại chính.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Nguồn phát sáng là các nguồn sáng tự nhiên hoặc nhân tạo, như mặt trời, bóng đèn và ngọn nến, phát ra tia sáng Trong đồ họa 3D thời gian thực, chúng ta chỉ tập trung vào loại nguồn sáng này để tạo ra hiệu ứng ánh sáng chân thực.

Nguồn sáng phản chiếu là loại ánh sáng phát sinh từ việc ánh sáng phản xạ từ các nguồn phát khác, như gương, mặt nước, hoặc vật kim loại bóng cao Các nguồn sáng này có thể được phân loại thành nhiều dạng khác nhau, bao gồm nguồn sáng phản xạ lập tức, nguồn huỳnh quang và nguồn lân quang.

Khi phân loại nguồn sáng theo kích thước, không gian và phạm vi chiếu sáng, chúng ta có thể chia nguồn sáng thành nhiều loại khác nhau, đây là cách phân loại phổ biến trong hầu hết các hệ thống render.

Nguồn sáng điểm (point light) là nguồn phát sáng từ một điểm duy nhất trong không gian, với cường độ sáng đồng nhất ở mọi hướng trong hình cầu bao quanh điểm đó Do ánh sáng phát ra từ một điểm, mức năng lượng mà một điểm bất kỳ trên bề mặt nhận được tỷ lệ nghịch với bình phương khoảng cách từ nó tới nguồn sáng.

Nguồn sáng song song, hay còn gọi là ánh sáng định hướng, là loại ánh sáng đặc biệt với các tia sáng chiếu đi song song, đảm bảo mỗi điểm nhận được lượng năng lượng đồng nhất Mặt trời là ví dụ điển hình cho nguồn sáng này, bên cạnh đó, nhiều nguồn sáng nhân tạo như đèn pha và đèn pin cũng được phát triển để chiếu sáng xa.

 Nguồn sáng điểm giới hạn: phạm vi phát theo một hướng, một góc khối nhất định (spot light)

Various types of light sources, including point light, spot light, and directional light, are widely utilized in rendering models that employ graphics acceleration technology.

Trong đồ họa 3D, có nhiều loại nguồn sáng không phổ biến, bao gồm nguồn sáng phát từ một đối tượng và nguồn sáng song song với những hạn chế như chỉ chiếu trong một khu vực hình trụ Tuy nhiên, do yêu cầu về tốc độ và đặc tính phức tạp của các dạng nguồn sáng này, người ta chủ yếu sử dụng ba loại nguồn sáng chính trong quá trình thiết kế.

Phương trình chiếu sáng

Các thuộc tính của bề mặt và mối quan hệ giữa ánh sáng tới, ánh sáng phản xạ và khúc xạ đã được trình bày Từ đó, chúng ta có thể mô tả sự chiếu sáng của một cảnh thông qua một phương trình đặc trưng cho tất cả các sự phản xạ trong cảnh, được gọi là phương trình tô bóng hay phương trình render Phương trình tô bóng này lần đầu tiên được Kajiya giới thiệu vào năm 1986.

Cường độ bức xạ L 0 tại một điểm x theo hướng   0 được xác định bằng tổng cường độ bức xạ L e phát ra từ bề mặt (nếu bề mặt là nguồn phát, nếu không L e bằng 0) và cường độ bức xạ phản xạ từ các nguồn sáng chiếu sáng lên bề mặt đó.

Phương trình bóng (1.9) mô tả phản xạ toàn cục, cho phép tính toán ánh sáng từ các nguồn gián tiếp trong cảnh Tuy nhiên, việc tính toán ánh sáng từ nguồn gián tiếp rất phức tạp và không phù hợp cho thời gian thực Vì vậy, hầu hết các thiết bị tăng tốc đồ họa hiện nay chỉ hỗ trợ ba loại nguồn sáng cơ bản Với ba loại nguồn sáng này, chúng ta có thể đơn giản hóa công thức (1.9) như sau:

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Cường độ ánh sáng tại điểm x do nguồn sáng thứ j được biểu thị bằng I j, trong đó g là cường độ bức xạ Đối với nguồn sáng điểm và nguồn sáng chiếu (spot light), công thức tính g là g=w/r², trong khi với nguồn sáng song song, g là hằng số với giá trị g=w/m² Ở đây, w là công suất phát sáng tính bằng watt (W), r là khoảng cách từ bề mặt đến nguồn sáng, và m² là diện tích hình chiếu vuông góc với hướng chiếu sáng Thông thường, g được xem là hằng số trong các tính toán này.

Trong bài viết này, chúng ta giả định rằng mọi điểm trên bề mặt đều được chiếu sáng và có thể nhìn thấy nguồn sáng mà không bị che khuất Tuy nhiên, để thể hiện hiệu ứng bóng đổ, chúng ta có thể điều chỉnh hàm g thành g * (x,i) = g(x,i) * v(x,i), trong đó v(x,i) bằng 0 nếu điểm x không quan sát được nguồn sáng i và bằng 1 trong trường hợp ngược lại.

MỘT SỐ KỸ THUẬT HIỂN THỊ MÔ HÌNH 3D

Với khối lượng dữ liệu hình học và mô phỏng chất liệu kiến trúc lớn, việc sử dụng các kỹ thuật tăng tốc đồ họa 3D trên máy tính hiệu năng cao là cần thiết Các kỹ thuật như chọn lọc, phân mức chi tiết và thay thế ảnh trở nên quan trọng Thuật toán chọn lọc là một trong những phương pháp phổ biến để thị sát cảnh, đặc biệt trong các khu vực địa hình rộng lớn với kiến trúc kín Tuy nhiên, kỹ thuật này chưa được ứng dụng rộng rãi Thay vào đó, hình ảnh được sử dụng làm cơ sở cho việc tái hiện không gian trưng bày tại viện bảo tàng thông qua kỹ thuật thay thế ảnh 3D bằng ảnh 2D, giúp giảm thời gian tái tạo cảnh trên máy tính bằng cách thay thế dữ liệu hình học và vật liệu bằng các ảnh kỹ thuật cao.

Thuật toán Occlusion – Culling

Mô hình hóa và mô phỏng các đối tượng trong viện bảo tàng gặp nhiều khó khăn do sự phức tạp và chi tiết chân thực của các vật thể.

Chúng ta gặp khó khăn trong việc chụp ảnh tất cả các vị trí trưng bày của bảo tàng và không thể vẽ ra những gì không nhìn thấy Để hỗ trợ hiệu quả và tạo ra những đối tượng, góc nhìn phù hợp, thuật toán Occlusion Culling (OC) có thể được áp dụng.

Thuật toán OC cho phép hiển thị các đặc trưng chi tiết với độ phức tạp chiều sâu cao, nghĩa là số lần một pixel trên màn hình xuất hiện trong quá trình dựng cảnh Hình 2.3 minh họa ba góc nhìn khác nhau của cùng một cảnh, cho thấy rõ ràng sự phức tạp chiều sâu với nhiều phóng đại Ảnh bên phải thể hiện độ phức tạp chiều sâu của hình ảnh, với các pixel sáng hơn xuất hiện nhiều lần khi được phóng đại.

Để giảm phức tạp chiều sâu trong đồ họa máy tính, Occlusion Culling (OC) được áp dụng để loại bỏ các đối tượng không cần thiết Khi một đối tượng A hoàn toàn bị che khuất bởi đối tượng B, A sẽ không cần được vẽ, giúp tối ưu hóa hiệu suất OC là quá trình chọn lọc, loại bỏ các thành phần không đóng góp vào hình ảnh cuối cùng, bao gồm những đối tượng nằm sau người quan sát hoặc màn hình Hệ thống OC tiên tiến còn có khả năng ẩn các đối tượng sau những đối tượng khác Quá trình này dựa trên việc so sánh ranh giới không gian của các đối tượng với khung nhìn hình chóp cụt trong không gian 3 chiều.

Trong phần tiếp sau, sẽ trình bày shadow volumes như một cách có thể thực hiện được để thực hiện OC

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn a) Đánh bóng các khối Shadow volumes

Trong hình 2.4 biểu diễn các vật và ánh sáng chiếu đến, các đường màu đen cho thấy miền quan sát:

Hình 2.4: Trước khi Occlusion Culling

Khối bóng tạo ra như trong hình 2.5

Khối bóng trong hình 2.5 thể hiện vùng không gian tối mà các đối tượng không thể nhìn thấy được khi nằm trong bóng của một đối tượng khác Giải pháp cho vấn đề này là xác định các đối tượng nằm trong khối bóng, vì chúng không phản chiếu ánh sáng đến mắt người quan sát Trong hình, các khối bóng được hiển thị cùng màu với đối tượng mà chúng thuộc về, và đường màu xanh được xác định là lỗ hổng quan trọng nhất, nơi ánh sáng bị cản trở.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn b) Tìm các occluder tốt

Mục tiêu của thuật toán shadow volume là giảm độ phức tạp chiều sâu, tuy nhiên, việc tạo shadow volume cho từng đối tượng trong cảnh có thể dẫn đến chi phí tổng thể cao hơn lợi ích tiết kiệm Do đó, cần lựa chọn một số đối tượng cụ thể trong cảnh để làm occluder hiệu quả nhất.

Trong một cảnh bao gồm polygon soup, không có sự phân cấp hay phân chia nào, điều này đòi hỏi phải tìm kiếm các đa giác lớn để làm occluder Việc sử dụng các đa giác mang lại lợi ích lớn vì nó đơn giản hóa quy trình: việc tạo shadow volume cho các đối tượng rắn thường khó khăn, nhưng đối với các đa giác, vấn đề này trở nên dễ dàng hơn nhiều.

Để chọn một occluder hiệu quả, nên bắt đầu bằng cách xác định đa giác lớn nhất trong cảnh Nếu chỉ làm việc với các hình tam giác, việc nhóm một số tam giác thành một đa giác lớn có thể mang lại hiệu quả tốt hơn Các tam giác vẫn có thể được sử dụng cho việc rendering, vì vậy điều này không gây vấn đề Tuy nhiên, cần nhớ rằng occluder phải là lồi để đảm bảo tính hiệu quả.

Khi đã chọn một nhóm đa giác lớn, cần kiểm tra xem chúng có phải là các occluder hiệu quả hay không Điều này có thể thực hiện bằng cách tạo một tập hợp ngẫu nhiên các điểm nhìn xung quanh đa giác và đánh giá số lượng đa giác khác mà chúng che khuất từ các điểm nhìn đó Quan trọng là chỉ chọn những điểm nhìn mà người dùng ứng dụng có thể tiếp cận được, do đó cần xác minh rằng các điểm nhìn thực sự nằm bên ngoài cảnh Cuối cùng, giữ lại những occluder mang lại kết quả tốt nhất và loại bỏ những occluder kém hiệu quả.

Việc lựa chọn các occluder là một bước tiền xử lý quan trọng, vì quá trình thử nghiệm và lỗi có thể kéo dài thời gian thực hiện Tuy nhiên, sau khi đã chọn được occluder phù hợp, mọi thứ sẽ trở nên đơn giản hơn trong quá trình rendering.

Để tối ưu hóa quá trình culling trong xử lý occluder, cần tạo shadow volume cho chúng và loại bỏ những đối tượng không nằm trong tầm nhìn Việc sắp xếp các occluder theo thứ tự quan trọng sẽ giúp cải thiện hiệu suất, với occluder quan trọng nhất được xử lý trước Để xác định mức độ quan trọng của một occluder, cần xem xét các số liệu như vùng không gian màn hình và khoảng cách đến camera Ngoài ra, những occluder quay mặt ra ngoài và nằm ngoài tầm nhìn nên được loại bỏ để tiết kiệm tài nguyên.

Tạo shadow volume cho một đa giác là một nhiệm vụ đơn giản, bắt đầu bằng việc định nghĩa mặt phẳng từ ba điểm Đối với mỗi cạnh của đa giác, cần tạo một mặt phẳng sử dụng hai đỉnh của cạnh cùng với vị trí camera Ngoài ra, cần thêm mặt phẳng lên đa giác mà nó nằm trên để tránh việc culling các đối tượng phía trước occluder Cuối cùng, đảm bảo rằng tất cả các pháp tuyến của mặt phẳng đều hướng cùng một phía, có thể là bên trong hoặc bên ngoài của shadow volume.

Khi tạo ra một khối bóng, cần phải cắt xén toàn bộ cảnh để loại bỏ bất kỳ đối tượng nào bên trong, bao gồm cả các lỗ hổng Việc cắt xén này rất đơn giản: nếu một đa giác bị tiêu hủy, tất cả các đỉnh của nó phải nằm trong khối bóng Do đó, chỉ cần kiểm tra các điểm với các phương trình mặt phẳng của khối để thực hiện quá trình này.

Để tối ưu hóa hiệu suất kiểm tra đa giác trong cảnh so với các khối bóng, cần áp dụng một số phương pháp tăng tốc quá trình này nhằm giảm thiểu chi phí tính toán.

Cây octree là một cấu trúc dữ liệu trong đó mỗi nút nội bộ có thể có đến tám con, thường được sử dụng để phân vùng không gian ba chiều bằng cách chia nhỏ thành tám octants Octrees tương tự như cây tứ phân nhưng dành cho không gian ba chiều Tên gọi của nó được hình thành từ sự kết hợp giữa "Tháng Mười" và "cây", và thường được viết là "octree" Cấu trúc này cho phép kiểm tra các hộp một cách hiệu quả.

Thuật toán Bump Mapping

Bên cạnh thuật toán Occlusion Culling và các phương pháp khác như lọc và thay thế hình ảnh 3D, phần mềm mô phỏng còn áp dụng thuật toán mới là bump mapping để cải thiện chất lượng hình ảnh.

Bump mapping là một kỹ thuật đồ họa máy tính giúp tạo ra sự nhiễu loạn trên bề mặt của đối tượng bằng cách áp dụng ánh xạ texture tại mỗi điểm ảnh trước khi tính toán chiếu sáng, như trong Phong shading Kỹ thuật này mang lại kết quả phong phú và chi tiết hơn, gần gũi với đặc điểm tự nhiên Các phương pháp phổ biến để thực hiện bump mapping bao gồm ánh xạ pháp tuyến và ánh xạ thị sai, cùng với các kỹ thuật mới sử dụng thang màu xám truyền thống.

Bump mapping là một kỹ thuật đồ họa máy tính giúp tạo ra bề mặt trông thực tế hơn bằng cách mô phỏng texture bề mặt mấp mô và ánh sáng trong môi trường Kỹ thuật này điều chỉnh độ sáng của các điểm ảnh trên bề mặt, phản ứng với một ảnh raster heightmap được chỉ định cho từng mặt.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Hình 2.6: Một bề mặt phẳng được render với bump mapping

Khi biểu diễn cảnh 3D, ánh sáng và màu sắc của các điểm ảnh phụ thuộc vào sự tương tác giữa mô hình 3D và ánh sáng trong cảnh Để xác định đối tượng có thể nhìn thấy, lượng giác học được sử dụng để tính toán pháp tuyến bề mặt hình học, được định nghĩa như một vector tại mỗi điểm ảnh Ví dụ, ánh xạ tẩm phủ có thể tạo ra hiệu ứng cho hình ảnh 3D của một bức tường rung chuyển, với các ám hiệu ánh sáng và bóng giúp viên gạch trông 3D hơn Điều này có thể được mô tả như sự kết hợp của kết cấu màu đỏ, các trạng thái vẽ va chạm ánh xạ, ánh xạ ánh sáng cho bóng toàn cục và hiệu ứng chiếu sáng lóng lánh nếu đối tượng có kính hoặc kim loại nhỏ Bóng có thể được biểu thị bằng lập trình hoặc qua "cây đổ bóng", nơi các bóng nhỏ được chia nhỏ dần trong mẫu phân cấp, tùy thuộc vào khả năng hỗ trợ của scenegraph cho các khái niệm cao cấp.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Cây đổ bóng có khả năng linh hoạt chuyển đổi giữa các nền tảng phần cứng khác nhau, tùy thuộc vào khả năng đồ họa và các yếu tố khác Ví dụ, một số phần cứng hỗ trợ ánh xạ va chạm cấp cao, trong khi những phần cứng khác có thể không hỗ trợ ánh xạ bề mặt mấp mô nhưng vẫn tạo ra hiệu ứng tương tự thông qua việc điều chỉnh kết cấu cho các vùng sáng và tối Điều này cho phép cây đổ bóng có cấu trúc với một nút cha và ba nút con, đại diện cho ba sự chuyển đổi Hơn nữa, cây đổ bóng sẽ thay đổi theo từng phần mềm API, phân chia khái niệm giữa Spatial View và State View, từ đó tạo điều kiện cho việc điều khiển giao diện với các API đồ họa cơ sở như Intrinsic Alchemy, OpenGL hay DirectX.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Pháp tuyến bề mặt hình học định nghĩa cách mà đối tượng tương tác với ánh sáng từ một hướng nhất định thông qua phong shading hoặc các thuật toán chiếu sáng tương tự Ánh sáng vuông góc với bề mặt tương tác mạnh mẽ hơn so với ánh sáng song song Sau khi hoàn tất tính toán hình học ban đầu, một texture được áp dụng cho mô hình nhằm tạo ra sự hiện thực hơn cho đối tượng.

Sau khi kiến tạo, một tính toán được thực hiện cho mỗi điểm ảnh trên bề mặt của đối tượng

Thuật toán tính toán sự chiếu sáng tương tự trong cảnh tại mỗi điểm ảnh trên bề mặt đối tượng bao gồm hai công đoạn chính: tính toán màu chính (diffuse color) và tính toán màu phản chiếu (specular color) Bài viết này sẽ đi sâu vào quy trình chiếu sáng trên điểm ảnh mà các thư viện đồ họa hiện nay hỗ trợ.

Tính toán màu diffuse với bump bề mặt sử dụng normal map yêu cầu hiểu biết về không gian tiếp tuyến của vật thể Tại mỗi đỉnh, tọa độ texture tạo thành một hệ trục tọa độ 3 chiều, bao gồm trục U (tiếp tuyến) và các trục khác.

W (pháp tuyến) và trục V (binormal = U x W) Hệ trục tọa độ này gọi là không gian tiếp tuyến hay không gian texture của vật thể tại các đỉnh(vertex)

Normal map là một loại texture đặc biệt, khác với các texture thông thường, nó không chứa thông tin về màu sắc mà chứa thông tin về không gian tiếp tuyến (tangent space) của vật thể Trong khi các điểm ảnh của texture biểu diễn màu sắc tại một điểm cụ thể, normal map lại mô tả không gian tiếp tuyến của vật thể tại điểm đó Mỗi điểm ảnh trong normal map mang ý nghĩa riêng, giúp tăng cường độ chi tiết và chiều sâu cho bề mặt vật thể trong đồ họa 3D.

Số hóa tại Trung tâm Học liệu và Công nghệ thông tin – ĐHTN sử dụng định dạng RGBA, trong đó các thành phần RGB có giá trị từ [0 1] và được ánh xạ từ 3 trục U, V, W có giá trị trong khoảng [-1, 1] Normal map có thể được tạo ra bằng hai phương pháp: sử dụng height map, là một texture dạng grayscale chứa thông tin độ sâu của bề mặt vật thể, trong đó màu sáng hơn biểu thị độ cao lớn hơn; hoặc phương pháp phức tạp hơn, yêu cầu tạo ra một vật thể chi tiết hơn và so sánh sự khác biệt giữa hai vật thể để tạo ra normal map, quá trình này có thể thực hiện bằng công cụ Melody của NVidia.

Hình 2.8: Không gian tiếp tuyến

Bump bề mặt sử dụng normal map chủ yếu được thực hiện trên Pixel Shader cho từng điểm ảnh, cho phép xác định mức độ ánh sáng tác động vào điểm ảnh thông qua giá trị normal trong normal map Thuật toán này nhân tích vô hướng giá trị normal với vector hướng ánh sáng trong không gian tiếp tuyến, sau đó kết hợp với màu sắc của vertex và màu từ texture để tính toán màu diffuse.

- Normal Vector pháp tuyến (normal vector) tại điểm đó, normal vector có được do lấy mẫu từ normal map

The light vector represents the direction of light in tangent space, calculated in the Vertex Shader and passed to the Pixel Shader for further use Vertex color refers to the color of a vertex after the lighting calculations are applied in the Vertex Shader, specifically during per-vertex lighting Texture color is derived from the main texture by sampling it, providing the final color information for rendering.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Tính toán màu specular bằng cách sử dụng specular map, một loại texture grayscale, giúp xác định mức độ phản chiếu ánh sáng của các vùng khác nhau trên bề mặt vật thể Các vùng sáng trong specular map cho thấy nơi phản chiếu nhiều ánh sáng, trong khi các vùng tối biểu thị nơi phản chiếu ít ánh sáng.

Độ phản chiếu của ánh sáng trên vật thể phụ thuộc vào vị trí của mắt hoặc camera Khi mắt nằm trên đường phản xạ của ánh sáng, sẽ thấy một vùng ánh sáng chói do toàn bộ năng lượng ánh sáng truyền thẳng vào mắt Để tính màu specular của điểm ảnh, cần xác định mức độ ánh sáng phản chiếu tại điểm đó Công thức tính vector phản xạ được áp dụng trong quá trình này.

Hình 2.9: Sự phản xạ của tia sáng trên bề mặt

Mức độ phản chiếu của ánh sáng phụ thuộc vào chất liệu bề mặt của vật thể, với các bề mặt nhẵn bóng có độ phản chiếu cao hơn so với bề mặt gồ ghề Để đơn giản hóa quá trình dựng hình, cần tránh phân rã vật thể thành nhiều thành phần khác nhau với các mức phản chiếu khác nhau.

Kỹ thuật biểu diễn bóng đổ

Kỹ thuật ánh xạ bóng dựa trên việc bóng đổ của mỗi pixel chỉ phản ánh các đỉnh gần máy ảnh nhất Chỉ những phần vật thể gần nguồn sáng mới được vẽ vào vùng bóng và lưu vào bộ đệm Khi vẽ các đối tượng từ điểm quan sát, chúng ta xác định khoảng cách thực tế của mỗi đỉnh từ nguồn sáng và so sánh với giá trị trong bộ đệm sâu Nếu giá trị trong bộ đệm nhỏ hơn khoảng cách thực tế, điều đó có nghĩa là có vật thể nằm giữa đỉnh và máy ảnh, và cần phải thể hiện bóng đổ Để lấy giá trị lưu trữ cho các điểm đã vẽ, chúng ta cần ánh xạ hình ảnh chính xác và thêm bóng bằng cách gọi thủ tục PPModel.fx, sao chép hiệu ứng bóng và thêm các tham số tọa độ và độ dài của bóng.

Khoảng cách từ nguồn sáng đến mặt phẳng

Khoảng cách từ nguồn sáng đến vật

Khoảng cách từ nguồn sáng đến mặt phẳng > Khoảng cách từ nguồn sáng đến vật thì mới có bóng đổ

The Digital Center at Thai Nguyen University invites participants to submit their entries for the "Beautiful Check-in Photo Contest 2024" from October 5 to November 15, 2024, with winners announced on November 21, 2024 Photos must be taken at the Digital Center and shared publicly on personal Facebook pages, tagging the Digital Center's fan page and including the hashtag #BeautifulCheckin2024 Participants can reserve specific spaces for photography by contacting Ms Lan at 0985 883 279 The best entries will be awarded prizes based on quality and interaction, with results published on the Digital Center's website and fan page For inquiries, contact the organizing committee via email at vblan@tnu.edu.vn or visit the Digital Center directly.

Thủ tục VertexShaderOutput struct sẽ thêm giá trị vị trí không gian của đỉnh, của nguồn sáng float4 ShadowScreenPosition : TEXCOORD2;

Bóng đổ của đỉnh cần tính toán các giá trị sau: output.ShadowScreenPosition = mul(mul(input.Position, World), mul(ShadowView, ShadowProjection));

Để tạo biên của bóng phù hợp với hình ảnh thực tế, chúng ta cần lấy mẫu từ bề mặt vật Việc này đòi hỏi phải thu thập đủ số lượng mẫu để đảm bảo bóng mượt mà, nhưng không quá nhiều để tránh làm giảm tốc độ xử lý Hàm float sampleShadowMap(float2 UV) sẽ được sử dụng trong quá trình này.

{ if (UV.x < 0 || UV.x > 1 || UV.y < 0 || UV.y > 1) return 1; return tex2D(shadowSampler, UV).r;

Cuối cùng chúng ta dùng hàm để xác định kích thước từ độ sâu bề mặt vật ứng với bóng đổ của điểm float2 shadowTexCoord = postProjToScreen(input.ShadowScreenPosition)

+ halfPixel(); float mapDepth = sampleShadowMap(shadowTexCoord);

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Nếu chúng ta nhận giá trị trả về giá trị 1 nghĩa là sẽ tạo bóng đổ cho điểm xét trên bề mặt vật thể return float4(mapDepth, mapDepth, mapDepth, 1);

Before using this function to generate shadow values, it's essential to ensure that the threshold parameters are set to define the surface depth of the object In the `prepareMainPass()` function of `PrelightingRenderer`, check if the "DoShadowMapping" parameter exists and set its value accordingly If shadow mapping is disabled, the process should skip further execution Additionally, verify the existence of the "ShadowMap," "ShadowView," and "ShadowProjection" parameters and set their values to the respective shadow depth target, view, and projection.

Khi áp dụng thuật toán tạo bóng, bóng được tạo ra rất chính xác nhưng đôi khi không phản ánh đúng thực tế do sự giao thoa ánh sáng và nhiễu, dẫn đến hiện tượng bóng nhòe hoặc xuất hiện hai bóng riêng biệt khi có hai nguồn sáng mạnh Việc xử lý mờ bóng (soft shadow) là cần thiết để đảm bảo việc biểu diễn các vật thể trên bề mặt phức tạp được chính xác hơn.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

The surface of a material possesses two key values: the surface coverage value and the shading value The blurring process involves calculating the average of pixels and smoothing points The Gaussian function is utilized for these calculations, as demonstrated in the following code snippet: // The texture to blur texture ScreenTexture; sampler2D tex = sampler_state { texture = ; minfilter = point; magfilter = point; mipfilter = point;

// Precalculated weights and offsets float weights[15] = { 0.1061154, 0.1028506, 0.1028506, 0.09364651, 0.09364651, 0.0801001, 0.0801001, 0.06436224, 0.06436224, 0.04858317, 0.04858317,

// Blurs the input image horizontally float4 BlurHorizontal(float4 Position :

POSITION0, float2 UV : TEXCOORD0) : COLOR0

// Sample from the surrounding pixels using the precalculated

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

// pixel offsets and color weights for (int i = 0; i < 15; i++) output += tex2D(tex, UV + float2(offsets[i], 0)) * weights[i]; return output; } // Blurs the input image vertically float4 BlurVertical(float4 Position : POSITION0, float2 UV :

TEXCOORD0) : COLOR0 { float4 output = float4(0, 0, 0, 1); for (int i = 0; i < 15; i++) output += tex2D(tex, UV + float2(0, offsets[i])) * weights[i]; return output; } technique Technique1

Có hai kỹ thuật làm mờ hình ảnh: làm mờ theo chiều ngang và làm mờ theo chiều dọc Mỗi kỹ thuật này hoạt động độc lập, với mỗi pixel được điều chỉnh giá trị bóng đổ dựa trên độ lệch của giá trị trung bình Cụ thể, trong quá trình làm mờ theo chiều dọc, giá trị được tính toán từ 15 điểm láng giềng sẽ được thêm vào để tạo ra hiệu ứng mờ.

Những giá trị này có thể được tạo ra từ thủ tục: spriteBatch = new SpriteBatch(GraphicsDevice); shadowBlurEffect =

Content.Load("GaussianBlur"); shadowBlurTarg = new

RenderTarget2D(GraphicsDevice, shadowMapSize, shadowMapSize, false,

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Từ đó thủ tục làm mờ: void blurShadow(RenderTarget2D to, RenderTarget2D from, int dir)

// Set the target render target graphicsDevice.SetRenderTarget(to); graphicsDevice.Clear(Color.Black); spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.Opaque);

// Start the Gaussian blur effect shadowBlurEffect.CurrentTechnique.Passes[dir].Apply();

// Draw the contents of the source render target so they can

// be blurred by the gaussian blur pixel shader spriteBatch.Draw(from,

Vector2.Zero, Color.White); spriteBatch.End();

// Clean up after the sprite batch graphicsDevice.BlendState = BlendState.Opaque; graphicsDevice.DepthStencilState = DepthStencilState.Default;

// Remove the render target graphicsDevice.SetRenderTarget(null); }

Để hoàn thiện lớp Prelightingrenderer, cần điều chỉnh hàm Draw() sao cho có thể làm mờ hiệu quả Đầu tiên, sao chép hình ảnh từ nền sang ảnh bóng mờ theo chiều ngang, sau đó thực hiện tương tự theo chiều dọc.

{ drawShadowDepthMap(); blurShadow(shadowBlurTarg, shadowDepthTarg, 0); blurShadow(shadowDepthTarg, shadowBlurTarg, 1);

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Phát triển bài toán ứng dụng

Trưng bày ảo đang được ứng dụng rộng rãi để giải quyết nhiều vấn đề trong đời sống thực tế, đặc biệt trong bảo tàng Công nghệ này cho phép tạo ra các phòng trưng bày ảo, giúp khách tham quan có thể khám phá và tìm hiểu thông tin về các hiện vật mà không cần phải đến trực tiếp Nhờ vào các công nghệ mới, người dùng có thể tương tác với các hiện vật ảo như thể chúng là thật, từ đó khắc phục những vấn đề như thiếu hụt hiện vật, bảo quản chúng và giảm thiểu chi phí sản xuất mẫu trong thương mại.

Một trong những vấn đề quan trọng trong việc xây dựng ứng dụng trưng bày ảo là nghiên cứu ảnh hưởng của môi trường, đặc biệt là ánh sáng, đến biểu diễn bề mặt đối tượng Ảnh hưởng của nguồn sáng đến hiển thị đối tượng bao gồm hai khía cạnh chính: tác động đến việc hiển thị và thay đổi bề mặt đối tượng Chiếu sáng là yếu tố thiết yếu cho đồ họa ba chiều và trưng bày ảo, do đó, nghiên cứu về chiếu sáng trong trưng bày ảo là cần thiết Thực tế cho thấy, các đối tượng có thể thay đổi theo thời gian, vì vậy việc nghiên cứu ảnh hưởng của nguồn sáng và điều kiện môi trường không chỉ nâng cao chất lượng hình ảnh trong ứng dụng trưng bày ảo mà còn có thể hỗ trợ bảo tồn đối tượng thực, giúp giảm thiểu sự thay đổi và hư hại do ánh sáng và môi trường.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Mô phỏng ảnh hưởng của nguồn sáng đến bề mặt của đối tượng ba chiều nhằm phát triển hệ thống trưng bày ảo cho các hiện vật 3D Nghiên cứu tập trung vào hiệu ứng bóng đổ từ hai nguồn sáng trong không gian ba chiều Kết quả nghiên cứu sẽ được ứng dụng để xây dựng phần mềm trưng bày ảo cho một số hiện vật tại Bảo tàng Văn hóa các dân tộc Việt Nam ở thành phố Thái Nguyên.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

MÔ PHỎNG HIỆU ỨNG BÓNG ĐỔ TỪ HAI NGUỒN SÁNG

Ngày đăng: 19/06/2021, 08:32

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Trịnh Xuân Hùng, Lê Hải Khôi, Đỗ Năng Toàn, Trần Thanh Hiệp, Trịnh Hiền Anh, Hà Xuân Trường “ỨNG DỤNG CÔNG NGHỆ THỰC TẠI ẢO TRONG BẢO TÀNG CÁC DI SẢN” Kỷ yếu Hội thảo Quốc gia về Sách, tạp chí
Tiêu đề: ỨNG DỤNG CÔNG NGHỆ THỰC TẠI ẢO TRONG BẢO TÀNG CÁC DI SẢN
[3] Lê Hải Khôi, Đỗ Năng Toàn, Phạm Thế Anh, Trịnh Xuân Hùng (2005), “Một cách tiếp cận cho hiển thị hình ảnh 3 chiều”, Kỷ yếu Hội thảo Quốc gia về “Các vấn đề chọn lọc của CNTT”, Hải Phòng 25-27/8/2005, tr 396- 404 Sách, tạp chí
Tiêu đề: Một cách tiếp cận cho hiển thị hình ảnh 3 chiều”, Kỷ yếu Hội thảo Quốc gia về “Các vấn đề chọn lọc của CNTT
Tác giả: Lê Hải Khôi, Đỗ Năng Toàn, Phạm Thế Anh, Trịnh Xuân Hùng
Năm: 2005
[4] Trịnh Xuân Hùng, Trịnh Hiền Anh, Đỗ Văn Thiện, Hà Mạnh Toàn “Một kỹ thuật tăng tốc tính toán bóng cho hiển thị các đối tượng 3d trong thực tại ảo” Kỷ yếu hội thảo quốc gia về “Nghiên cứu cơ bản và ứng dụng công nghệ thông tin FAIR” Thái Nguyên 2014, tr 318-321 Sách, tạp chí
Tiêu đề: Một kỹ thuật tăng tốc tính toán bóng cho hiển thị các đối tượng 3d trong thực tại ảo” Kỷ yếu hội thảo quốc gia về “Nghiên cứu cơ bản và ứng dụng công nghệ thông tin FAIR
[5] Trịnh Xuân Hùng, Đỗ Năng Toàn, Đỗ Văn Thiện "Một kỹ thuật ước lượng pháp tuyến bề mặt đối tượng dựa trên tập ảnh thu được từ camera" Kỷ yếu hội thảo quốc gia về “Nghiên cứu cơ bản và ứng dụng công nghệ thông tin FAIR” Hà Nội 2015, tr 403-412Tiếng anh Sách, tạp chí
Tiêu đề: Một kỹ thuật ước lượng pháp tuyến bề mặt đối tượng dựa trên tập ảnh thu được từ camera" Kỷ yếu hội thảo quốc gia về “Nghiên cứu cơ bản và ứng dụng công nghệ thông tin FAIR
[7] Kajiya, J. T. (1986). "The rendering equation". Proceedings of the 13th annual conference on Computer graphics and interactive techniques.ACM. CiteSeerX 10.1.1.63.1402 Sách, tạp chí
Tiêu đề: The rendering equation
Tác giả: Kajiya, J. T
Năm: 1986
[9] ^ Purcell, T J; Buck, I; Mark, W; and Hanrahan, P, "Ray Tracing on Programmable Graphics Hardware", Proc. SIGGRAPH 2002, 703 – 712.See also Purcell, T, Ray tracing on a stream processor (PhD thesis), 2004 Sách, tạp chí
Tiêu đề: Ray Tracing on Programmable Graphics Hardware
[10] Robison, Austin, "Interactive Ray Tracing on the GPU and NVIRT Overview", slide 37, I3D 2009 Sách, tạp chí
Tiêu đề: Interactive Ray Tracing on the GPU and NVIRT Overview
[11] Dudka, Kamil. "RRV - Radiosity Renderer and Visualizer". Retrieved 1 February 2013 Sách, tạp chí
Tiêu đề: RRV - Radiosity Renderer and Visualizer
[13] Van Oosterom, A; Strackee, J (1983). "The Solid Angle of a Plane Triangle". IEEE Trans. Biom. Eng. BME-30 (2): tr 125–126 Sách, tạp chí
Tiêu đề: The Solid Angle of a Plane Triangle
Tác giả: Van Oosterom, A; Strackee, J
Năm: 1983
[15] Rusinkiewicz, S.. "A Survey of BRDF Representation for Computer Graphics". Retrieved 2007-09-05 Sách, tạp chí
Tiêu đề: A Survey of BRDF Representation for Computer Graphics
[16] Wolfgang Heidrich “High Quality Shadingand Lighting for Hardware accelerated Rendering” Erlangen–1999 Sách, tạp chí
Tiêu đề: High Quality Shadingand Lighting for Hardware accelerated Rendering
[17] Phong Bùi Tường, “Illumination for computer generated pictures”, Communications of ACM 18 (1975), no. 6, tr 311–317 Sách, tạp chí
Tiêu đề: Illumination for computer generated pictures
Tác giả: Phong Bùi Tường, “Illumination for computer generated pictures”, Communications of ACM 18
Năm: 1975
[6] ^ Appel A. (1968) Some techniques for shading machine renderings of solids. AFIPS Conference Proc. 32 pp.37-45 Khác
[8] Lafortune, E, Mathematical Models and Monte Carlo Algorithms for Physically Based Rendering, (PhD thesis), 1996 Khác
[18] BRENNAN, Tegan; MERITY, Stephen; WILSON, Taiyo. Monte Carlo methods for improved rendering Khác

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w