VRay – Định nghĩa và cách sử dụng: Phần 1

Tài liệu VRay – Định nghĩa và cách sử dụng: Phần 1: VRay – Định nghĩa và cách sử dụng: Phần 1 Mở đầu Trong các chương trình render cho 3dsMax, Vray là một chương trình được sử dụng phổ biến nhất. Hoàn toàn không phóng đại khi nói Vray phổ biến đến mức bằng tổng các renderer khác như mental ray, finalRender и brasil r/s cộng lại. Điều đó càng thể hiện rõ với thuật toán và nhân của chương trình được nghiên cứu và hoàn thiện bởi một nhóm người. Tính phổ biến của chương trình có những nguyên nhân xác đáng. Thứ nhất, VRay dùng trong các phép tính của nó phương pháp chuyển đổi tính toán – nó được xây dựng hoàn toàn trên cơ sở của phương pháp Monter-Carlo. Trong phương diện này có thể VRay được dùng như là 1 ví dụ để trình diễn chương trình theo phương pháp Monter-Carlo. Nhưng ngoài ra, VRay có 1 loạt đổi mới thú vị các công nghệ xử lý, cung cấp thêm cho VRay những ưu thế trong chất lượng và tốc độ tính toán. Bài viết này sẽ trình bày về các cơ chế tình toán cơ bản bên trong VRay và cung cấp cho người đọc một số phư...

pdf31 trang | Chia sẻ: hunglv | Lượt xem: 1105 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu VRay – Định nghĩa và cách sử dụng: Phần 1, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
VRay – Định nghĩa và cách sử dụng: Phần 1 Mở đầu Trong các chương trình render cho 3dsMax, Vray là một chương trình được sử dụng phổ biến nhất. Hoàn toàn không phóng đại khi nói Vray phổ biến đến mức bằng tổng các renderer khác như mental ray, finalRender и brasil r/s cộng lại. Điều đó càng thể hiện rõ với thuật toán và nhân của chương trình được nghiên cứu và hoàn thiện bởi một nhóm người. Tính phổ biến của chương trình có những nguyên nhân xác đáng. Thứ nhất, VRay dùng trong các phép tính của nó phương pháp chuyển đổi tính toán – nó được xây dựng hoàn toàn trên cơ sở của phương pháp Monter-Carlo. Trong phương diện này có thể VRay được dùng như là 1 ví dụ để trình diễn chương trình theo phương pháp Monter-Carlo. Nhưng ngoài ra, VRay có 1 loạt đổi mới thú vị các công nghệ xử lý, cung cấp thêm cho VRay những ưu thế trong chất lượng và tốc độ tính toán. Bài viết này sẽ trình bày về các cơ chế tình toán cơ bản bên trong VRay và cung cấp cho người đọc một số phương pháp sử dụng hiệu quả chương trình này. Các nguyên lý cơ bản Nhiệm vụ cơ bản của bất kỳ chương trình renderer nào là tính toán sự chiếu sáng và màu sắc của một điểm bất kỳ của khung cảnh 3 chiều. Nhiệm vụ đó rất là phức tạp. Các phương pháp tính toán của đồ họa máy tính đã vượt qua một chặng đường phát triển khá dài, trước khi người ta đạt tới trình độ như ngày nay về hiện thực hóa các bức ảnh bằng sự trình diễn của máy tính. Thứ nhất, chúng ta đã biết rằng các vật thể được nguồn sáng chiếu sáng trực tiếp, khi mà vật thể và nguồn sáng có thể nối với nhau bới một đường thẳng. Mô hình sự chiếu sáng Fong và mô hình đổ bóng Fong, những thứ đã cho phép làm mềm mầu của các poligon bề mặt và tính ra những chỗ sáng nổi bật –highlight, đã trở thành đỉnh cao của mô hình tính toán này. Mô hình chiếu sáng đó cũng như các phép biến đổi của nó (Lambert, Blin, Torrent, Ward và những cái khác) bây giờ vẫn là nền tảng để tính toán sự chiếu sáng trực tiếp, chỉ thêm 1 chút bổ sung. Một trong các bổ sung quan trọng nhất , sự tính toán các kích thước không gian của nguồn sáng, cho phép nhận được các vết mờ của bóng vật thể. Một bổ sung khác là xác định sự giảm dần cường độ ánh sáng theo khoảng cách. Về chi tiết, các phép tính vật lý chính xác sự chiếu sáng sử dụng định luật cường độ tia sáng giảm dần theo bình phương khoảng cách. Thành phần thứ hai của sự chiếu sáng vật thể được xác định bằng phản xạ (hay gần với nó) từ các vật khác và không gian xung quanh vật thể. Để thực hiện pháp tính đó người ta đã nghĩ ra phương pháp dò tia - ray tracing. Phương pháp này dò theo đường đi của các tia sáng, bắt đầu từ Camera, tới bề mặt đầu tiên và sau đó phụ thuộc vào tính trong suốt hay phản xạ của bề mặt, xác định hướng đi tiếp theo của tia sáng. Phương pháp dò tia từ camera lần đầu tiên cho phép tính đến môi trường xung quanh trong sự chiếu sáng vật thể và đã hiệu quả hơn sự dò tia từ nguồn sáng, bởi vì chỉ tính xem xét đến các tia sáng tới được camera. Một trong những nhược điểm của phương pháp dò tia cổ điển là tính cứng nhắc của hình ảnh nhận được, sự rõ ràng quá mức của các đường bao, bóng đổ và màu sắc. Vì thế sau đó nguời ta đã làm ra phép chỉnh sửa sự phân bổ dò tia - distribution ray tracing (DRT). Bản chất của DRT là ở chỗ trong mỗi lần giao cắt giữa các tia dò từ bề mặt trên đường đi của nó, từ mỗi điểm giao nhau được xây dựng không chỉ một mà nhiều tia sáng. Quá trình này phần nào gợi nhớ đến chuỗi phản ứng. Hướng giải quyết đó đã cho phép tính ra các phản xạ và khúc xạ yếu dần (như là các phản xạ và khúc xạ fuzzy, blurry hay glossy), nhưng mà kèm theo sự gia tăng đáng kể khối lượng tính toán. Mô hình DRT được thực hiện trong các tính chất của vật liệu VRay phản xạ và khúc xạ với sự giúp đỡ của thông số Glossy. Do cái giá quá đắt của các phép tính DRT, sự chậm chạp trong tính toán glossy-material VRay đã trở thành «điều mà ai cũng nói đến». Thành phần thứ ba của quá trình chiếu sáng vật thể được tính toán qua sự khuếch tán nhiều lần màu sắc của các đối tượng xung quanh. Phương pháp đầu tiên dùng để tính sự chiếu sáng khuyếch tán thứ cấp là radiosity, mặc dù vẫn được sử dụng cho tới giờ, với sự tồn tại một loạt yếu kém, nó đã nhường chỗ cho 2 phương pháp tính khác tiến bộ hơn – Phương pháp Monte-Carlo và phương pháp Photon map. Phương pháp bản đồ photon tạo ra cho mỗi mặt phẳng của đối tượng trong khung cảnh một cơ sở dữ liệu, trong đó lưu trữ thông tin về sự va chạm của photon với bề mặt - tọa độ va chạm, hướng và năng lượng của photon. Photon được hiểu là phần năng lượng của sự chiếu sáng, truyền theo một hướng nhất định từ nguồn sáng. Mật độ photon của bản đồ được dùng trong các tính toán tiếp theo để đánh giá sự chiếu sáng của điểm trong kết quả của sự phân tán khuyếch tán ánh sáng trên các bề mặt xung quanh. Tất cả các renderer, sử dụng phương pháp bản đồ photon, thực hiện sự tính toán chiếu sáng qua 2 bước. Bước thứ nhất thực hiện dò photon từ nguồn sáng đến bề mặt và tạo ra bản đồ photon cho chúng. Bước thứ hai thực hiện quá trình dò tia ngược lại từ camera, còn bản đồ photon được sử dụng để tính toán sự chiếu sáng khuếch tán của các điểm giao nhau giữa tia dò ngược với mặt phẳng. Thứ tư, sự chiếu sáng được xác định bằng các trường hợp đặc biệt – tính các hiệu ứng ánh sáng xuất hiện trong kết quả tụ vào tiêu điểm do sự khuếch tán và phản xạ của tia sáng trên một số vùng của bề mặt. Các hiệu ứng này được gọi là các hiệu ứng quang tụ (caustic) của sự chiếu sáng, mà minh họa tuyệt vời từ thực tế có thể là thấu kính hội tụ ánh sáng mặt trời lên bề mặt vật thể.. Sự tính toán các hiệu ứng quang tụ của ánh sáng được thực hiện bằng phương pháp bản đồ photon, nhưng với yêu cầu bản đồ photon cục bộ có mật độ rất cao. Vì thế các bản đồ photon được tạo riêng biệt với sự xuất hiện các nhu cầu. Để kết thúc các ý nói trên, có thể khẳng định rằng: với trình độ phát triển hiện nay của các phương pháp tính toán đồ họa máy tính cho phép tính toán sự chiếu sáng một điểm bất kỳ trong khung cảnh 3D như tổng của 4 thành phần: chiếu sáng trực tiếp, phản xạ và khúc xạ, phát tán khuếch tán thứ và các hiệu ứng quang tụ ánh sáng. Để tính toán chính xác tất cả ánh sáng, đi qua 1 điểm nào đấy trên mặt phẳng, cần phải tính tổng tia sáng, đi tới điểm đó từ mọi hướng. Điều đó dẫn đến sự cần thiết tích phân ánh sáng theo nửa bán cầu, bao quanh điểm, nếu điểm nằm trên 1 bề mặt không trong suốt hoặc theo hình cầu bao xung quanh nếu điểm nằm trên một bề mặt trong suốt. Để tính toàn bộ ánh sáng trong đồ họa máy tính sử dụng các hàm, miêu tả 4 thánh phần ánh sáng – hàm nguồn sáng, hàm của các tính chất phản xạ (lý tưởng), khúc xạ của các bề mặt và hàm khuếch tán các phản xạ của các bề mặt. Hai hàm cuối thường được hợp nhất và được gọi là BRDF - Bidirectional Reflectance/Refractance Distribution Function (hàm rẽ nhánh phân bố phản xạ/khúc xạ). Mặt khác phép tính giải tích chính xác của các tích phân như vậy trong hầu hết trường hợp là không thể, vì thế để tìm ra kết quả các phép tính khác nhau đã được sử dụng Một trong các phương pháp cơ bản là phương pháp Monte-Carlo. Trong ý tưởng cơ bản, phương pháp Monter Carlo cho phép tính ra giá trị tích phân như tổng của một số lượng không lớn giá trị của các hàm dưới tích phân, được chọn ngẫu nhiên. Thực tế, phương tiện toán học của phương pháp Monter Carlo cho phép xác định sự lựa chọn những giá trị đó, bởi vì phụ thuộc vào nó là sự chính xác và tốc độ tìm ra kết quả tích phân. Được lựa chọn để tính giá trị của các hàm dưới tích phân thường được gọi là samples. Hiện tại, phương pháp Monter Carlo là tiêu chuẩn “ bất thành văn” cho các render đồ họa máy tính 3 chiều và được sử dụng hết sức rộng rãi – hầu như trong phần lớn các chương trình hàng đầu. Mặt khác phương pháp đó có một nhược điểm nghiêm trọng – chậm chạp trong tìm kết quả. Cụ thể điều đó có nghĩa là, để tăng chất lượng tính toán ánh sáng, ví dụ lên 2 lần thì khối lượng tính toán sẽ tăng gấp 4 lần (số sample). Yếu kém trong render là – những vết bẩn màu, các hạt và sự giả tạo trên Phương pháp Photon map được thiết kế như sự xen kẽ của phép tính sự chiếu sáng khuếch tán thứ cấp bằng phương pháp Monter Carlo và thay thế phép tính tích phân tương ứng. Giải pháp đó có một loạt ưu điểm và cả nhược điểm. Ưu điểm chính của Photon map là tốc độ và sự hoàn chỉnh của phép tính. Các nhược điểm của nó liên quan đến những yêu cầu bộ nhớ lớn và sự khó khăn trong việc liên kết các vết nối, các góc và đường biên của bề mặt. Chương trình cốt lõi của Vray được xây dựng trên phương pháp Monter Carlo. Vray cũng sử dụng phương pháp Photon map, nhưng không như sự xen kẽ với phương pháp Monter Carlo (giống như trong Mental ray), mà như một sự bổ sung. Nói cụ thể hơn là, để tính khuếch tán sơ cấp (tia sáng từ nguồn đi đến bề mặt, phản chiếu và va vào điểm cần tính sáng) trong Vray sử dụng phương pháp Monter Carlo. Dành cho tất cả các khuếch tán tái phản xạ, bắt đầu từ lần thứ 2 ( tia sáng lần thứ 2 hay nhiều hơn phản chiếu từ các bề mặt khác trước khi đến điểm cần tính), có thể sử dụng phương pháp Monter Carlo cũng như phương pháp Photon map. Trong thuật ngữ của Vray, khuếch tán lần thứ nhất được gọi là First diffuse bounces – sự bật lên thứ nhất, tất cả những sự tái phản xạ khác - secondary bounces, hay là sự bật lên thứ cấp. Cách tiếp cận đó khá hợp lý bởi vì như ta đã rõ, phần chính ánh sáng khuếch tán của điểm được tạo thành từ chính sự phản xạ thứ cấp. Đóng góp của các quá trình phản xạ còn lại không lớn, do kết quả của sự giảm rất nhanh của cường độ phản xạ khuếch tán cùng với quá trình gia tăng số lượng của chúng. Bằng cách đó, sự kết hợp phương pháp Monter Carlo và Photon map trong Vray đã đảm bảo tính chính xác và tốc độ cao hơn trong tính toán, so với các chương trình render đối thủ khác Sử dụng Photon map cho tính toán phản xạ qua lại được ưa thích hơn nhiều lần bởi vì nó cho phép nhận được kết quả nhanh hơn và chất lượng hơn. Mặt khác, vì Photon map không thể làm việc với các nguồn sáng như Skylight, HDRI và hạn chế truy cập vào bộ nhớ, trong tính toán khung cảnh mở và trong một vài trường hợp khác Photon map thường được thay thế bằng phương pháp Monter Các thông số điều khiển của VRay VRay: QMC Sampler Nhóm các biến điều khiển trong Vray bằng các tính chất chung của phương pháp Monte-Calro, đặt trong bảng dưới đây: Giá trị các thông số này xác định các Sampler sẽ được sử dụng trong tính toán mọi giá trị theo phương pháp Monter-Carlo. Ghi nhớ là thưc tế tất cả các giá trị, được tính bởi Vray, tất cả các dạng chiếu sáng, khúc xạ và phản xạ, translucency, caustic và các loại khác, đều sử dụng phương pháp đó. Kết quả là phụ thuộc vào những xác lập này tốc độ tính toán cũng như độ chính xác và do đó kéo theo mối quan hệ thời gian/chất lượng render hình Lock to pixels được dùng để loại đi những điểm nhấp nháy trong hoạt cảnh. Nếu dấu tick được đánh trong ô trống bên cạnh thông số này một liên kết chặt chẽ của giá trị các điểm cần tính sẽ được sử dụng đối với các điểm của hình sao cho các giá trị đó giống nhau tương ứng với các điểm trong các hình (frame) liền kề. Phương pháp Monter Carlo có tính ngẫu nhiên vì thế với sự giúp đỡ của nó cùng một giá trị có thể nhận những kết quả hơi khác nhau trong các điều kiện tương tự. Nếu ta tính ảnh tĩnh thì giá trị này có thể mạnh dạn để ở chế độ tắt. Lock to pixels và tăng samples cho tính toán các giá trị là 2 phương pháp cơ bản để chống lại sự nhấp nháy (flickering) trong các hoạt cảnh được tính bởi VRay Adaptation by effect on final result (importance sampling) – kỹ thuật được dùng để chọn các samples. Trong tính toán tích phân sự chiếu sáng bằng phương pháp Monter Carlo các giá trị của các hàm dưới tích phân (samples) được chọn theo một qui luật ngẫu nhiên nào đó trong giới hạn của hàm (bán cầu cho tính sáng của điểm trên mặt không trong suốt và hình cầu cho điểm trên mặt trong suốt) sẽ được sử dụng. Thú vị là samples có thể có tính hình học như hướng, dọc theo nó các giá trị của hàm sẽ được tính - nói một cách khác nó giống như từ điểm sẽ sinh ra tia để lấy samples. Kỹ thuật importance sampling để chọn những điểm bằng phương pháp chú trọng hay giá trị của những điểm cụ thể của samples cho một kết quả cụ thể. Nếu tia để lấy samples dọc theo một hướng nào đó đem lại ít giá trị chiếu sáng hoặc thậm chí bằng 0, các samples được lấy tiếp theo theo hướng đó hoặc gần với nó sẽ không được lấy. Một ví dụ khác – để tính một khúc xạ tối sẽ không cần nhiều samples. Trong mọi trường hợp, bật thông importance sampling sẽ ép buộc chuyển động của Vray tìm kiếm và lựa chọn cho tính toán những giá trị lớn (và vì thế quan trọng hơn cho hình ảnh) samples và bỏ đi những samples có giá trị thấp. Giá trị Amount điều khiển sự cao độ trong sử dụng kỹ thuật importance sampling khi tính. Giá trị 0 sẽ tắt hoàn toàn sự sử dụng Нулевое importance sampling, còn với Amount = 1 tất cả các samples sẽ phải qua tuyển chọn. Trong phần lớn trường hợp sử dụng kỹ thuật importance sampling hết sức hữu ích đối với các renderer – đưa đến sự gia tăng trông thấy về tốc độ trong khi vẫn đảm bảo chât lượng tính toán cao. Mặt khác kỹ thuật importance sampling với tính chất ngẫu nhiên của mình có thể đem lại những kết quả dở ngoài mong muốn – đó không phải là một nghich lý, đôi lúc tắt thông số đó có thể có lợi vì sẽ làm giảm nhiễu trong tính toán. Như vậy giảm Amount sẽ dẫn tới tăng chất lượng render và tăng cả thời gian tính toán. Chiến lược với thông số này có thể là như sau – tăng Amount, nếu nó không dẫn đến những thuyên giảm nghiêm trọng về chất lượng hình ảnh và giảm nó nếu render không có một lỗi nhiễu nào cả. Theo mặc định Amount = 1 Adaptation by sample values (early termination) – cho phép Vray phân tích các giá trị samples và bỏ quá trình lấy samples nếu như những gí trị đó gần giống nhau. Nói một cách khác nếu như các giá trị của samples ít khác nhau thì thay vì tính tiếp các giá trị của samples mới các giá trị của samples đã tính sẽ được sử. Nếu như các samples khác nhau rõ rệt thì số lượng chúng được chọn sẽ lớn hơn. Thông số Amount xác định mức độ áp dụng kỹ thuật này. Với Amount = 0 kỹ thuật này hoàn toàn không được sử dụng, với Amount =1 early termination sử dụng số lượng nhỏ nhất có thể được các tia samples. Nếu như cần chất lượng tính toán cao thì dùng Amount = 0, nhưng trả giá cho điều đó là sự gia tăng thời gian rander. Chiến lược cho thông số này giống như với thông số importance sampling , giá trị Amount mặc định = 0. Min. samples – Thiêt lập số lượng nhỏ nhất được cho phép samples. Tức là số samples dùng cho tính toán 1 giá trị nhất định không thể nhỏ hơn giá trị Noise threshold – trọng tài, người phân sử, quyết định, khi nào giá trị nhận được đủ tốt cho hình ảnh. Các giá trị kết quả sẽ được tự so sánh với nhau theo từng bước. Nếu sự khác nhau lớn hơn giá trị Noise threshold thì các samples bổ sung sẽ được tính, nếu sự khác nhau nhỏ hơn thì quá trình tính kết thúc. Rõ ràng là thông số này có ảnh hưởng trực tiếp nhất tới chất lượng ( độ nhiễu ) và tốc độ render. Tăng nó lên có thể làm sự tính toán trở nên rất nhanh và nhiễu và ngược lại Những thông số trình bầy ở trên cho phép Vray linh động nhân các quyết định về số samples để tính toán giá trị này hoặc giá trị kia một cách trực tiếp trong quá trình tính. Nếu Amount của importance sampling và early termination có giá trị là 0 chúng ta sẽ nhận được render có khả năng cao nhất của Vray về chất lượng. Thời gian tính cũng sẽ là lớn nhất còn số samples sẽ gần với số subdivs, được định cho GI trong thiết lập nguồn. Nếu giá trị Amount của importance sampling và early termination bằng 1, render sẽ là tối thiểu (nhưng hoàn toàn không có nghĩa là tồi) chất lượng, thời gian tính cũng sẽ là ngắn nhất có thể được còn số samples sẽ gần với giá trị đã định trong Min. Samples. Điều đó giống như 2 mặt đối nghịch, trong giới hạn đó xác định mọi giá trị thiết lập trung gian, tiêu tốn cho thời gian và chất lượng render Hình.02-08. Xác lập cả 2 giá trị Amount = 0, Noise threshold=0.005. Hình.02-09. Xác lập cả 2 giá trị Amount =1, Noise threshold=0.005. Nhận thấy là hình ảnh thu được giống lần trước nhưng thời gian rander giảm đi 2.5 lần Hình.02-10. Xác lập cả 2 giá trị Amount =1, Noise threshold=0.1. Giảm Noise threshold càng tăng tốc độ tính nhưng đã làm tồi đi rõ rệt chất lượng hình ảnh (nhiễu ở góc và trên các vết nối của tường và sàn, xuất hiện các hạt trong bóng ) Các giá trị đặt sẵn trong Vray theo mặc định của Amount và Noise threshold khá đa năng và tự nhiên trong hầu hết các trường hợp, hoặc chúng có thể là những giá trị khởi đầu cho các thử nghiệm cá nhân. Thay đổi chúng chỉ nên khi có sự hiểu biết thực sự và sâu sắc. Khuyến cáo không nên để giá trị 0 cho Noise threshold – điều đó có thể dẫn Vray tới những vòng tính toán lặp vô hạn, hoặc nhanh hơn, tới sự kết thúc thảm bại công việc của chương trình QMC –Monter Carlo, phương pháp được sử dụng bởi Vray khác biệt với Monter Carlo “cổ điển” ở chỗ nhờ việc sử dụng early termination và importance sampling. Chúng cho phép chọn các samples , điều làm cho những sample này không hoàn toàn ngẫu nhiên như trong phương pháp Monter Carlo chuẩn Tính GI (Chiếu sáng toàn cảnh - Global Illumination) Để tính thành phần đầu tiên – chiếu sáng trực tiếp, Vray có riêng thuật toán có khả năng làm việc độc lập. Để chắc chắn về điều đó rất đơn giản, chỉ cần render 1 khung cảnh 3 D không có GI ( bỏ dấu tick trong hộp chọn “On” trong bảng VRay: Indirect Illumination). Trong kho công cụ của modul tính chiếu sáng trực tiếp có khả năng làm việc với các nguồn sáng không gian nên tính các mép bóng mềm không tạo thành vấn đề gì. Các xác lập chiếu sáng trực tiếp có trong các thông số của nguồn sáng và bóng (sự giảm dần, loại nguồn sáng, thông số của bóng v.v..) Hình.02-02. Chỉ tính chiếu sáng trực tiếp. Tất cả các vùng không nằm trong giới hạn nhìn thấy của nguồn sáng đều nằm trong bóng tối. Bóng mềm là kết quả của thao tác với nguồn sáng không gian Tắt chiếu sáng trực tiếp hoàn toàn có thể làm được, để làm điều đó ta sử dụng nút Exclude trong bảng xác lập của nguồn sáng. Ứng dụng này có ích cho phân tích map ở dạng nguyên thể và ảnh hưởng đối với chúng các xác lập của các thông số. Ví dụ, tách vật thể ra khỏi sự chiếu sáng không ảnh hưởng tới Photon map bởi vì nó, nếu trong tính chất của nguồn sáng có đặt Generate diffuse, sẽ tính toán Photon. Phép tính Photon mạp cũng chỉ có thể tắt ở đó. Cũng có thể lựa chọn bật hoặc tắt các vật thể khỏi Photon map nếu trong tính chất của các vật thể xác định bỏ đi dấu tick trong mục Receive GI и Generate GI (trong bảng Vray: System>Object settings ) Cũng có sẵn trong Vray thuật toán riêng để tính dò tia ngược, nó cũng là một bộ phận độc lập của hệ thông tính. Một phần thiết lập của ray tracing nằm trong bảng VRay: Global Switches и VRay: Image Sampler (Antialiasing), phần khác trong thông số vật liệu VRayMtl. Tính toán thành phần chiếu sáng thứ ba – khuếch tán phản xạ của sự chiếu sáng là một trong những thuật toán quan trọng nhất của Vray và cũng tương đối độc lập với những thành phần chiếu sáng khác. Các xác lập cơ bản của việc tính GI nằm trong bảng VRay: Indirect Illumination, các xác lập bổ sung khác rải rác trong hầu hết các bảng còn lại của Vray. Chúng ta sẽ xem xét nó lần lượt. Việc tính GI có thể bật hoặc tắt tùy ý trong hộp chọn “On” trong bảng VRay: Indirect Illumination. Các xác lập của thành phần chiếu sáng thứ tư – caustic – hiệu ứng quang tụ nằm trong bảng VRay: Caustic и VRay: System (Object settings и Light settings). Như vậy, Vray có cấu trúc modul rõ ràng, cho phép bật hoặc tắt của thành phần này hay thành phần kia của sự chiếu sáng không phụ thuộc vào các phần còn lại, điều này tiện lợi cho việc xác lập các thông số. Tiếp theo ta sẽ chỉ xem sét chi tiết chiếu sáng khuếch tán không trực tiếp (GI) Các xác lập cơ bản của GI. Để tính chỉ Indirect Illumination VRay cung cấp 3 phương pháp cơ bản: • Tính trực tiếp - Direct computation; • Irradiance map; • Photon map (Global photon map). Có thể thấy đặc điểm của các cách tính là chia các dạng khuếch tán phản xạ ra làm 2 - Khuếch tán bật ra lần thứ nhất (ánh sáng đầu tiên đi đến một bề mặt nào đó, khuếch tán một cách phản xạ từ đó chỉ 1 lần rồi sau đó đi vào điểm cần tính sáng) và các loại khuếch tán còn lại (ánh sáng, cho tới khi đến điểm cần tính sáng đã phản xạ bởi các bề mặt của khung cảnh 2 lần hoặc nhiều hơn thế). Ý tưởng của việc chia ở trên – nó liên quan đến sự chú trọng đóng góp của chính lần khuếch tán đầu tiên của phản xạ ( lần bật lên khuếch tán đầu tiên của photon), sự đóng góp của các lần còn lại sẽ nhanh chóng tắt theo chiều tăng của số lần phản xạ. Để tính 2 loại nảy bật đó có thể dùng 4 bộ kết hợp khác nhau của 3 phương pháp tính ở trên • Tính trực tiếp - Direct computation cho lần bật lên khuếch tán đầu tiên và tính trực tiếp - direct computation (direct+direct) hay photon map (direct +photon) cho các lần bật lên sau; • Irradiance map cho lần đầu tiên bật lên và tính trực tiếp (irr_map+direct) hay photon map cho các lần bật lên sau (irr_map+photon). Рис.02-04. Chỉ có chiếu sáng trực tiếp và một lần khuếch tán phản xạ (lần khuếch tán bật lên đầu tiên - first diffuse bounces) Hình.02-05. Chiếu sáng trực tiếp và tất cả các lần khuếch tán phản xạ, được tính bằng phương pháp irradiance map cho lần bật lên khuếch tán đầu tiên và phương pháp photon map cho các lần bật lên khuếch tán tiếp theo. Hình.02-05a. Chỉ có sự bật lên khuếch tán đầu tiên ( Sự phản xạ qua lại đầu tiên ), được tính bằng phương pháp irradiance map. Để thấy hình ảnh này có thể tính sự chiếu sáng trực tiếp và GI với first diffuse bounces - on, secondary bounces - off và lưu irradiance map đã tính vào file. Sau đó tắt tất cả các vật thể của khung cảnh ra khỏi sự chiếu sáng trực tiếp và render với irradiance map được load từ file. Hình.02-05b. Còn bản thân Photon map được thấy như thế này. Để thấy nó ta tắt các vật thể ra khỏi sự chiếu sáng trực tiếp và tính first diffuse bounces>Global photon map, secondary bounces - off. Hình.02-05c. Photon map và ánh sáng trực tiếp, không có sự bật lên phản xạ thứ nhất Chiếu sáng trực tiếp - Direct computation (DC) dùng để tính sự chiếu sáng khuếch tán bằng phương pháp Monter Carlo. Tên khác của phương pháp này là “ Thô lực”. Khi tính direct+direct cho mỗi điểm một nửa bán cầu có kích thước đơn vị sẽ được xây dựng và việc lấy samples của hàm dưới tích phân sẽ được tiến hành ( Số lượng samples được biểu diễn trong xác lập Subdivs của nhóm First diffuse bounces>Direct computation), mà phần cốt lõi của nó là phần khuếch tán BRDF. Việc lấy samples BRDF là sự lựa chọn ngẫu nhiên một trong các giá trị cụ thể của nó, điều đó tương đương với việc chọn một hướng cụ thể (góc) chiếu xuống của ánh sáng. Theo hướng đó tia dò sẽ dò tới giao điểm mới với bề mặt gần nhất. Tại điểm mới sự chiếu sáng trực tiếp của nó sẽ được tính (đó sẽ là sự bật lên phản xạ đầu tiên) và quá trình tính các lần phản xạ tiếp theo cần phải lặp lại - xây dựng bán cầu ( hoặc cả hình cầu cho bề mặt trong suốt), lấy samples theo số lượng subdivs của nhóm Secondary bounces>direct computation, tia dò mới sẽ dò như thế tiếp cho đến khi đạt được Depth – độ sâu của tia dò. Bởi vì sự phản xạ qua lại sẽ nhanh chóng tắt đi cùng với sự gia tăng số lần phản xạ, thêm một yếu tố hạn chế số lượng samples và độ sâu tia dò, ngoài Depth, đó là QMC Sampler – với importance sampling và early termination. Tính bằng “thô lực” thu được kết quả về sự phân bố nửa bóng (phần chuyển bóng) rất chính xác hoàn toàn không bị gián đoạn. Nhưng thực sự rất lâu. Ví dụ, nếu chọn Subdivs bằng 50 cho cả 2 loại bật lên phản xạ, thì số tia samples cho mỗi điểm sẽ là 2500, tức là sẽ có 2500 новых điểm mới, mà tại mỗi điểm đó sẽ lại tiến hành dò 2500 tia của chúng, và sẽ nhận được 2500 điểm nữa, cứ thế quá trình tiếp diễn trong khi xác lập QMC vẫn cho phép. Quá trình rất nhanh chóng có tính chất như một dòng thác lũ, và tất cả số lượng khổng lồ tia DC sẽ phải được tính nghiêm túc và hoàn thiện. Số lượng samples của sự nảy bật thứ cấp của Vray theo mặc định là 1 tia, nó có vẻ hoàn toàn đủ để cho kết quả tốt cho phần lớn trường hợp và giảm nhẹ rõ rệt khối lượng tính. Ngoài độ chính xác tính nửa bóng cao và tốc độ chậm, nhược điểm của DC còn là sự nhiễu, điều liên quan đến việc tính toán được thực hiện riêng rẽ cho từng điểm. Để tránh nhiễu chỉ có 1 phương pháp – nâng số lượng tia samples (Subdivs), điều không rõ là không tốt cho thời gian tính toán. Vì thế, direct+direct computation khá ít được sử dụng trong thực tế và chủ yếu là cho các hình reference, giúp nhận biết cần phân bố ánh sáng thứ cấp trong khung cảnh như thế nào ( trong trường hợp đó sự nhiễu loạn không cần quan tâm). Trong trường hợp dùng direct +photon, tia dò từ điểm cần tính chỉ dò tới bề mặt gần nhất, nơi sẽ tính sự chiếu sáng trực tiếp còn sự chiếu sáng từ các lần phản xạ sau sẽ được đánh giá bằng mật độ của photon map tại điểm giao trong giới hạn của bán kính cho trước ( thông số Search distance của photon map). Phương pháp này nhanh hơn phương pháp trước và có thể còn chính xác hơn khi photon map có mật độ đủ cao. Còn có thêm một phương pháp sử dụng photon map để lựa chọn (dự đoán) những hướng của DC, cung cấp đóng góp đáng kể vào tính toán. Thực ra, chẳng nên “đốt cháy” samples vào không gian xung quanh nếu biết theo hướng nào các photon chuyển động!? Tiếc rằng Vray không sử dụng mẹo này. Irradiance map Sự khác biệt của phương pháp irradiance map so với direct computation là ở chỗ, tính toán được thực hiện không phải cho tất cả các điểm của hình mà chỉ một ít trong số đó. Sự chiếu sáng của các điểm còn lại được nội suy theo sự chiếu sáng đã được tính của các điểm gần nhất (phương pháp này được gọi là đường dốc – gradient sáng) trong giới hạn được cho bởi thông số Interp. Samples của nhóm First bounces>Irradiance map. Điều đó cho phép tính sáng của những chỗ thực sự cần thiết trong khung cảnh 3 chiều – trong vùng có những thay đổi đáng kể về chiếu sáng hay bề mặt hình học, và Это позволяет рассчитывать освещенность только в тех местах трехмерной сцены, где это действительно необходимо - в областях резкого изменения освещенности или геометрии поверхности, và tô bóng gần đúng cho những bề mặt phẳng và được chiếu sáng đều. Sự tuyển chọn các điểm để tính và lưu trong irradiance map diễn ra theo từng bước, bắt đầu từ độ phân giải thấp nhất của hình tới độ phân giải cao nhất. Độ phân giải thấp nhất được xác định bởi thông số Min. Rate; cao nhất - Max. rate của nhóm thông số First diffuse bounces>Irradiance Map, giá của các thông số này là số mũ của cơ số 2. Như thế giá trị -2 ứng với ¼ còn 0 ứng với 1. Việc tính irradiance map được thực hiện nhiều lần, mỗi lần chính xác hơn, cung cấp chất lượng cao hơn. Ví dụ, nếu Min. Rate = -3, còn Max. Rate = 0, phép tính irradiance map sẽ thực hiện 4 lần (-3, -2, -1, 0). Độ phân giải gốc là độ phân giải của hình cần tính, được làm nhỏ đi tương ứng với các lần tính. Với -3 trong lần tính đầu tiên chỉ thực hiện tính cho 8 điểm 1 lần. Trong bước tiếp theo, các điểm xung quanh sẽ được so sánh với nhau về sự chiếu sáng. Nếu sự khác nhau về chiếu sáng của các điểm, pháp tuyến của chúng hay vùng không gian gần vật thể lớn hơn 1 giá trị ngưỡng nhất định, từ mỗi nhóm sẽ chọn ra và tính thêm các điểm bổ sung Giá trị ngưỡng cho sự chiếu sáng ( màu sắc) được biểu thị trong thông số Clr. thresh, cho pháp tuyến - trong Nrm. thresh, cho vị trí không gian gần kề - trong Dist. thresh. Sau khi tất cả các bước được thực hiện, kết quả tính toán có thể được lưu vào file. Đó chính là bản đồ chiếu sáng - irradiance map. Do lưu trữ kết quả tính vào file, phương pháp irradiance map còn được gọi là phương pháp lưu trữ. Sau đó một loạt bước render cuối sẽ được thực hiện cho độ phân giải gốc, trong đó sự chiếu sáng các điểm đã tính sẽ được lấy từ irradiance map, còn của những điểm khác sẽ đươc nội suy bằng đường dốc theo các giá trị đã tính. Ở bước render cuối những điểm bổ sung có thể sẽ được tính – quá trình đó do việc thiết lập supersampling kích hoạt. Supersampling có những giá trị ngưỡng để đo sáng của mình, có thể không trùng với Clr. thresh, và nếu chúng nhỏ hơn những phép tính thêm sẽ được thực hiện cho một vài điểm Từ điểm lưu ý cuối cùng có thể rút ra kết luận rằng việc thiết lập supersampling có thể được làm đơn giản ở quá trình thiết lập cho irradiance map để tăng tốc độ tính toán và thiết lập với yêu cầu chất lượng cao hơn sau khi tính và lưu irradiance map, ngay trước khi tiến hành render cuối. Đó là điểm khác với direct computation, các thiết lập cho supersampling chúng cần được thực hiện trước cả khi bắt đầu tính toán. Như vậy irradiance map+photon map có sự mềm dẻo cao nhất trong quan hệ với supersampling – nó có thể được thay đổi mà không cần phải tính lại irradiance map cũng như photon map, điều cho phép các phép thử với ít sự tốn kém “sương máu” hơn với thiết lập supersampling Kết luận thực tiễn thứ 2 đề cập đến sự phụ thuộc của các giá trị Min. rate и Max. rate vào cỡ ảnh cần tính – khi tăng cỡ ảnh các giá trị này có thể được giảm đi và ngược lại. Ví dụ, nếu cặp giá trị Min. rate = -3 Max. rate = 0 làm việc tốt cho ảnh 800x600 pixel thì cho ảnh có kích thước 1200x1024 hoàn toàn có thể dùng Min. rate = -4 Max. rate = -1, và cỡ ảnh cao hơn các giá trị này còn có thể hạ xuống nữa. Trong quan hệ với việc khi tăng cỡ ảnh số điểm cần tính cũng tăng suy ra cùng một vùng của khung cảnh 3 chiều sẽ được biểu diễn bằng một số lượng lớn pixel Bản thân việc tính sáng của các điểm được thực hiện tương tự như direct computation – lấy samples của nửa bán cầu, tìm giao điểm, tính sự chiếu sáng trực tiếp, nếu cho những sự nảy bật thứ cấp dùng direct computation – những bán cầu mới sẽ được xây dựng, nếu dùng photon map – sẽ đánh giá sự chiếu sáng theo mật độ photon. Nói chung như bình thường. Nhưng có một đặc điểm quan trọng của quá trình tính irradiance map và first diffuse bounce trong tổng thể; ở giai đoạn tính sự bật lên khúc xạ đầu tiên diễn ra quá trình kết nối ( đọc - hòa trộn, kết hợp) sự chiếu sáng trực tiếp cũng như sự chiếu sáng secondary bounces. Đó là đặc điểm của Vray. Nó không lưu trữ các thành phần chiếu sáng riêng biệt, tính sự bật lên đầu tiên dựa trên kết quả tính toán chiếu sáng trực tiếp và các sự phản xạ qua lại khác và kết quả được lưu vào file. Và dù cho sự chiếu sáng trực tiếp không được lưu trữ bởi bản thân irradiance map, có thể bật hoặc tắt thì sự phản xạ qua lại nhiều lần sau tính toán đã có được giá trị của nó. Tức là nếu irradiance map đã tính có kể đến photon map và lưu vào file để cho các tính toán sau đó, thì việc load photon map từ file cũng như tính secondary bounces có thể bỏ qua mà không làm ảnh hưởng gì đến kết quả tính cuối cùng. Một ví dụ khác. Tính irradiance map không có secondary bounces và lưu vào file. Sau đó tính photon map và cũng lưu vào file. Bây giờ nếu như render với irradiance map load từ file cho first diffuse bounce, còn secondary bounces với photon map đã ghi và tính sáng thì việc cộng gộp ánh sáng sẽ không xảy ra. Chúng ta sẽ chỉ nhìn thấy irradiance map và sự chiếu sáng trực tiếp. Đặc điểm này của việc tính GI trong VRay có những mặt tích cực của nó – kích thước của irradiance map nhỏ hơn nhiều lần so với photon map . Và đặc điểm nêu trên còn cho phép chúng ta sử dụng chỉ irradiance map cho các tính toán sau nếu nó đã được tính trước có kể đến photon map và quên đi bản đồ photon nhiều MB Phương pháp tính irradiance map thực hiện nhanh hơn nhiều so với direct computation và không có tổn thất nào về chất lượng hình ảnh. Vì thế nó là cơ bản để tính sự bật lên khuếch tán đầu tiên. Tính tiếp hợp (adaptive) theo các điểm chọn trước là một khám phá rất thú vị của Vray và là ưu việt thực sự của nó. Bởi vì tính GI bằng irradiance map + photon map trong VRay tương tự với tính GI trong mental ray bằng sự kết hợp của photon map và final gathering. Nhưng mặt khác, final gathering, khác với irradiance map, chọn các điểm để tính trải đều theo giá trị bán kính cho sẵn không tính đến những thay đổi về màu sắc và hình học. Vì thế để nhận được kết quả chất lượng tương đương với irradiance map результатов, final gathering cần dùng một số điểm lớn hơn, mà điều đó có nghĩa là thực hiện phép tính chậm hơn Về thời gian render, direct+direct sẽ là chậm nhất, direct+photon map và irradiance map + direct sẽ cạnh tranh nhau về thời gian, irradiance map + photon map – phương pháp tính nhanh nhất đảm bảo chất lượng hình ảnh trong nguyên lý mang tính vật lý hoàn thiện của photon map. Vi thế chính sự kết hợp này được sử dụng nhiều nhất trong thực tế. Nhưng không loại trừ ngoại lệ. Ví dụ điển hình – tính sáng đêm bằng photon map. Vì photon rất ít do sự tập trung của các nguồn sáng (đêm mà), có thể cần đến rất nhiều thời gian để nhặt nhạnh chúng. Ví dụ khác – không có thành phần khuếch tán của vật liệu. Trong trường hợp đó tính photon map có thể trở thành một quá trình vô tận không kết quả bởi vì photon map chỉ được xây dựng cho bề mặt có ánh sáng khuếch tán bằng 0. Thêm một vídụ điển hình nữa – tính không gian mở với Skylight. Trong đó ví dụ cuối cùng có thể sửa chữa bằng cách đặt đúng lại các nguồn sáng. Bây giờ ta sẽ xem sét các thông số của maps - irradiance và photon. Bản đồ Photon (Photon map) Ý tưởng photon map (PM) đơn giản – từ nguồn sáng ánh sáng theo tất cả các hướng chia năng lượng ánh sáng –“photon”. Mỗi một hướng phóng (dò ) tới khi va chạm vào vật thể gần nhất của khung cảnh và ở đó xảy ra “tương tác” của photon với bề mặt. Kết quả của của tương tác được lưu vào một bộ cơ sở dữ liệu đặc biệt, chính là photon map. Tương tác được hiểu là photon có thể bị hấp thụ bởi bề mặt, phản xạ toàn phần hay khuếch tán từ nó hay đi qua bề mặt trong suốt ứng theo định luật phản xạ và khúc xạ ánh sáng. Hiện tượng nào sẽ xảy ra, phụ thuộc trước hết vào tính chất của bề mặt (tính chất và hệ số khuếch tán, phản xạ hay trong suốt của các vật liệu), thứ 2 là phụ thuộc vào kết quả của "bàn quay Rulet kiểu Nga"!!!. Bàn quay Rulet kiểu Nga – máy đếm ngẫu nhiên, sử dụng tổng các hệ số phản xạ khuếch tán, phản xạ toàn phần và hệ số trong suốt. Vì xác suất luôn luôn hướng tới 1 nên tổng 3 hệ số đó cũng không được vượt qua 1. Chính điều đó đảm bảo thông số Energy preservation mode của vật liệu VRay (trong đó cho RGB cho rằng 0-255 tương ứng với khoảng 0-1) và có lẽ chính vì thế photon map của Vray chỉ có thể tạo cho vật liệu loại VRayMtl. Bản chất của "bàn quay Rulet kiểu Nga" – hệ số này hay hệ số kia càng lớn thì xác suất hiện tượng tương ứng với nó sảy ra càng cao - hấp thụ phản xạ hay khúc xạ. Sau tương tác, photon dò theo hướng mới tới bề mặt tiếp theo, nơi quá trình sẽ lặp lại. Độ sâu tia dò trong Vray được cho bởi thông số Bounces trong bảng VRay: Global Photon map. Khi đạt tới độ sâu cho trước ( số lần photon tương tác với các bề mặt), sự dò của photon sẽ dừng lại. Trong các bản đồ photon của tất cả các mặt mà photon đã tương tác, lưu trữ các thông tin về tọa độ va chạm, năng lượng photon và hướng tới của nó. Photon map cho bề mặt được tạo khi và chỉ khi nó có tính khuếch tán khác 0 Để sử dụng thành công photon map cần đặc biệt hiểu cặn kẽ một điều – một photon riêng lẻ không thể xác định chính xác sự chiếu sáng của điểm. Để xác định chiếu sáng của điểm cần một bộ số lượng nhất định photon, gần với các tọa độ điểm và tổng năng lượng của chúng với những hệ số khối lượng xác định. Bán kính của bộ đó được cho bởi tham Search distance trong bảng VRay: Global Photon map. Các tham số xác lập cho Photon map Càng nhiều photon được dùng càng đánh giá chính xác sự chiếu sáng của điểm. Nhưng đó là “con dao 2 lưỡi” – nếu mật độ photon thấp, bộ chọn nhiều photon sẽ dẫn tới ánh sáng bị mờ nhạt Theo mặc định Vray sử dụng Auto Search dist – tự tìm bán kính tối ưu cho bộ photon, trong đó Search dist không được phép chỉnh sửa. Sử dụng Auto Search dist không được khuyến cáo - nên tắt nó và dùng giá trị của mình cho Search dist. Thêm một phương tiện trong bộ với sự mờ nhạt của ánh sáng – thông số Max. photons, xác định số photon được thu thập chứ không phải bán kính thu thập. Sự khác nhau giữa Search dist. và Max. photons là ở chỗ khi có giá trị Search dist số lượng thật các photon được thu thập phụ thuộc vào mật độ photon của bản đồ. Khi thiết lập giá trị Max. photons số photon thu thập sẽ không đổi, mà bán kính thu thập sẽ thay đổi. Khi dùng kết hợp các thông số sẽ tự cạnh tranh với nhau theo nguyên tắc “ ai nhanh hơn”. Nếu tại điểm của bề mặt số photon được cho trong Max. Photons được thu thập nhanh hơn thì giá trị của bán kính sẽ bị bỏ qua. Nếu trong giới bán kính cho trước không thu thập đủ số photon đã định việc thu thập sẽ ngừng lại và giá trị Max. Photons bị bỏ qua còn số photon sẽ được xác định bởi mật độ trong bán kính cho trước bởi Search dist. Trên thực tế thường chỉ sử dụng 1 trong các thông số đó - Search distance (Max. Photons được cho giá trị 0 có nghĩa là Vray sẽ bỏ qua nó). Mặt khác nguyên tắc cạnh tranh có thể được sử dụng để thiết lập cả 2 chế độ làm việc trong sự phụ thuộc vào mật độ photon map. Nếu cho giá trị Max. photons bằng số photon thu thập được trong giới hạn Search dist. ở vùng có mật độ photon thấp nhất của bản đồ thì cho vùng có mật độ cao hơn giới hạn Max. Photons sẽ làm việc, còn cho vùng có mật độ thấp – giới hạn Search distance sẽ có hiệu lực. Điều đó dẫn tới việc bán kính thu thập photon sẽ thay đổi trong giới hạn của khung cảnh phụ thuộc vào mật độ photon của bản đồ, điều sẽ làm giảm sự dàn trải của các mép bóng đặc biệt là trong vùng có sắc độ trung bình Mặc dù photon map cho ta kết quả vật lý chính xác về sự phân bố ánh sáng trong khung cảnh, để đạt được độ chính xác cao cần có mật độ photon dày, tức là cần có sự phát ra một số lượng photon lớn. Tiếc rằng hệ điều hành 32 bit hiện tại của các máy tính cá nhân hạn chế 2GB cho bộ nhớ và cho các phép tính ghi vào nó, điều làm giảm nghiêm trọng khả năng sử dụng photon map. Khi nào tất cả chúng ta đều làm việc trên hệ điều hành 64 bít với 8Terabyte cho tính toán, có thể tất cả GI sẽ tính bằng Photon. Con hiện tại 8 đến 10 triệu phép ghi của photon, phụ thuộc vào độ phức tạp của khung cảnh, là giới hạn tuyệt đối dung lượng của photon map. Một lần nữa trong Vray có sử dụng một giải pháp rất thú vị, cho phép khắc phục hạn chế về bộ nhớ. Thông số Max. density trong bảng VRay: Global Photon map cho phép “nén” dữ liệu của photon map. Việc đó được thực hiện như sau. Thay vì ghi toàn bộ thông tin (năng lượng, hướng, tọa độ - dung lượng cho thông tin của một điểm là 30byte) về một điểm trong bản đồ trước hết sẽ tiến hành phân tích các điểm đã được ghi. Nếu như gần tọa độ photon bay qua đã có ghi dữ liệu về photon đã qua đó trước, năng lượng của photon mới chỉ đơn giản đuợc cộng thêm vào năng lượng của photon đã được lưu trữ. Như thế, năng lượng của photon được ghi “miễn phí” vào photon map. Mức độ gần được xác định bởi thông số Max. Density. Nó có giá trị càng lớn thì bán kính mà photon map xem sét càng lớn và xác suất tìm thấy photon cũ đã bay qua càng lớn. Nếu Max. Density = 0, tất cả các photon đều được lưu trũ vào bản đồ: sự cộng giá trị của photon sẽ không có, tất cả các tọa độ, hướng và năng lượng của mỗi photon đều được ghi lại. Nếu trong khung cảnh sử dụng đơn vị là mm thì giá trị Max. Density = 5 đến 10 là hoàn toàn đủ để tính 50 đến 100 triệu photon. Vẫn tồn tại một câu hỏi – photon đã bay qua được hiểu là thế nào? Chỉ có ý nói sự gần về tọa độ hay còn tính đến gần về hướng và năng lượng của photon? Mức độ nén của photon map không phải là giải pháp tốt nhất cho chất lượng của hình ảnh. Đó là do mối quan hệ qua lại giữa Max. Density và Search dist. – tăng Max. Density không tránh khỏi việc tăng bán kính thu thập photon, tức là tăng độ mờ nhạt của ánh sáng. Ngoài ra, sự cộng photon trong giới hạn Max. Density cũng dẫn đến sự mờ nhạt các chi tiết trong chiếu sáng. Vì thế trên thực tế người ta cố gắng giảm giá trị của Max. Density sao cho vẫn nhận được mật độ cần thiết cho photon map. Một khả năng tuyệt vời nữa của Vray là thuật toán sử lý mép của các vật thể cho photon map. Vì chỉ mới một lượng photon không thể nhận được đường mép của các vật thể hay các vết nối bề mặt rõ ràng và liên tục, VRay đưa ra 2 phương pháp để nhận được mép sắc nét. Thứ nhất - Convex hull area estimate, tính gần đúng sự chiếu sáng bề mặt của các mép theo photon gần nhất. Bản thân tác giả không mặn mà lắm với phương pháp này, song trên thực tế Convex hull được thừa nhận là làm việc khá tốt. Convex hull sẽ làm việc tốt hơn nếu thông số Max. photons có giá trị khác không. Hình.02-05d. Photon map với thông số Convex hull area estimate đang bật. Hãy so sánh với hình 02-05b – thiếu độ nhấn ở mép, góc và các vết nối Thứ hai – sử dụng direct computation để tính sáng. Điều này đạt được bằng cách cho thông số Retrace threshold – khoảng cách từ mép, nơi sẽ bắt đầu tính cả Retrace Bounces – số lượng lần bật lên được tính cần phải bằng giá trị của thông số Bounces của photon map. Phương pháp này đòi hỏi thời gian khá lơn và không phải khi nào cũng cho kết quả tốt. Ngoài ra đôi khi kết quả tính mép vẫn có thể hơi khác về màu sắc so với các phần khác của bề mặt, điều này đòi hỏi phải tinh chỉnh thông số Retrace Bounces (nhỏ hơn – tối hơn, lớn hơn – sáng hơn) và các phép tính bổ sung. Cả hai phương pháp trên đều được sử dụng khá rộng rãi. Store direct light Cho phép lưu trữ trong photon map thông tin về sự chiếu sáng trực tiếp. Trong các thuật ngữ về photon map, sự va chạm đầu tiên của mỗi photon với bề mặt chính là sự chiếu sáng trực tiếp về bản chất (đừng nhầm với sự va chạm khuếch tán đầu tiên, cái chính là sự va chạm thứ hai của photon với bề mặt). Thường thì sự nảy bật lên đầu tiên của photon trong các bản đồ không được lưu lại để tránh sự lặp lại của phép tính chiếu sáng trực tiếp. Hình.02-05e. Bản đồ photon với thông số Store direct light được bật. Hãy so sánh với hình 02-05b, được tính không có Store direct light và hình 02-05c, được tính với sự chiếu sáng trực tiếp và photon map Convert to irradiance map được tạo ra cho việc tính sáng trung gian theo photon map. Cho phép tăng tốc độ tính irradiance map. Sử dụng sự chuyển đổi tương đương với "sự giúp đỡ" các photon của bản đồ trong vai trò Interp. samples ở các vết sáng, còn thông số Interp. samples xác định lượng photon gần điểm cần tính dùng cho việc đó. Hình.02-05f. Photon map có bật thông số Convert to irradiance map. Hãy so sánh với hình 02-05b, được tính không có3 Convert to irradiance map. Hình 02-05h. Photon map với Convex hull area estimate - on, Store direct light - on, Convert to irradiance map - on. Hãy so sánh với…tôi nghĩ rằng các bạn đã biết là cần so sánh với cái gì) Để sử dụng hiệu quả photon map (PM)cần phải chú ý đến những tính chất cơ bản sau của nó PM không phụ thuộc vào vị trí của camera, vào kích thước của ảnh và vào các xác lập chống răng cưa. Điều đó cho phép tính photon map với mật độ cần thiết chỉ một lần, lưu vào file và sử dụng nhiều lần không cần tính lại. Ví dụ, có thể sử dụng cho thiết lập photon map hình ảnh có kích thước (cỡ ảnh) nhỏ với chống răng cưa được xác lập thấp. Không cần tính lại photon map khi thay đổi vị trí của camera và khi thay đổi cỡ ảnh. Và cần phải tính lại trong tất cả các thay đổi khác của khung cảnh: tính chất của vật liệu và nguồn sáng, thay đổi về hình học và vị trí của các vật thể - tất cả những gì thay đổi sự chiếu sáng của khung cảnh. Thông số Search dist. và Max. photons có thể thay đổi không cần tính lại photon map. Điều đó cho phép tính photon map với mật độ cần thiết chỉ một lần, lưu lại vào file, sau đó thay đổi các thông số trên và tiến hành render với photon map được load từ file. Rất tiện lợi cho thiết lập photon map. Làm sao điều đó có thể được – dễ hiểu, Search dist. Và Max. photons chỉ xác định lượng photon để tính sáng và không thay đổi photon map. 1. Số lượng tia photon được cho trong các tính chất của nguồn sáng trong bảng VRay Systems>Lights settings với dấu tick của Generate diffuse và chỉ ra Diffuse subdivs. Số lượng tối đa tia photon sẽ được xác định bởi bình phương số subdivs, còn thực sự - bởi các thông số ngưỡng của QMC. Để tính photon map trong các tính chất của các vật thể Object settings cũng cần đánh dấu cho Generate GI và Receive GI. 2. Photon map chỉ được tính cho các vật liệu Vray. Cho các dạng vật liệu khác PM không làm việc. 3. Photon map không làm việc với nguồn sáng SkyLight và HDRI. Tính sáng với SkyLight và HDRI chỉ có thể được thực bởi irradiance map hoặc direct computation. 4. Photon map trong VRay được tạo ra chỉ để tính sự chiếu sáng bởi sự phản xạ nhiều lần của ánh sáng, bắt đầu từ lần thứ 2 trở lên. Nó không được thiết kế để tính sự bật lên phản xạ đầu tiên, tức là sự chiếu sáng từ sự phản xạ khuếch tán đầu tiên. Công tắc để bật photon map cho tính sáng của lần bật lên đầu tiên có trong bảng VRay: Indirect Illumination chỉ dành cho mục đích xác lập bản thân photon map. Đáng ngạc nhiên nhưng là thực tế là giá trị Bounces của photon map không ảnh hưởng nhiều đến số lần tương tác của photon với các bề mặt ( và đến dung lượng của photon map). Sự phụ thuộc đó đáng ra là càng mạnh hơn – quãng đường photon đi được càng dài, càng có nhiều hiện tượng chúng ta phải xem xét. Rất có thể đó là do ảnh hưởng của QMC Sampler. Thay vào đó, như thực tế cho thấy, thông số Multiplier cho Secondary bounces trong bảng VRay: Indirect illumination (GI) ảnh hưởng sâu sắc tới lượng hiện tượng đã cố định trong photon map. Hai tính chất đó cần được tính đến trong hoạch định về mật độ của photon map. Bật tắt Convex hull area estimate, Store direct light và Convert to irradiance map yêu cầu tính lại photon map. Irradiance Map Các thông số thiết lập cho irradiance map Interpolation type – khả năng nội suy sự chiếu sáng của các điểm không được tính theo các giá trị chiếu sáng đã tính. Trong trường hợp đơn giản nhất sự chiếu sáng của điểm được nội suy theo sự chiếu sáng đã tính của các điểm gần nhất trong số lượng được cho bởi Calc. Pass interpolation samples. Sư chiếu sáng được tổng hợp lại với hệ các số cân bằng, phụ thuộc vào khoảng cách và hướng pháp tuyến. Có tất cả 4 dạng nội suy (4 phương pháp khác nhau tính hệ số cân bằng), trong số đó có 3 loại có liên quan đến sự mờ nhạt - Weighted average, Least squares fit, Least squares with Voronoi weights và một loại không có sự mờ nhạt - Delone triangulation. Theo mặc định VRay dùng Least squares fit, nếu như cần loại nội suy không mờ nhạt – loại Delone triangulation sẽ được dùng, nó cung cấp hình ảnh chính xác và rõ ràng hơn. Mặt khác các loại nội suy trên yêu cầu tăng subdivs irradiance map, bởi vì khi không có sự mờ nhạt thì nhiễu của hình sẽ không tự được làm mềm đi Sample lookup – phương pháp chọn những điểm đã tính sáng cho nội suy của điểm cho trước. Chúng có 3 loại, đơn giản nhất là - Nearest, chọn lần lượt tất cả những điểm nằm gần điểm cho trước. Thứ hai - Nearest quad-balanced, chia vùng gần điểm ra 4 phần và cố gắng chọn trong mỗi phần một lượng samples như nhau, điều thường dẫn đến việc sử dụng những samples không phải là tốt nhất cho nội suy (quá xa). Phương pháp thứ ba đòi hỏi bước bổ sung để chuẩn bị, nhưng làm việc không nhanh hơn các loại khác là mấy - Precalculated overlapping. Nó cần bước chuẩn bị gọi là “bán kính ảnh hưởng” cho mỗi điểm đã tính. Những bán kính ảnh hưởng đó sẽ lớn hơn ở chỗ mật độ irradiance map nhỏ và ngược lại. Sau đó khi render, sự chiếu sáng của điểm sẽ chỉ được nội suy phương pháp này cho kết quả cao nhất Randomize samples – thông số bổ sung, ảnh hưởng đến việc chọn các điểm trong bước tính ánh sáng direct computation. Nếu dấu tick được đánh, sẽ chọn những điểm nằm bất qui tắc với nhau sao cho đáp ứng những tính ngẫu nhiên nhất định liên hệ giữa vị trí của chúng. Nó có ảnh hưởng hữu ích tới việc triệt tiêu một số loại răng cưa, cụ thể là moire. Check sample visibility – Khi bật thông số này, sự nội suy sẽ được thực hiện có tính đến khả năng nhìn thấy của các điểm. Nó cho phép tránh việc thấm ánh sáng qua những mép ngăn mỏng. Trong sách hướng dẫn của Vray có một loạt ví dụ trực quan và trình bày toàn bộ ảnh hưởng của mỗi thông số ở trên đến irradiance map và cụ thể là hình ảnh. Tôi khuyên là nên xem. Mode – Các chế độ sử dụng irradiance map khác nhau. Bucket có lợi trong render mạng, bởi vì cho mỗi bucket irradiance map riêng sẽ được tạo ra. Đòi hỏi các bước tính bổ sung (thời gian) cho các mép buket, một trong các phương pháp tăng tốc độ tính toán – tăng kích thước buket. Single frame – bản đồ được tính nhanh hơn đáng kể và ngay lập tức cho cả khung hình nhưng chỉ trên một máy tính. Các chế độ khác dùng để sử dụng lại irradiance map đã được tính khi thay đổi vị trí của camera (Incremental add to current map) hay thậm chí là dành cho hoạt cảnh (Multiframe incremental) – bản đồ sẽ được tính không toàn bộ mà chỉ những điểm không đạt tới được. Không xét đến việc irradiance map kém mềm hơn photon map và thực tế là mọi thay đổi các xác lập hay thông số của khung cảnh đều đòi hỏi tính lại ir. Map, các chi phí có thể giảm thiểu bằng các chế độ khác nhau – Mode. Irradiance map không cần tính lại khi thay đổi các xác lập antialiasing và trong thiết lập Color mapping. Về các thiết lập liên quan đến các giá trị ngưỡng cho các thông số chọn điểm - Clr. thresh, Nrm. Thresh và Dist. thresh, thì bởi vì VRay sử dụng một vài giá trị trừu tượng (Generic units) các giá trị của chúng khá khó liên hệ với các giá trị đo thực tế của ánh sáng, góc pháp tuyến hay khoảng cách. Cứu cánh chỉ là những Irradiance map preset cho render với các mức chất lượng khác nhau. Chọn trong danh sách bộ xác lập phù hợp, có thể sử dụng chúng như xuất phát điểm để thiết lập các giá trị ngưỡng của bản thân. Tính đến tất cả những đặc điểm đã nói ở trên có thể đưa ra phương pháp tính sáng cho khung cảnh 3D bằng Vray như sau. 1. Xây dựng sự chiếu sáng trực tiếp. Chọn các dạng và số lượng nguồn sáng sao cho chúng tối đa thỏa mãn điều kiện đặt ra, cụ thể là thỏa mãn các yêu cầu làm trung thực ánh sáng. Sau đó thiết lập chỉ ánh sáng trực tiếp bằng việc điều chỉnh các thông số của nguồn sáng. multiplier, color và những cái khác. Ở bước này các dạng chiếu sáng khác đều tắt. Xây dựng đúng ánh sáng trực tiếp là đảm bảo cho render đẹp, bởi vì chính ánh sáng trực tiếp mới là cơ bản và xác định. 2. Xác lập và tính photon map rồi lưu vào file. 3. Xác lập và tính irradiance map cho first diffuse bounce cùng với photon map được load từ file cho совместно secondary bounces. Sau đó lưu irradiance map đã tính vào file. 4. Render cuối với xác lập tinh tế của cân bằng ánh sáng bằng Vray: Color mapping và chọn mức khử răng cưa cần thiết. Trong bước này dùng irradiance map đã tính từ file. Trong bài tiếp theo ví dụ thiết lập cho tính sáng một khung cảnh cụ thể theo sơ đồ đã nêu sẽ được xem sét Hẹn gặp lại! Igor_Sivacov(igsiv@mail.ru) Phát hành — 21 tháng 7 năm 2004 Dịch từ tiếng Nga Raytrace (tungarch@yahoo.com) tháng 3 năm 2005

Các file đính kèm theo tài liệu này:

  • pdfvraydinhnghiavacachsudungp1.pdf
Tài liệu liên quan