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

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

76 2 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 đề 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
Tác giả Hà Thị Chuyên
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 76
Dung lượng 2,1 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 I TỔNG QUAN VỀ THỰC TẠI ẢO (8)
    • 1.1. Tổng quan về thực tại ảo (8)
      • 1.1.1. Thực tại ảo là gì? (8)
      • 1.1.2 Ứng dụng của thực tại ảo (11)
      • 1.1.3. Lịch sử phát triển của Thực tại ảo (16)
    • 1.2. Môi trường và ngôn ngữ lập trình cho đồ họa 3D (18)
      • 1.2.1. Mô phỏng không gian 3D (18)
      • 1.2.2. Mô hình hóa mô hình 3D (19)
    • 1.3 Thế giới 3D (25)
    • 1.4. Kết luận (27)
  • CHƯƠNG II CÁC KỸ THUẬT XÁC ĐỊNH VÀ BIỂU DIỄN BÓNG (29)
    • 2.1 Ánh sáng (29)
    • 2.2. Kỹ thuật hiển thị mô hình Occlusion culling (37)
    • 2.3. Kỹ thuật hiển thị mô hình Bump Mapping (40)
    • 2.4. Kỹ thuật biểu diễn bóng đổ (44)
    • 2.5. Một số thuật toán chiếu sáng toàn cục (50)
  • CHƯƠNG III CHƯƠNG TRÌNH THỰC NGHIỆM (57)
    • 3.1 Công cụ Unity engine (57)
    • 3.2. Yêu cầu thực nghiệm, ứng dụng (67)
      • 3.2.1. Yêu cầu với thực nghiệm (68)
      • 3.2.2. Kiểm tra các mô hình đầu vào (68)
    • 3.3. Các chức năng của chương trình thực nghiệm (71)
  • KẾT LUẬN (74)
  • TÀI LIỆU THAM KHẢO (75)

Nội dung

TỔNG QUAN VỀ THỰC TẠI ẢO

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

1.1.1 Thực tại ảo là gì?

Thực tế ảo (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 "như thật", cho phép người dùng tương tác với môi trường này Thế giới nhân tạo không chỉ tĩnh mà còn phản ứng và thay đổi theo ý muốn của người sử dụng thông qua các hành động và lời nói, điều này tạo nên đặc tính chính của VR là tương tác thời gian thực.

Hình 1.1 Thực tế ảo (VR)

Thời gian thực đề cập đến khả năng của máy tính trong việc nhận diện tín hiệu từ người sử dụng và lập tức điều chỉnh thế giới ảo Người dùng có thể thấy sự thay đổi trên màn hình ngay theo ý muốn của mình, điều này tạo ra sự hấp dẫn từ những mô phỏng sống động.

Trong thực tế, người dùng không những nhìn thấy đối tượng đồ họa 3D nổi, điều khiển (xoay, di chuyển, ) được đối tượng trên màn hình mà còn sờ

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN cho phép người dùng trải nghiệm các cảm giác như thật Các nhà nghiên cứu không chỉ tập trung vào thị giác, thính giác và xúc giác, mà còn nghiên cứu để phát triển các cảm giác khác như khứu giác và vị giác Tuy nhiên, hiện tại, những cảm giác này vẫn chưa được ứng dụng nhiều trong công nghệ thực tế ảo (VR).

Các thành phần một hệ thống VR

Hệ thống VR tổng quát bao gồm năm thành phần chính: phần mềm (SW), phần cứng (HW), mạng liên kết, người dùng và các ứng dụng, trong đó ba thành phần quan trọng nhất là phần mềm, phần cứng và các ứng dụng.

Hình 1.2 Các thành phần của hệ thống VR Phần mềm

Phần mềm là yếu tố cốt lõi của công nghệ VR, tương tự như vai trò của nó trong các hệ thống máy tính hiện đại Để mô hình hóa và mô phỏng các đối tượng VR, người dùng có thể lựa chọn từ nhiều ngôn ngữ lập trình miễn phí như OpenGL, C++, Java3D, VRML, X3D, hoặc sử dụng các phần mềm thương mại như WorldToolKit và PeopleShop Tất cả phần mềm VR cần đảm bảo hai chức năng chính: Tạo hình và Mô phỏng.

Trung tâm Học liệu và Công nghệ thông tin – ĐHTN đã số hóa tài liệu thông qua phần mềm, đồng thời chuyển đổi từ các mô hình 3D được thiết kế bằng các phần mềm CAD như AutoCAD, 3D Studio Phần mềm VR cần có khả năng mô phỏng động học, động lực học và ứng xử của đối tượng một cách chính xác.

The hardware of a system consists of a powerful computer (either a PC or Workstation with strong graphics capabilities), input devices, and output devices.

Các thiết bị đầu vào (Input devices) bao gồm những công cụ có khả năng kích thích các giác quan, tạo cảm giác về sự hiện hữu trong thế giới ảo Ví dụ, màn hình đội đầu HMD, chuột và tai nghe âm thanh nổi là những thiết bị đầu ra, trong khi các thiết bị như head-trackers và găng tay hữu tuyến (wire-gloves) ghi nhận vị trí và hướng nhìn của người sử dụng.

Các thiết bị đầu ra trong hệ thống thực tế ảo (VR) bao gồm màn hình hiển thị đồ họa để trải nghiệm đối tượng 3D, loa để nghe âm thanh vòm như Hi-Fi và Surround, găng tay phản hồi cảm giác (Haptic feedback) để tạo xúc giác khi tương tác với đối tượng, và bộ phản hồi xung lực (Force Feedback) để mô phỏng lực tác động trong các hoạt động như đạp xe hoặc di chuyển trên địa hình gồ ghề Những thiết bị này đóng vai trò quan trọng trong việc nâng cao trải nghiệm người dùng trong môi trường VR.

Một hệ thống thực tế ảo cần có tính tương tác, đồ họa ba chiều thời gian thực và cảm giác đắm chìm, đây là những đặc tính quan trọng nhất.

Tương tác thời gian thực (real-time interactivity) đề cập đến khả năng của máy tính trong việc nhận diện tín hiệu đầu vào từ người sử dụng và ngay lập tức điều chỉnh thế giới ảo Người dùng có thể thấy sự thay đổi trên màn hình theo ý muốn của họ, tạo nên sự hấp dẫn từ những mô phỏng sống động này.

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ảm giác đắm chìm trong thực tế ảo (VR) là một hiện tượng giúp người dùng tập trung chú ý vào thông tin từ hệ thống, khiến họ cảm thấy như đang sống trong một thế giới ảo VR tăng cường trải nghiệm này thông qua việc kích thích các giác quan, cho phép người dùng không chỉ nhìn thấy và điều khiển các đối tượng 3D mà còn cảm nhận chúng như thật Các nhà nghiên cứu đang khám phá khả năng tạo ra những cảm giác khác như ngửi và nếm để nâng cao trải nghiệm trong thế giới ảo.

Tính tương tác trong thế giới ảo bao gồm hai khía cạnh chính: sự du hành và động lực học của môi trường Sự du hành cho phép người dùng di chuyển độc lập trong không gian ảo, giống như trong một môi trường thực tế, với các nhà phát triển có thể thiết lập các quy tắc truy cập khác nhau Người dùng có thể bay, xuyên tường hoặc khám phá nhiều khu vực khác nhau Một yếu tố quan trọng khác là sự kiểm soát điểm nhìn, cho phép người sử dụng theo dõi chính mình từ xa hoặc quan sát thông qua góc nhìn của người khác Động lực học của môi trường đề cập đến các quy tắc tương tác giữa con người, vật thể và thông tin, tạo ra sự trao đổi năng lượng và thông tin trong không gian ảo.

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

Công nghệ thực tế ảo đang trở thành xu hướng không thể thiếu trong tương lai, mang đến cho con người cơ hội trải nghiệm những sự kiện trong thế giới ảo một cách sống động và chân thực như trong thế giới thực Dưới đây là những ứng dụng phổ biến nhất của công nghệ thực tế ảo trong đời sống hàng ngày.

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ại các quốc gia phát triển, công nghệ 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í, du lịch và bất động sản, đáp ứng đa dạng nhu cầu từ nghiên cứu, giáo dục đến thương mại và dịch vụ.

Môi trường và ngôn ngữ lập trình cho đồ họa 3D

Với sự phát triển của công nghệ mô phỏng, người dùng có thể tái tạo môi trường làm việc gần giống thực tế, giúp quan sát hành vi của vật liệu hoặc sản phẩm thiết kế trong môi trường ảo Công nghệ này dựa trên các phương pháp phần tử hữu hạn và thể tích hữu hạn.

Có 3 bước cơ bản để xây dựng tính toán mô phỏng: Tiền xử lý(Pre Pro cessing), Tính toán(Processing), xuất kết quả (Post Processing)

Tiền xử lý (Pre Processing): Nhập vào máy tính các thông số của bài toán: mô hình CAD 3D, vật liệu, môi trường vật lý, chia lưới

Tính toán(Processing): Khi các thông số đầy đủ, các phần phềm CAD

– CAE sẽ thực hiện các giải thuật để quy bài toán mô hình về hệ phương trình vi phân để giải và xuất kết quả

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

Kết quả sau khi xử lý thường được lưu trữ trên máy tính, bao gồm thông tin về trường chuyển vị, trường ứng suất và hình ảnh chuyển động của mô hình.

1.2.2 Mô hình hóa mô hình 3D

Khi thiết kế sản phẩm, thao tác dựng mô hình 3D là bước đầu tiên và quan trọng nhất Hiện nay, nhiều phần mềm thiết kế phổ biến với những đặc điểm thú vị riêng, nhưng hầu hết đều áp dụng kỹ thuật vẽ tương tự nhau Một vật thể được xây dựng từ điểm, đường thẳng, mặt phẳng và sử dụng các phép dựng hình 3D Sau khi hoàn thành mô hình 3D, việc tinh chỉnh sản phẩm để đạt yêu cầu là bước tiếp theo cần thực hiện.

Một vật thể 3D là sự kết hợp của các phép dựng hình có sẵn trong các phần mềm vẽ 3D Mặc dù tên gọi của các chức năng có thể khác nhau giữa các phần mềm, nhưng chúng đều có những chức năng cơ bản tương tự.

Kỹ thuật dựng hình 3D từ hình phẳng 2D sử dụng phép tịnh tiến theo đường thẳng (Extruded) cho phép tạo ra khối 3D bằng cách kéo dài hình phẳng đã vẽ.

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

Kỹ thuật tạo vật thể bằng cách quay mặt cơ sở quanh một trục cố định (Revolved) cho phép tạo ra các hình dạng 3D từ mặt phẳng 2D Đầu tiên, người dùng thiết kế mặt cơ sở với biên khép kín tùy ý, sau đó xác định trục quay để hình thành vật thể Phương pháp này giúp tối ưu hóa quy trình thiết kế và sản xuất các sản phẩm có hình dáng phức tạp.

Kỹ thuật dựng hình 3D dựa trên hình phẳng 2D kết hợp với phép tịnh tiến theo đường cong bất kỳ cho phép tạo ra các khối hình đa dạng Khi một hình phẳng được vẽ và tịnh tiến theo một đường cong, nó sẽ hình thành nên một khối 3D độc đáo.

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

Kỹ thuật dựng hình lofted sử dụng nhiều mặt phẳng cơ sở để tạo ra các mặt phẳng song song, từ đó hình thành biên kính riêng cho từng mặt Quá trình này cho phép xây dựng mặt phẳng mới dựa trên các mặt phẳng đã tạo ra, mang lại sự linh hoạt và chính xác trong thiết kế.

Các kỹ thuật như Extruded, Revolved, và Swept tạo ra thể tích cho vật thể, trong khi các chức năng Extruded Cut, Revolved Cut, và Swept Cut cho phép chúng ta làm rỗng phần thể tích đã được thao tác.

Để nâng cao thẩm mỹ và đảm bảo an toàn cho người dùng, hầu hết các sản phẩm đều được gọt nhẵn các cạnh Có hai phương pháp chính để vát cạnh: vát theo góc nghiêng hoặc bo tròn.

Tạo nhanh một vật thể bằng cách lấy đối xứng qua mặt phẳng (Mirror):

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ô hình 3D có thể được xây dựng dễ dàng thông qua các phép chiếu 3D, trong đó hình phẳng 2D đóng vai trò cơ sở quan trọng Để tạo ra vật thể 3D, trước tiên cần dựng những đường nét cơ bản từ hình 2D, bao gồm các chức năng vẽ như điểm, đường thẳng, đường tròn, hình chữ nhật, đường cong (Spline) và lục giác Bên cạnh đó, còn có các hình dạng đặc biệt khác thường được sử dụng trong thiết kế như dạng then và chuỗi ký tự.

 Sau khi phát thảo đường nét chính của vật thể, chúng ta dùng các thước đo của phần mềm để tinh chỉnh chiều dài theo ý muốn

Để tăng tốc độ thiết kế, người ta đã phát triển chức năng cắt tỉa đường nét 2D (TRIM), giúp thực hiện công việc này một cách dễ dàng và hiệu quả.

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ó ba cách phổ biến để thể hiện một mô hình:

Mô hình hóa đa giác là quá trình kết nối các đỉnh trong không gian 3D bằng các đoạn đường để tạo thành lưới đa giác Hầu hết các mô hình 3D hiện nay được xây dựng dưới dạng đa giác có kết cấu, nhờ vào tính linh hoạt và khả năng hiển thị nhanh chóng của máy tính Tuy nhiên, do đa giác là mặt phẳng, chúng chỉ có thể xấp xỉ các bề mặt cong bằng cách sử dụng nhiều đa giác.

Mô hình đường cong là bề mặt được xác định bởi các đường cong, chịu ảnh hưởng bởi các điểm kiểm soát có trọng số Đường cong này có thể theo sát các điểm nhưng không nhất thiết phải nội suy chúng Khi tăng trọng số của một điểm, đường cong sẽ được kéo lại gần điểm đó Các loại đường cong phổ biến bao gồm B-spline hợp lý không đồng nhất (NURBS), spline, miếng vá và nguyên thủy hình học.

Điêu khắc kỹ thuật số, một phương pháp mô hình 3D mới, đã trở nên phổ biến trong những năm gần đây Hiện tại có ba loại điêu khắc kỹ thuật số: Dịch chuyển, loại phổ biến nhất, sử dụng mô hình dày đặc và bản đồ hình ảnh để lưu trữ vị trí mới của đỉnh Loại thứ hai là thể tích, dựa trên voxels, có khả năng tương tự như dịch chuyển nhưng không bị kéo dài đa giác khi thiếu đa giác trong khu vực Cuối cùng, tính năng động sử dụng tam giác để duy trì bề mặt mịn và cho phép phân chia bề mặt hiệu quả.

Thế giới 3D

Hệ trục tọa độ (coordinates)

Trong một ứng dụng 3D, chúng ta sẽ thấy thông tin của một đối tượng nằm trong định dạng X, Y, Z gọi là hệ trục Cartesian

Không gian cục bộ và không gian toàn cục (Local Space và World Space)

Trong không gian 3D, điểm gốc hay còn gọi là Zero, được xác định bởi tọa độ (0, 0, 0) Tất cả các vị trí của đối tượng trong không gian 3D đều liên quan đến điểm gốc này Để dễ dàng hơn trong việc xử lý, chúng ta cũng có thể sử dụng không gian cục bộ (Local).

Space – được biết như là không gian riêng của đối tượng) để xác định vị trí của đối tượng có liên hệ với một đối tượng khác

Không gian cục bộ giả định rằng mỗi đối tượng có một điểm gốc Zero riêng biệt, thường là điểm trung tâm của đối tượng Bằng cách thiết lập mối quan hệ giữa các đối tượng, chúng ta có thể so sánh vị trí của chúng với nhau Khoảng cách giữa các đối tượng có thể được tính toán bằng cách sử dụng không gian cục bộ, trong đó vị trí của đối tượng cha trở thành điểm gốc cho tất cả các đối tượng con.

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.10: World space và Local space

Vector có khả năng di chuyển trong không gian 3D, đóng vai trò quan trọng trong Game Engine Chúng giúp tính toán khoảng cách, góc giữa các đối tượng và xác định hướng di chuyển của các đối tượng trong trò chơi.

Camera là một yếu tố thiết yếu trong thế giới 3D, hoạt động như một khung nhìn cho màn hình Với tầm nhìn hình kim tự tháp, camera có thể được đặt ở bất kỳ vị trí nào trong không gian 3D, có thể được diễn hoạt hoặc gắn vào nhân vật và đối tượng trong kịch bản trò chơi Khả năng điều chỉnh tầm nhìn (Field of Vision - FOV) giúp 3D Camera trở thành công cụ quan trọng để khám phá không gian 3D.

Unity cho phép sử dụng nhiều Camera trong một cảnh, giúp kiểm soát việc kết xuất hình ảnh 2D và 3D hiệu quả Việc lập trình Camera có thể thực hiện bất kỳ lúc nào trong quá trình chạy Nhiều Camera có thể được áp dụng để tối ưu hóa quy trình, ví dụ như nhóm đối tượng trong một lớp và chỉ định Camera để kết xuất hình ảnh cho lớp đó.

Trung tâm Học liệu và Công nghệ thông tin – ĐHTN đã thực hiện số hóa tài liệu, giúp kiểm soát thông tin cá nhân hiệu quả hơn Việc này liên quan đến các khái niệm như đa giác (Polygon), cạnh (Edges), đỉnh (Vertices) và mắt lưới.

Trong dựng hình 3D, tất cả các đối tượng được liên kết bởi các đa giác (Polygons), và khi nhập mô hình vào Unity, các đa giác này được chuyển đổi thành tam giác Tam giác, hay còn gọi là mặt, được hình thành từ ba cạnh nối với nhau, với các điểm giao nhau giữa các cạnh được gọi là đỉnh Việc xác định các đỉnh này cho phép Game Engine thực hiện tính toán va chạm (Collisions) Số lượng đa giác trong mô hình ảnh hưởng đến khối lượng công việc mà máy tính phải xử lý để hiển thị hình ảnh, với nhiều đa giác đồng nghĩa với nhiều yêu cầu tính toán hơn.

Vật liệu (Materials), kết cấu (Textures) và đổ bóng (Shaders)

Vật liệu đóng vai trò quan trọng trong các ứng dụng 3D, giúp xác định sự xuất hiện của mô hình 3D Chúng bao gồm các màu sắc cơ bản và bề mặt phản chiếu hình ảnh, xử lý mọi yếu tố hình ảnh Vật liệu có thể là màu sắc đơn giản hoặc bao gồm nhiều hình ảnh, được gọi là Textures (kết cấu) Shaders là các mã kịch bản đảm nhận việc tạo phong cách cho quá trình kết xuất hình ảnh.

Kết luận

VR (Thực tại ảo) là một hệ thống giao diện tiên tiến giữa người dùng và máy tính, cho phép mô phỏng các hiện tượng theo thời gian thực Hệ thống này tương tác với người sử dụng thông qua các kênh cảm giác như thị giác, thính giác, xúc giác, khứu giác và vị giác, giúp người dùng có thể di chuyển, quan sát và tương tác trong môi trường ảo.

Trung tâm Học liệu và Công nghệ thông tin – ĐHTN đã số hóa một thế giới nhân tạo, mô phỏng bằng máy tính tương tự như thế giới thực Người dùng có khả năng nhìn thấy và điều khiển các đối tượng đồ họa 3D, cũng như cảm nhận và tương tác với chúng giống như trong thực tế.

Sự phát triển của khoa học công nghệ đã thúc đẩy lĩnh vực thực tại ảo phục vụ cho nhiều nhu cầu ứng dụng, từ mô phỏng các hiện tượng tự nhiên trong thế giới vĩ mô và vi mô cho đến ứng dụng trong giải trí, bảo tồn và bảo tàng Chương 2 của luận văn sẽ tập trung vào việc nghiên cứu các vấn đề lý thuyết và thuật toán cơ bản nhằm rèn luyện kỹ năng xây dựng và giải quyết vấn đề ứng dụng của thực tại ảo.

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ÁC KỸ THUẬT XÁC ĐỊNH VÀ BIỂU DIỄN BÓNG

Ánh sáng

2.1.1 Khái niệm ánh sáng Ánh sáng một loại bức xạ, nó có thể được hiểu, giải thích theo hai tính chất vật lý, thứ nhất là tính chất sóng điện từ trường (quang học sóng), thứ hai là tính chất hạt (quang học hạt) Đi đôi với ánh sáng là bóng có ánh sáng thì mới có bóng, và bóng là sự thể hiện của ánh sáng Ánh sáng truyền đi trong không gian khi đến một bề mặt nó tương tác với bề mặt, sự tương tác này được thể hiện thông qua hai hiệu ứng chính là “bóng bề mặt”, và “bóng đổ” có thể gọi chung chúng là bóng Hiệu ứng “bóng bề mặt” xảy ra khi ánh sáng đến bề mặt, và phản xạ lại môi trường một lượng ánh sáng nhất định theo các hướng khác nhau, trong đó có một phần đến được mắt, tác động lên hệ thần kinh thị giác, vì vậy chúng ta quan sát được đối tượng Theo định luật truyền thẳng ánh sáng khi đến một bề mặt không trong suốt thì bị cản lại, và không thể tiếp tục được truyền đi theo hướng đến, vì vậy mọi điểm phía sau sẽ không có sự chiếu sáng từ nguồn sáng hiện tượng như vậy được gọi là hiệu ứng “bóng đổ”

Trong quang học sóng, ánh sáng được coi là sóng điện từ, tuân theo các định luật như truyền thẳng, phản xạ và khúc xạ Năng lượng của ánh sáng được thể hiện qua các dao động điện từ trường, với hướng dao động của đ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 có thành phần sóng điện trường giao động trên một mặt phẳng cố định được gọi là "phân cực tuyến tính" hay đơn giản là "phân cực" Từ đặc tính phân cực của ánh sáng khi đi qua các vật liệu nhất định, con người đã phát triển các hệ thống hiển thị.

Sự phát triển của công nghệ hình ảnh 3D, bao gồm máy chiếu 3D, ti vi 3D và kính 3D, đó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 Các thiết bị này không chỉ mang lại trải nghiệm hình ảnh sống động mà còn thúc đẩy sự đổi mới trong ngành công nghệ.

Khả năng nhìn của con người thay đổi tùy thuộc vào loại ánh sáng mà họ tiếp xúc Đồ thị dưới đây minh họa khả năng quan sát của con người với từng mức sóng ánh sáng cụ thể.

Hình 2.1 Bước sóng sánh sáng (nm) 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 dựa trên hình học và quang học Bài viết này sẽ giới thiệu một số quy luật quan trọng, nhưng trước hết, chúng ta cần tìm hiểu về các đơn vị đo lường á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ướng đặt nguồn sáng có ảnh hưởng lớn đến cách chúng ta cảm nhận về khung cảnh và các chi tiết trong đó Việc lựa chọn hướng ánh sáng chính là quyết định quan trọng, vì nó quyết định sự xuất hiện của khung cảnh và cảm xúc mà bức hình muốn truyền tải.

Hình2.2 Chiếu sáng chính diện (Front lighting)

Nguồn sáng đặt ngay sau điểm nhìn của người xem, thường được sử dụng trong chụp ảnh với đèn flash, có thể không tạo ra sự hấp dẫn nếu ánh sáng quá mạnh Tuy nhiên, trong một số trường hợp ngoại lệ, các nguồn sáng nhẹ được đặt chính diện có thể tạo ra những bức ảnh rất thu hút.

Nguồn sáng chính diện thường không hiệu quả trong việc làm nổi bật hình dáng và kết cấu của vật thể do bóng đổ bị che khuất, khiến mọi thứ trông phẳng hơn Tuy nhiên, một nguồn sáng khuếch tán nhẹ đặt chính diện có thể tôn lên vẻ đẹp của chủ thể bằng cách che đi các nếp nhăn và khuyết điểm, điều này rất hữu ích trong chụp ảnh chân dung và chụp hình sản phẩ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

Hình 2 3 Nguồn sáng bên (Side Lighting)

Nguồn sáng bên rất hữu ích trong việc thể hiện hình dáng và kết cấu của chi tiết, mang đến cái nhìn chân thực hơn về chủ thể trong không gian ba chiều Nó tạo ra bóng đổ rõ nét và độ tương phản cao, giúp nổi bật các bề mặt như tường và sàn, từ đó tạo không gian cho bức hình Việc sử dụng nguồn sáng bên thường thu hút và tạo ra các hiệu ứng ấn tượng, thường xuất hiện vào buổi sáng sớm hoặc chiều tối, cũng như trong nhiếp ảnh và làm phim.

Việc sử dụng nguồn sáng bên trong chụp ảnh có thể dẫn đến việc mất một phần bức hình trong bóng đổ, đồng thời bộc lộ các khuyết điểm của chủ thể như nếp nhăn Trong chụp ảnh chân dung, nguồn sáng bên thường được ưa chuộng hơn cho nam giới so với nữ giới, vì ánh sáng này tạo ra vẻ ngoài thô ráp và bóng đổ sắc cạnh, thiếu sự mềm mạ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

Hình2.4Nguồn sáng phía sau (Back lighting)

Khi người xem hướng mắt về phía nguồn sáng, các chủ thể có phần cạnh bị khuất sẽ được chiếu sáng và hiển thị dưới dạng bóng hoặc làm mờ nhờ 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 được đặt chéo một góc nhỏ so với hướng nhìn, chủ thể sẽ xuất hiện vành sáng rõ nét do các cạnh của nó tạo ra, với nguồn sáng mạnh sẽ làm vành sáng này nổi bật hơn.

Khung cảnh ngược sáng thường tạo ra nhiều bóng đổ phía trước chủ thể, với màu tối chủ đạo và vũng sáng nổi bật Ánh sáng này giúp làm nổi bật các đường nét của chủ thể và biểu lộ chi tiết như tính trong suốt, mờ đục, cũng như các kết cấu trong vùng bóng rọi và vành sáng Nó còn tạo thêm điểm nhấn thu hút cho bức hình, làm cho tác phẩm nghệ thuật trở nên ấn tượng 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

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)

Nguồn sáng từ trên (Top lighting) là một hiện tượng ít gặp nhưng phổ biến trong những ngày trời mây, ít nắng, thường thấy trong các công trình nội thất hoặc ánh đèn sân khấu Khi sử dụng nguồn sáng nhẹ, nó giúp miêu tả hình dáng chi tiết một cách hiệu quả Ngược lại, dưới nguồn sáng mạnh, hiện tượng này tạo ra cảm giác huyền ảo với các bóng đổ kịch tính, làm che khuất hình dáng của chủ thể, như khi người đứng dưới ánh sáng mạnh sẽ có hốc mắt màu đen do vùng mắt nằm hoàn toàn trong bóng tối.

Nguồn sáng từ trên thường ít được sử dụng, nhưng không có nghĩa là nó không có giá trị Trong những ngày nhiều mây, loại ánh sáng này tạo ra hiệu ứng chân thật nhất, khi bầu trời trở thành một nguồn sáng khuếch tán rộng lớ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 2.6 Chiếu sáng từ phía dưới (Below Lighting)

Nguồn sáng từ dưới là hiện tượng hiếm gặp hơn so với nguồn sáng từ trên Nó thường xảy ra khi một người cầm đèn hoặc ngọn đuốc, tạo ra ánh sáng phản chiếu từ bên dưới, chẳng hạn như từ mặt nước Khi đó, cách xuất hiện của các vật trong khung cảnh sẽ rất khác biệt và bị đảo ngược, giống như khi một người chiếu đèn pin từ dưới lên khuôn mặt, khiến bóng đổ xuất hiện lộn ngược lên trên.

Kỹ thuật hiển thị mô hình Occlusion culling

Sơ lược về kỹ thuật Occlusion Culling

Unity cung cấp công cụ Occlusion Culling, một kỹ thuật tối ưu hóa quan trọng được sử dụng rộng rãi trong các trò chơi hiện nay Kỹ thuật này cho phép vô hiệu hóa việc kết xuất hình ảnh của các đối tượng không nhìn thấy được bởi camera do bị che khuất bởi các đối tượng khác Trong đồ họa 3D máy tính, quá trình này không diễn ra tự động; mặc định, các đối tượng xa camera sẽ được vẽ trước, sau đó các đối tượng gần hơn sẽ được vẽ đè lên.

Kỹ thuật Occlusion Culling không chỉ giúp khắc phục vấn đề Overdraw mà còn tận dụng khả năng của Frustum Culling, kỹ thuật này cho phép vô hiệu hóa các đối tượng nằm ngoài vùng nhìn của camera, từ đó tối ưu hóa hiệu suất hiển thị.

Tiến trình Occlusion Culling được thực hiện bởi camera ảo để xây dựng hệ thống các đối tượng có thể hiển thị, giúp xác định những gì xuất hiện và không xuất hiện trong quá trình runtime Kỹ thuật này giảm số lần gọi lại công việc dựng hình (Draw call), từ đó tăng hiệu suất ứng dụng Dữ liệu cho Occlusion Culling bao gồm các ô (Cells) tạo thành một cây nhị phân, với hai cây riêng biệt: một cho View Cells (đối tượng tĩnh) và một cho Target Cells (đối tượng động) View Cells liệt kê các đối tượng tĩnh có thể nhìn thấy, giúp cải thiện độ chính xác trong việc chọn lọc Quan trọng là khi tạo đối tượng, cần đảm bảo sự cân bằng giữa kích thước đối tượng.

Trung tâm Học liệu và Công nghệ thông tin – ĐHTN khuyến nghị rằng kích thước của các đối tượng trong thiết kế cần phải phù hợp với kích thước ô Cần tránh việc sử dụng 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 chiếm diện tích của nhiều ô.

Để tối ưu hóa hiệu suất, chúng ta có thể chia một đối tượng lớn thành nhiều đối tượng nhỏ và gộp chúng lại để giảm số lượng Draw calls Tuy nhiên, việc đặt chúng trong cùng một ô có thể làm giảm hiệu quả của Occlusion Culling Tập hợp các ô và thông tin về khả năng nhìn thấy từ một ô khác được gọi là PVS (Potentially Visible Set).

Công cụ Occlusion Culling trong Unity yêu cầu một số thao tác cài đặt để sử dụng hiệu quả Đầu tiên, màn chơi cần được chia thành các mảnh với kích thước hợp lý Sau đó, chúng ta cần đánh dấu (tag) các đối tượng mà muốn bao gồm 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 hoàn tất các bước cài đặt cơ bản, chúng ta có thể sử dụng công cụ Occlusion Culling cùng với các thẻ chức năng mà Unity cung cấp để Unity thực hiện tính toán và thu thập dữ liệu nhằm tối ưu hóa hiệu suấ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.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 và Visualization cung cấp chức năng xác định vùng và các đối tượng áp dụng Occlusion Đồng thời, chúng cho phép xác định Camera cần sử dụng dữ liệu từ Occlusion Culling để xử lý và kết xuất hình ảnh.

Trung tâm Học liệu và Công nghệ thông tin – ĐHTN cho phép người dùng tùy chỉnh các giới hạn xa, gần và kích thước của các ô chứa đối tượng Occlusion, tạo điều kiện thuận lợi cho việc quản lý và sử dụng tài nguyên thông tin hiệu quả hơn.

Hình 2.13 Vùng và các ô áp dụng Occlsion Culling.

Kỹ thuật hiển thị mô hình Bump Mapping

Hiện nay, hiệu ứng chiếu sáng trên từng điểm ảnh (per-pixel lighting) ngày càng trở nên phổ biến trong các sản phẩm mô phỏng, giúp nâng cao chất lượng đồ họa So với chiếu sáng theo từng đỉnh (vertex), per-pixel lighting mang lại chất lượng đồ họa vượt trội nhờ vào khả năng á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 và phản chiếu bề mặt bằng specular map Khi thực hiện chiếu sáng trên điểm ảnh bằng Shaders, cần giải quyết các vấn đề về chiếu sáng như diffuse lighting và specular lighting Trong các thư viện hiện nay, diffuse lighting chủ yếu sử dụng bump bằng normal map, trong khi specular lighting sử dụng specular map; hai thuật toán này sẽ được trình bày chi tiết trong phần tiếp theo.

Quy trình chiếu sáng trên điểm ảnh được chia thành hai công đoạn chính: tính toán màu chính (màu diffuse) và tính toán màu phản chiếu (màu specular) Tính toán màu diffuse bao gồm việc xác định màu sắc bề mặt với sự ảnh hưởng của các yếu tố như độ nhám và ánh sáng môi trường.

Không gian tiếp tuyến của vật thể (tangent space) được hình thành bởi tọa độ texture tại mỗi đỉnh (vertex), tạo thành một hệ trục tọa độ 3 chiều với các trục U (tiếp tuyến), W (pháp tuyến) và V (binormal = U x W) Hệ trục này được 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 khi không chứa thông tin màu sắc mà thay vào đó lưu trữ thông tin về không gian tiếp tuyến (tangent space) của vật thể Mỗi điểm ảnh trong normal map được định dạng RGBA, trong đó ba thành phần RGB có giá trị từ 0 đến 1, tương ứng với các trục U, V, W trong khoảng từ -1 đến 1 Normal map có thể được tạo ra bằng hai cách: sử dụng height map, một texture grayscale chứa thông tin độ sâu của bề mặt, hoặc bằng cách tạo ra một vật thể khác có độ chi tiết cao hơn.

Trung tâm Học liệu và Công nghệ thông tin – ĐHTN đã thực hiện số hóa tài liệu và tiến hành so sánh sự khác biệt giữa hai vật thể để tạo ra bản đồ normal Quá trình này có thể được thực hiện thông qua công cụ Melody của NVidia, giúp nâng cao chất lượng hình ảnh trong các ứng dụng đồ họa.

Hình 2.14 Tạo normal map từ hight map

Bump bề mặt sử dụng normal map chủ yếu được thực hiện trên Pixel Shader, nơi thuật toán sử dụng giá trị normal trong normal map để xác định mức độ ánh sáng tác động vào từng điểm ảnh Quá trình này bao gồm việc nhân tích vô hướng giữa giá trị normal và vector hướng ánh sáng trong không gian tiếp tuyến Giá trị thu được sau đó được nhân với màu sắc của vertex cùng với màu lấy mẫu từ texture để tính ra màu diffuse, với màu của vertex được tính trong Vertex Shader.

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

In computer graphics, the light vector represents the direction of light in tangent space and is calculated in the Vertex Shader before being passed to the Pixel Shader for further use Vertex color refers to the color of a vertex after applying per-vertex lighting in the Vertex Shader Additionally, texture color is derived from sampling the main texture, contributing to the overall visual output.

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 thông qua việc sử dụng specular map, một loại texture dạng grayscale, cho phép xác định các vùng của vật thể có khả năng phản chiếu ánh sáng nhiều hay ít Màu sắc trong specular map, từ sáng đến tối, tương ứng với mức độ phản chiếu ánh sáng của từng khu vực trên bề mặt vật thể.

Độ 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ực tiếp trên đường phản xạ của ánh sáng, người quan sát sẽ thấy một vùng ánh sáng chói do toàn bộ năng lượng ánh sáng được 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 chiếu được áp dụng để thực hiện điều này.

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

N Norma l Mức độ phản chiếu của ánh sáng phụ thuộc rất nhiều vào chất liệu bề mặt của vật thể, các bề mặt nhẵn bóng có độ phản chiếu lớn trong khi các bề mặt gồ ghề lại có độ phản chiếu thấp Để tránh công việc phải phân rã vật thể ra thành nhiều thành phần để dựng hình với các mức phản chiếu khác nhau người ta dùng specular map như một lookup table để xác định mức độ phản chiếu của ánh sánh trên từng điểm ảnh

The digital transformation at Thai Nguyen University emphasizes the importance of advanced lighting calculations in computer graphics The reflection vector is computed as twice the dot product of the normal and light vector, subtracted from the light vector To achieve realistic rendering, the specular factor is derived from the dot product of the reflection vector and the view vector Finally, the specular color is determined by raising the specular factor to the power of the specular constant and multiplying it by a specular lookup value.

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

• light vector Vector hướng ánh sáng trong không gian tiếp tuyến (tangent space), vector này được tính trong Vertex Shader và được truyền vào Pixel Shader để sử dụng

Vector nhìn là vector từ mắt đến điểm nhìn trong không gian tiếp tuyến, được tính toán trong Vertex Shader và truyền vào Pixel Shader để sử dụng cho hằng số phản chiếu Hằng phản chiếu có giá trị càng lớn thì vùng phản chiếu càng nhỏ.

• specular lookup Cho biết mức độ phản chiếu của điểm đó, giá trị này có được do lấy mẫu từ specular map.

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

Kỹ thuật ánh xạ bóng phụ thuộc vào việc bóng đổ của mỗi pixel chỉ thể hiện các đỉnh gần máy ảnh nhất Do đó, 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, 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 độ sâu nhỏ hơn khoảng cách thực tế từ đỉnh đến nguồn sáng, thì có một vật thể nằm giữa và điểm đó cần thể hiện 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 đổ

Để lưu trữ giá trị cho các điểm đã vẽ, cần ánh xạ hình ảnh chính xác cho từng điểm và thêm hiệu ứng bóng bằng thủ tục PPModel.fx Điều này bao gồm việc thiết lập các tham số như tọa độ và độ dài bóng, với các biến bool DoShadowMapping = true, float4x4 ShadowView, float4x4 ShadowProjection, texture2D ShadowMap và sampler2D shadowSampler.

} 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 bóng phù hợp với hình ảnh thực tế, chúng ta cần lấy mẫu bề mặt vật một cách chính xác Cần đảm bảo số lượng mẫu đủ để bóng mượt mà, nhưng không quá nhiều để tránh làm giảm tốc độ xử lý.

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 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);

Nếu chúng ta nhận giá trị trả về giá trị 1 nghiã 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 retrieve values for shadow mapping, ensure that the threshold parameters are set to determine the surface depth In the prepareMainPass() function of PrelightingRenderer, check if the "DoShadowMapping" parameter is not null and set its value accordingly If shadow mapping is disabled, skip the process Additionally, verify the "ShadowMap," "ShadowView," and "ShadowProjection" parameters, ensuring they are set to the appropriate values for accurate shadow 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

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

Bề mặt vật thể có hai giá trị chính: giá trị bao phủ bề mặt bằng vật liệu và giá trị bóng Quá trình làm mờ liên quan đến việc tính toán giá trị trung bình của các pixel và điểm láng giếng, trong đó hàm Gaussian được áp dụng để thực hiện các phép tính này.

// 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,

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

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

POSITION0, float2 UV : TEXCOORD0) : COLOR0 { float4 output = float4(0, 0, 0, 1);

// Sample from the surrounding pixels using the precalculated

This article discusses a method for applying vertical blurring to an image using pixel offsets and color weights The function `BlurVertical` takes in position and texture coordinates, initializing an output color It iterates through a predefined set of offsets and weights to accumulate the blurred result by sampling the texture at adjusted UV coordinates The technique effectively enhances image processing by creating a smooth vertical blur effect.

Trung tâm Học liệu và Công nghệ thông tin - ĐHTN đã áp dụng hai kỹ thuật làm mờ chính là 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 việc điều chỉnh giá trị bóng đổ của pixel dựa trên độ lệch của giá trị trung bình từ 15 điểm láng giềng Ví dụ, trong làm mờ theo chiều dọc, giá trị được tính toán sẽ được thêm vào để tạo ra hiệu ứng mờ mong muốn.

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, SurfaceFormat.Color, DepthFormat.Depth24);

Từ đó thủ tụclà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); }

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

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

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

Một số thuật toán chiếu sáng toàn cục

Chiếu sáng toàn cục là phương pháp tính toán cường độ sáng tại mỗi điểm dựa trên sự ảnh hưởng của các nguồn sáng trực tiếp và gián tiếp Mặc dù độ phức tạp tính toán của các thuật toán này cao, khiến việc ứng dụng trực tiếp vào kết xuất ảnh cho các ứng dụng trưng bày ảo gặp khó khăn, nhưng chúng có thể được sử dụng để tạo ra các bản đồ sáng Những bản đồ này có thể được áp dụng trong quá trình tạo hình ảnh môi trường theo thời gian thực mà không cần phải tiến hành chiếu sáng lại Việc sử dụng bản đồ chiếu sáng trong trưng bày ảo không chỉ tăng tốc độ kết xuất hình ảnh mà còn cải thiện chất lượng chiếu sáng nhờ vào các tính toán chính xác.

Bản đồ chiếu sáng phức tạp là công cụ quan trọng để tính toán và đánh giá hiệu quả của chiếu sáng toàn cục trong không gian Nó cho phép đo lường cường độ sáng tại mọi điểm, từ đó đưa ra những đánh giá chính xác về chất lượng ánh sáng Hiện nay, các kỹ thuật tạo hình dựa trên chiếu sáng toàn cục như Ray tracing, Radiosity và Photomapping đang được áp dụng rộng rãi trong lĩnh vực này.

Ray tracing là một kỹ thuật đồ họa 3D được giới thiệu lần đầu bởi Appel A vào năm 1968 Kể từ đó, nhiều nghiên cứu đã được thực hiện để nâng cao tốc độ và chất lượng của kỹ thuật này, mặc dù nguyên tắc cơ bản vẫn không thay đổi.

Kỹ thuật ray tracing dựa trên việc dò tia ánh sáng tới các điểm trên màn chiếu Quá trình này bắt đầu từ điểm quan sát và mặt phẳng quan sát, từ đó tạo ra một tập hợp các tia xuất phát từ điểm quan sát, đi qua từng điểm trên mặt phẳng.

Quá trình dò tia trong không gian được thực hiện bằng cách xác định điểm va chạm trên đa giác của đối tượng gần nhất với tia cần dò Khi điểm va chạm được xác định, việc tính toán ánh sáng tại điểm đó được thực hiện bằng cách xây dựng các tia từ điểm va chạm đến các nguồn sáng, miễn là không có va chạm nào khác Thuật toán này, gọi là Ray casting, cho ra giá trị chiếu sáng trực tiếp tại điểm đầu tiên Tiếp theo, các tia phản xạ và khúc xạ được xây dựng và quá trình dò ánh sáng được thực hiện đệ quy cho đến khi đạt ngưỡng nhất định Giá trị ánh sáng tại điểm sẽ là tổng hợp của giá trị chiếu sáng trực tiếp và các giá trị sáng gián tiếp.

Hiện nay, thuật toán Ray tracing đã được các nhà sản xuất phần cứng tích hợp vào thiết bị tăng tốc đồ họa của họ Dưới đây là sơ đồ hoạt động của thuật toán Ray tracing trong một số thiết bị tăng tốc đồ họa của Nvidia.

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.17 Các bước xử lý trong giải thuật Ray tracing

Việc cứng hóa các bước thực hiện kỹ thuật ray tracing trên các thiết bị tăng tốc đồ họa với sức mạnh tính toán hàng Gfs đang làm cho việc render thời gian thực bằng ray tracing ngày càng khả thi Hình dưới đây so sánh kết quả của cùng một cảnh sử dụng hai kỹ thuật chiếu sáng: chiếu sáng dựa trên scan line và chiếu sáng bằng ray tracing.

Hình 2.18: So sanh giữa Scan line và ray tracing

Photon mapping là một thuật toán chiếu sáng toàn cục, mô phỏng đặc tính hạt của ánh sáng Khác với ray tracing, photon mapping tạo ra các tia đặc trưng cho photon ánh sáng từ nguồn sáng Các photon này di chuyển theo đường thẳng trong không gian và tương tác với bề mặt đối tượng, gây ra các hiện tượng như phản xạ, khúc xạ và hấp thụ, trước khi bức xạ ngược lại môi trường.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN, trường tạo ra các tia mới kết hợp với đặc tính của bề mặt Ảnh được dựng sẽ là màn chắn ảo, tiếp nhận các tia tới từ bề mặt ảnh Giá trị màu sắc tại mỗi điểm trên màn chiếu là tổng hợp các giá trị của các tia đến sau một khoảng thời gian nhất định Dưới đây là hình ảnh thử nghiệm của kỹ thuật photon mapping.

Hình 2.19: Chiếu sáng bằng photon mapping

Photon mapping là một phương pháp mô phỏng ánh sáng, cho phép thể hiện nhiều hiệu ứng ánh sáng như phản xạ, khúc xạ, và cả hiệu ứng thấu kính và lăng kính, mà ray tracing không thể làm trực tiếp Tuy nhiên, do nguồn sáng phát ra nhiều tia không liên quan đến ảnh quan sát, điều này có thể ảnh hưởng đến kết quả cuối cùng.

Trung tâm Học liệu và Công nghệ thông tin – ĐHTN đã thực hiện số hóa tài liệu, cho thấy rằng tốc độ thực hiện của thuật toán này phức tạp hơn nhiều so với phương pháp ray tracing.

Kỹ thuật raytracing và photon mapping là những phương pháp chiếu sáng toàn cục phổ biến trong đồ họa 3D Ngoài ra, còn nhiều kỹ thuật khác như radiocity và các phương pháp dựa trên tính toán Monte Carlo cũng được ứng dụng rộng rãi.

2.6 Kỹ thuật chiếu sáng cục bộ

Kỹ thuật chiếu sáng cục bộ là phương pháp chiếu sáng mà giá trị ánh sáng tại mỗi điểm chỉ chịu ảnh hưởng từ các nguồn sáng trực tiếp, không bị tác động bởi nguồn sáng gián tiếp Trong số các kỹ thuật chiếu sáng cục bộ, ray casting và scan line là hai phương pháp tiêu biểu Đặc biệt, kỹ thuật scan line đã được phát triển và ứng dụng từ sớm, hiện nay nó là thuật toán chủ yếu trong hầu hết các thiết bị tăng tốc đồ họa hiện đại.

Trong lĩnh vực đồ họa máy tính, khái niệm Graphics pipeline thường được sử dụng để mô tả quy trình thực hiện của kỹ thuật này Các bước chính trong kỹ thuật được minh họa qua hình 10 Đầu tiên, quá trình Vertex processing xử lý từng đỉnh của đa giác đầu vào, chuyển đổi điểm từ không gian địa phương của đối tượng sang không gian địa phương của camera, đồng thời ước lượng cường độ sáng và pháp tuyến tại từng điểm dựa trên các mô hình chiếu sáng đã đề cập Bước tiếp theo là Rasterization, nơi các điểm đã được chuyển đổi từ không gian của camera sang không gian quan sát thông qua phép chiếu 3D Tại giai đoạn này, các điểm trong đa giác được ánh xạ sang không gian ảnh, và thuật toán scanline được áp dụng để xử lý từng điểm dựa vào các tham số của đỉnh và vị trí tương đối của điểm đang xem xét.

Trung tâm Học liệu và Công nghệ thông tin – ĐHTN thực hiện quá trình số hóa các đỉnh của đa giác đầu vào Cuối cùng, giá trị màu sắc của điểm đang xét sẽ được kết hợp với giá trị cũ để tạo ra màu sắc cuối cùng.

Hình 2.20 Các bước xử lý trong giải thuật Scan line

CHƯƠNG TRÌNH THỰC NGHIỆM

Ngày đăng: 05/10/2023, 14:03

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