CHƢƠNG 8: ÁNH SÁNG
8.3.1.5. Lưới đa giác (Polygon meshes)
Lƣới đa giác rất hữu ích để mô hình hóa những đối tƣợng tùy chọn và rất thích hợp để hỗ trợ nhƣ việc vẽ lại màu gốc trong một tia vạch nếu muốn vẽ lại khung cảnh hiển thị đối tƣợng từ thế giới thực nhƣ là ô tô, cái bàn, máy bay hay ngôi nhà… - tất cả những đối tƣợng khó hoặc không thể mô hình hóa thực sự mà chỉ sử dụng một thuật toán đối tƣợng nhƣ là hình cầu, mặt phẳng… Trong trƣờng hợp ở đây chỉ làm việc với những lƣới đa giác nơi mà tất cả đa giác đều là tam giác. Đây là cách truyền thống để biểu diễn một lƣới đa giác và nhƣ vậy cũng không bị quá hạn chế.
Với bất kỳ màu gốc nào trong một tia vạch tất cả chúng ta cần có thể vẽ lại nó là một cách để tính toán điểm giao nhau với một tia sáng đã cho và một bề mặt bình thƣờng mà có điểm đó bên trong. Với những đối tƣợng toán học đƣợc miêu tả ở trên ta có thể nhanh chóng tính toán chính xác. Với một lƣới đa giác có phần khó hơn và ta sẽ hƣớng vào 2 nhiệm vụ lần lƣợt ở bên dƣới.
Vấn đề tính toán giao điểm giữa một lƣới đa giác và một tia sáng có thể bị phá vỡ trong việc tính toán giao điểm giữa tia sáng và tất cả các hình tam giác mà tạo ra lƣới. Cái gần nhất của những điều này là rất nhiều sự giao nhau là một cái mà chúng ta sử dụng điểm giao nhau giữa lƣới và tia sáng.
Nhƣ vậy chúng ta gặp phải thách thức với việc tính toán giao điểm giữa một tam giác và một tia sáng. Những đặc trƣng đƣợc làm trƣớc bởi việc tính toán giao điểm giữa tia sáng và mặt phẳng mà có tam giác ở đó. Một điểm nhƣ vậy sẽ luôn tồn tại trừ phi tia
tam giác thì chúng ta tiếp tục kiểm tra nếu điểm đó nằm trong hình tam giác. Có rất nhiều cách để làm việc này và giải thuật mà chúng ta chọn để sử dụng chi tiết về cơ bản nó tạo một nửa mặt phẳng từ mỗi hình tam giác 3 đoạn, tất cả hƣớng sao cho những điểm trực giao (normal) của chúng hoặc chỉ đi vào trong tam giác hoặc ra khỏi từ nó. Một điểm trong vấn đề là bên trong tam giác nếu nó hoặc nằm giữa mặt phẳng hoặc đằng sau tất cả 3 nửa mặt phẳng (phụ thuộc vào cách chọn phƣơng hƣớng của nửa mặt phẳng).
Bây giờ chúng ta trở lại với nhiệm vụ tính toán trực giao nhƣ là một giao điểm. Ý tƣởng hiển nhiên và trƣớc hết là có thể đơn giản trả lại trực giao của mặt phẳng có tam giác nằm trên đó. Một hƣớng khác có thể phản đối rằng điều này sẽ thực sự là đúng trực giao của hầu hết những điểm bên trong hình tam giác đó. Tuy nhiên, lƣới tam giác cũng thƣờng đƣợc sử dụng để làm mềm hơn mô hình, uốn cong bề mặt và sau đó làm nhẵn bề ngoài của mặt đƣợc nhìn thấy của lƣới tam giác. Nếu sử dụng những mặt phẳng tam giác trực giao nhƣ là giao cắt thông thƣờng thì kết quả ta đƣợc giữa các cạnh với các hình tam giác đơn lẻ.
Giải pháp phổ biến nhất là tính toán cái gọi là đỉnh trực giao cho lƣới. Điều này có nghĩa là mỗi tam giác sẽ có 2 trực giao liên quan đến nó – 1 cho mỗi đỉnh trong tam giác – và những hình tam giác đó sẽ chia sẻ 1 đỉnh cũng sẽ chia sẻ những đỉnh trực giao tƣơng ứng. Đỉnh trực giao đƣợc tính toán bằng cách lấy trung bình của mặt phẳng trực giao cho những tam giác mà có đỉnh đƣợc sử dụng. Hiệu ứng này có nghĩa là đỉnh đó đặt trên 1 cạnh (mép) giữa 2 hình tam giác mà ở 1 góc nhất định đối với mỗi góc khác sẽ chỉ trong 1 phƣơng có phần giữa mặt phẳng trực giao của tam giác và sẽ làm mềm ở ngoài ánh sáng ở mép. Trực giao cho 1 điểm đã cho bên trong hình tam giác đƣợc tính toán bởi phép nội suy tuyến tính giữa 3 đỉnh trực giao (xem thêm chi tiết cho giải thuật này trong code).
Hình 8.12 lƣới đa giác
TỔNG KẾT: điểm giao nhau đƣợc tính toán bởi việc kiểm tra mỗi tam giác trong lƣới cho sự giao nhau với tia sáng và sau đó sử dụng giao điểm gần nhất. Trực giao cho mỗi giao điểm đƣợc tính toán bởi phép nội suy giữa 3 đỉnh trực giao của hình tam giác.
8.3.2. Radiosity
8.3.2.1. Giới thiệu
Phƣơng pháp Radiosity là một phần giải pháp làm sáng tỏ vấn đề toàn cầu, tập trung vào giải quyết sự phản xạ trực tiếp(interreflection) giữa những bề mặt khuếch tán bên trong một môi trƣờng đóng. Phƣơng pháp không gửi những vấn đề với khuếch tán – phản chiếu, phản chiếu – khuếch tán hoặc phản chiếu – phản xạ phản chiếu trực tiếp.