Tài liệu VRay Định nghĩa và cách sử dụng: VRay Định nghĩa và cách sử dụng
Phần 2: Cách sử dụng cụ thể
Ví dụ về xác lập ánh sáng cho khung cảnh trong Vray
Trong phần 1 chúng ta đã tìm hiểu những nguyên lý làm việc cơ bản và chức năng của một số thông
số xác lập trong Vray. Còn bây giờ hãy cùng xem xét những điều đó ứng dụng trên thực tế như thế
nào.
Khung cảnh
Cho các thiết lập tôi chọn một khung cảnh mà các bạn có thể tìm thấy trên Internet tại địa chỉ
Chọn chính khung cảnh đó do 3 nguyên nhân sau. Thứ
nhất khung cảnh được tạo ra đặc biệt để thử (test) các khả năng của các chương trình render khac
nhau và có trình bày tất cả các dạng 3D cơ bản. Cũng trên trang web đó có trình bầy một gallery lớn
các hình ảnh đã render của khung cảnh này cho nên có thể so sánh kết quả của mình với những
người khác. Thứ 2, khung cảnh có một tính chất trung gian – đó không hẳn là một cảnh nội thất cũng
như không phải là một cảnh ngoại thất hoàn toàn. Đó là một cái sân trong nhỏ, được bao bọc kín bởi
4 bức tường. Ánh s...
38 trang |
Chia sẻ: hunglv | Lượt xem: 1180 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu VRay Định nghĩa và cách sử dụng, để 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 2: Cách sử dụng cụ thể
Ví dụ về xác lập ánh sáng cho khung cảnh trong Vray
Trong phần 1 chúng ta đã tìm hiểu những nguyên lý làm việc cơ bản và chức năng của một số thông
số xác lập trong Vray. Còn bây giờ hãy cùng xem xét những điều đó ứng dụng trên thực tế như thế
nào.
Khung cảnh
Cho các thiết lập tôi chọn một khung cảnh mà các bạn có thể tìm thấy trên Internet tại địa chỉ
Chọn chính khung cảnh đó do 3 nguyên nhân sau. Thứ
nhất khung cảnh được tạo ra đặc biệt để thử (test) các khả năng của các chương trình render khac
nhau và có trình bày tất cả các dạng 3D cơ bản. Cũng trên trang web đó có trình bầy một gallery lớn
các hình ảnh đã render của khung cảnh này cho nên có thể so sánh kết quả của mình với những
người khác. Thứ 2, khung cảnh có một tính chất trung gian – đó không hẳn là một cảnh nội thất cũng
như không phải là một cảnh ngoại thất hoàn toàn. Đó là một cái sân trong nhỏ, được bao bọc kín bởi
4 bức tường. Ánh sáng chiếu vào trong từ phía trên qua một cái “giếng” khá sâu được tạo nên từ các
bức tường của ngôi nhà. Trong khung cảnh có tầng 2, vùng dưới ban công, và ánh sáng chiếu thẳng
vào đó. Thứ 3 là khung cảnh khá lớn, khoảng 40m chiều dài. Khung cảnh gốc được tạo trong
LightWave. Trên trang web cũng có version cùng với vật liêu đã tương thích với 3ds của nó, và
chúng ta sẽ làm việc với nó. Trong scan-line renderer 3ds max nó trông như thế này.
Vật liệu và hình khối.
VRay, dù sao, cũng như những renderer khác, có một loạt các yêu cầu về hình học của
khung cảnh. Hình khối phải “chính xác”, tức là cần phải tuân theo những đòi hỏi bình
thường về dựng hình đúng. Hình khối không được chứa những poligon dài, mảnh (dải),
còn các vết nối cần phải không có bất kỳ khe hở nào. Sự tồn tại những khe hở là nguyên
nhân chính để lọt ánh sáng xuyên qua góc (xuất hiện hiện tượng tự sáng ở góc) và vết nối
các bề mặt. Tốt nhất nếu như các vật thể riêng biệt là những mô hình riêng biệt. Ví dụ,
khi xây dựng phòng dạng hộp nên làm bằng 1 vật thể chứ không phải tạo thành từ 6 vật
thể hình hộp (box). Khi dựng hình cần sử dụng các hình khối “xây được”, ví dụ như
tường trong thế giới thực luôn luôn có bề dày thì trong khung cảnh đừng cố gắng dựng nó
bằng mặt không có độ dày. Bản thân tôi luôn tránh sử dụng thao tác boolean để tạo các
lỗ cửa và cửa sổ bởi vì nó thường tạo ra những lưới poligon không tối ưu. Phương pháp
tốt nhất để dựng hình tôi có thể khuyên là làm việc với Editable poly.
Hình 1: Khung cảnh được nhìn thấy thế này trong scan-line renderer 3ds max . Thời gian
render với AthonXP 3200 – 14 giây.
VRay không đòi hỏi về hình khối nặng như các chương trình sử dụng radiosity, tuy
nhiên, dựng hình tốt là bảo đảm cho việc tính toán trên nó nhanh và không lỗi. Vì thế
kiểm tra và tinh chỉnh hình của khung cảnh khi cần là việc làm đầu tiên để chuẩn bị cho
render.
Việc chọn đơn vị đo cho khung cảnh là khá quan trọng mặc dù không phải là bắt buộc.
Khi làm việc với VRay tiện nhất là làm việc với millimetre. Đó là yêu cầu của phạm vi
đo các giá trị của VRay, mà việc sử dụng mm sẽ tăng độ chính xác khi làm việc với nó.
Ví dụ, giá trị nhỏ nhất của thông số Max. density của photon map là 0.001 trong hệ đo
lường đã chọn. Nhưng 0.001 của 1m và 1mm là hoàn toàn khác nhau. Tất nhiên độ chính
xác cao như vậy của Max. density cho photon map là для фотонной карты không xác
đáng, nhưng VRay còn có một loạt những thông số khác có giới hạn đo cũng dựa trên hệ
đơn vị đo như vậy. Hệ đơn vị được dùng luôn có thể thay đổi sang hệ khác, ví dụ, bằng
công cụ Rescale World Units 3 ds max. Nó chỉ có thể ảnh hưởng mạnh ở chỗ khối lượng
lớn công việc tính toán sẽ phải tính lại.
Cũng tương tự cần giữ nguyên tắc tương ứng giữa kích thước của các vật thể trong khung
cảnh và thế giới thực. Sự cần thiết của yêu cầu đó bị chỉ định bởi sự sử dụng luật tắt dần
cường độ chiếu sáng theo khoảng cách trong mọi chương trình render có tính Global
Illumination hiện thời.
Vì tôi đã định dùng photon map nên cần xây dựng vật liệu. Như ta đã rõ, VRay chỉ tính
photon map cho vật liệu VrayMtl. Vì thế cần phải chuyển đổi các vật liệu Standard 3ds
max đã được dùng trong khung cảnh sang dạng VrayMtl. Việc chuyển đổi vật liệu khá
dễ, chỉ cần thay đổi dạng vật liệu sang VrayMtl, mô phỏng tính diffuse của vật liệu sẽ
được áp vào mục tương ứng. Vì một số vật liệu gốc có bump nên chúng sẽ được thiết lập
tương tự trong vật liêu mới cũng với giá trị như vậy.
Dung lượng của khung cảnh là 66 454 poligon, như thế hoàn toàn chấp nhận được. Các
chỉ số về số lượng hình học và vật liệu cũng quan trọng – chi phí cho chúng là bộ nhớ sẽ
không được dùng cho các mục đích khác tiếp theo, ví dụ - cho photon map. Càng nhiều
bộ nhớ tốn kém cho hình học và vật liệu thì càng ít bộ nhớ còn lại cho các photon vì
Windows không thể quản lý nhiều hơn 2 GB bộ nhớ - đó là tất cả những thứ truy cập
được cho hệ thống và chương trình đang chạy. Nếu khung cảnh quá lớn render có thể là
hoàn toàn không thực hiện được. Hoạch định và tối ưu kích thước cho khung cảnh cũng
là một điều không kém phần quan trọng khi chuẩn bị tính toán.
Để hoạch định cần lấy giá trị gần với 1.5 GB (nếu bạn không bật đồng thời với 3ds max
thêm Photoshop, Corel Draw, WinAmp, Word và IE :). Đây là khung cảnh với vật liệu đã
được xây dựng xong.
Ánh sáng
Vì bản thân khung cảnh của chúng ta cần có ánh sáng ban ngày, tôi dự định dùng 2 nguồn
sáng (NS). Một trong số chúng mô phỏng mặt trời cái còn lại – ánh sáng rải rác rộng
khắp của vòm trời.
Một NS bất kỳ thỏa mãn 3 điều kiện sau có thể mô phỏng ánh sáng mặt trời
• Nó không giảm cường độ ánh sáng theo khoảng cách
• Các tia sáng của nó song song với nhau;
• Nó có mặt trước chiếu sáng dạng một phần của mặt phẳng, hình chữ nhật hay
hình tròn.
Trong 3 ds max các yêu cầu trên gần như dẫn đến sự lựa chọn NS Target Direct.
VrayLight không phù hợp vì không cung cấp các tia sáng song song (yêu cầu thứ 2).
Thậm chí khi tắt Ignore light normal trong thông số của nó, mặt trước chiếu sáng sẽ có
dạng cầu. Điều đó sẽ dẫn tới tổn thất các tia photon, tức là tới việc tăng thời gian tính
toán vô ích.
Yêu cầu không có sự tắt dần theo khoảng cách mâu thuẫn với nguyên tắc chính xác vật lý
vì chúng ta đang xây dựng mặt trời. Trong đồ họa máy tính chỉ có 1 trong số các phương
pháp tắt dần có thể - kết quả của việc thay đổi mật độ dòng năng lượng ánh sáng khi thay
đổi diện tích mặt trước chiếu sáng khi phân bố ánh sáng (tăng bán kính hình cầu mặt
trước chiếu sáng theo theo thời gian hoặc chỉ đơn giản là theo khoảng cách từ nguồn
sáng). Điều đó dẫn đến việc tắt dần theo bình phương khoảng cách, còn sự thay đổi
cường độ chỉ phụ thuộc vào sự thay đổi khoảng cách (bán kính). Nói về mặt trời thì
khoảng cách mà tia sáng đi từ đó tới trái đất quá lớn so với sự thay đổi bán kính mặt
trước chiếu sáng trong phạm vi trái đất. Vì thế sự thay đổi cường độ chiếu sáng trong
phạm vi các khoảng cách trên trái đất, cứ cho là hàng trăm Km hay viên bi 10mm là rất
nhỏ. Nói một cách khác, quả cầu sáng tỏa ra từ mặt trời tới trái đất lớn tới cỡ mà bề mặt
của nó có thể co là phẳng (hơn nữa với cơ sở lớn hơn rất nhiều so với việc coi bề mặt trái
đất là phẳng), sự thay đổi mật độ ánh sáng là không đáng kể còn các tia sáng là song
song. Và đó chính là sự chính xác vật lý đối với mặt trời như là một nguồn sáng. Các
nguồn sáng bình thường của trái đất - hoàn toàn khác. Sự thay đổi tương đối bán kính
quả cầu sáng của chúng lúc nào cũng lớn, nhân thấy được và cần phải tính đến theo qui
luật tắt dần theo bình phương khoảng cách.
Xác lập vị trí và độ cao của Target Direct trong khung cảnh được chọn sao cho phần nhìn
thấy trong camera được chiếu sáng đẹp nhất. Mặt trước chiếu sáng chọn là hình chữ nhật
(Light Cone>rectangle) để giảm nhẹ sự chiếu tia vào phần đẹp của khung cảnh sao cho
thất thoát khi chiếu các tia photon là tối thiểu. для облегчения его проецирования на
интересующую часть сцены так, чтобы минимизировать потери при излучении
фотонов. Sự tắt dần tất nhiên là chúng ta sẽ bỏ (Decay>Type>None). Chọn loại bóng đổ
là VRayShadow với các giá trị theo mặc định.
Nguồn sáng thứ 2 cần phải mô tả ánh sáng tỏa xuống từ bầu trời và vì thế nhất định phải
là loại không gian (dạng Area). Có thể chọn NS dạng Skylight từ bộ NS của 3ds max, và
không tồi nếu như cung với nó dùng một hình ảnh bầu trời phù hợp vào HDRI. Mặt khác
nếu tính đến việc photon map không làm việc với Skylight và HDRI thì thay vào đó ta
dùng loại NS VrayLight là thích hợp. Tuy thế, phương án dùng Skylight+HDRI hoàn
toàn không bị loại bỏ, chỉ đơn giản là tại đây và bây giờ tôi chưa đề cập đến.
Thiết lập VrayLight sao cho nó có dạng chữ nhật tương ứng với kích thước ô trống phía
trên của sân trong và đặt nó thấp hơn một chút so với mái. Vị trí như vậy hạn chế tối đa
thất thoát photon, còn sự chiếu sáng ngoài mái của ngôi nhà sẽ do VRay Environment
đảm nhiệm. Sự tắt dần vẫn để bật – đây không phải là mặt trời.
Hình. 02. Xác lập VRayLight
Cuối cùng, để thể hiện mầu sắc của bầu trời ta áp mầu trắng cho Environment 3ds max.
Hình 03. Khung cảnh với các nguồn sáng và camera.
Kích thước render chúng ta đặt là 640х480, Như thế là hoàn toàn đủ cho mục đích xác lập
ánh sáng. Sau khi xác lập ngay trước khi tiến hành render lần cuối nó cần được thay đổi
sang kích thước cần thiết. Cũng cần để thông số chống răng cưa (sau đây sẽ viết tắt là
AA) tối thiểu chế độ fixed rate, subdivs=1, có thể còn để thô hơn.
Bây giờ, sau khi bố trí ánh sáng, cần thiết lập hệ số nhân (Multiplier) cho cường độ của
chúng. Thao tác này cần thực hiện qua nhiều bước. Đầu tiên chỉ để ánh sáng trực tiếp.
Bây giờ ta sẽ làm việc đó.
Tắt tính GI của VRay và bắt đầu thử với các giá trị cường độ bằng cách chỉ render ánh
sáng trực tiếp và điều chỉnh của NS. Cho khung cảnh này tôi dừng lại ở các giá trị sau:
cho Target Direct - 3, cho VRayLight - 5 và màu trắng cho cả hai (255, 255, 255). Khi
xác lập cường độ ánh sáng ngay từ ban đầu ta cũng dùng công cụ điều khiển theo luật số
mũ trong VRay: Color mapping, loại - HSV Exponential, Dark Multiplier =1.6, Bright
multiplier =1, Affect background off.
Hình. 04. Khung cảnh với ánh sáng trực tiếp sẽ trông như thế này.
Công cụ điều khiển này hay ở chỗ cho phép loại đi những ánh sáng thừa ở những chỗ quá
sáng. Trong khung cảnh này tôi muốn thể hiện cảm giác rực rỡ của ánh sáng ban ngày, do
đó sẽ thừa sáng ở vùng mái khi đạt được độ sáng cần ở các vùng khác. Vấn đề được giải
quyết bằng công cụ điều khiển theo luật số mũ sự chiếu sáng. Nói chung sự cần thiết
trong kiểm soát các chỗ thừa hoặc thiếu sáng đã nảy sinh do các renderer hiện giờ đều
tính giá trị cường độ theo sự chính xác vật lý, điều không phải lúc nào cũng gắng gượng
thực hiện được trong mô hình RGB chuẩn.
Hình. 05. Các thông số của nhóm Color mapping giúp điều chỉnh các cường độ
chiếu sáng
Tất cả có 3 loại điều khiển: Linear multiply (đường), Exponential (theo luật số mũ), HSV
exponential (theo luật số mũ có giữ lại sự bão hòa màu sắc). Sự khác nhau giữa
Exponential và HSV exponential là ở chỗ khi bão hòa về tông (tone) sau khi tinh chỉnh
có sử dụng Exponential hình ảnh sẽ “nén hơn”, khô hơn. Trong các bước cuối cùng, sau
khi tính photon map và irradiance map, có thể xuất hiện yêu cầu tinh chỉnh bổ sung cho
ánh sáng. Việc đó hoàn toàn có thể thực hiện bằng cách tương tự và không phải tính lại
bản đồ.
Thiết lập photon map
Để tính sáng phương pháp irradiance map + photon map đã được chọn. Làm như thế vì
những nguyên nhân sau: photon map cung cấp kết quả nhanh và chính xác, bản đồ chiếu
sáng (irradiance map) cũng cho tốc độ như vậy và với thiết lập cần thiết là chất lượng
render. Ưu việt của phương pháp này đã được xem xét khá kỹ trong phần 1.
Chúng ta bắt đầu thiết lập photon map. Trước đó, trong bảng VRay: Indirect Illumination
nhập vào những thông số như sau. выставляем следующие параметры:
HÌnh 06. Chọn photon map
Bây giờ cho first bounce chọn phương pháp Global photon map với mục đích tạo ra
photon map. Sau đây, khi photon map đã có, tôi sẽ sử dụng Irradiance map.
Nhập vào giá trị Secondary bounces>Multiplier lớn nhất bằng 1, vì lý do kích thước của
khung cảnh lớn và có những phần photon khó bay đến. Cũng vì lý do đó giá trị độ sâu tia
dò photon, Bounces, thiết lập bằng 20 thay cho 10 như mặc định.
Tắt Refractive GI caustics và Reflective GI caustics, vì tôi không có ý định tính hiệu ứng
caustic từ ánh sáng phản xạ khuếch tán.
Xác lập quan trọng nhất bây giờ là số lượng tia photon từ các nguồn sáng (subdivs). Nó
cần phải đủ lớn để cho hình ảnh có chất lượng cần thiết và đủ nhỏ để đảm bảo điều kiện
tốc độ cao nhất cho các tính toán sau. Trong ý tưởng, mật độ của photon map càng cao thì
bán kính thu thập photon (Search distance – sẽ viết tắt là SD) càng nhỏ và photon map
càng chất lượng. Thực tể cũng cần tính đến yếu tố thời gian tính toán và hạn chế của bộ
nhớ hệ thống (1,5 GB trừ đi phần bộ nhớ cho cho hình học và vật liệu, chắc bạn còn
nhớ?). Vì thế, sự chọn lựa SD hợp lý và chỉnh đúng mật độ photon cho nó là chiến lược
cốt yếu ở bước này.
Phân tích bản thân khung cảnh là tiêu chuẩn cho sự lựa chọn giá trị SD phù hợp. Nếu, ví
dụ như, trong khung cảnh có một số vật thể quan trọng nhìn thấy tốt, chỗ chuyển bóng
của chúng cần thể hiện thì lựa chọn SD là hướng vào chúng - SD cần phải có giá trị sao
cho cung cấp được độ chính xác chuyển bóng dọc theo chúng. Nếu không có vật thể
trọng tâm, SD có thể chọn dựa vào kích thước của khung cảnh và đơn vị sử dụng (SD
được đo bằng đơn vị được dùng trong khung cảnh). Vì trong khung cảnh của chúng ta
không có vật thể trọng tâm, tôi đề xuất SD trong giới hạn 50-150 mm.sẽ là phù hợp và
dừng lại ở giá trị SD = 100. Sự lựa chọn SD cho phép ngay lập tức xác định cả Max.
density (kích thước của photon map, hay độ “nén” của nó, tiếp theo sẽ viết tắt là - MD),
bởi vì giữa chúng có mối liên hệ. Rõ ràng là SD không thể nhỏ hơn MD bởi vì khi đó
trong giới hạn của SD sẽ không có môt photon nào. Tác giả bài này khuyên nên giữ tỷ lệ
giữa SD và MD trong giới hạn 2 đến 6, tức là SD=MDx2….6, , chúng ta cũng sẽ dùng tỷ
lệ đó bây giờ. Nếu bạn bỏ qua MD tức là cho nó giá trị 0 (photon map giữ nguyên dạng)
thì sẽ không thành công bởi vì chúng ta cần chiếu một lượng khá lớn photon, mà hạn chế
của bộ nhớ hệ thống không cho phép làm như thế. Chọn MD =100/6=15, trong mối
tương quan này giá trị của MD luôn cần tiến tới giá trị nhỏ nhất có thể được. Bây giờ
chúng ta tính 4 photon map với các giá trị khác nhau của subdivs cho nguồn sáng lần lượt
là : для 3000, 5000, 7000 và 8000 subdivs . Mỗi photon map tất nhiên cần lưu vào một
file riêng biệt.
Hình.07 Các thông số của photon map
Các thông số của photon map sẽ không thay đổi, có chăng chỉ là giá trị của subdivs cho
nguồn sáng. Trước khi tính có thể tắt thêm sự phát sinh caustic photons của nguồn sáng
và các vật thể (bởi vì chúng ta không định tính caustic từ ánh sáng trực tiếp trong khung
cảnh này) và kiểm tra tính chất của các vật thể xem Generate GI/Receive GI cho chúng
đã được xác lập chưa?
HÌnh phot_map#3 Photon map sẽ trông như thế này với 3000 subdivs và ánh sáng
trực tiếp.
Thống kê của photon map:
• subdivs 3000 3000 (nguồn sáng thứ nhất và thứ hai - Target Direct и VrayLight,
mặt trời và bầu trời của chúng ta) ;
• chiếu tối đa: 18 000 000 photon;
• Số photon lưu trữ trong bản đồ: 5 635 989;
• Dung lượng bộ nhớ cần 516.4 MB;
• Kích thước file trên đĩa 315.6 MB.
Hình. phot_map#5. Photon map với 5000 subdivs trông như thế này.
Thống kê của photon map:
• subdivs 5000 5000;
• chiếu tối đa: 50 000 000 photon;
• Lưu trữ trong bản đồ 7 788 992;
• Dung lượng bộ nhớ cần 714.1 MB;
• Kích thước file trên đĩa 436.1 MB.
Hình. phot_map#7. Photon map với 7000 subdivs trông như thế này.
Thống kê của photon map:
• subdivs 7000 7000;
• chiếu tối đa: 98 000 000 photon;
• Lưu trữ trong bản đồ 9 023 203;
• Dung lượng bộ nhớ cần 827.7MB;
• Kích thước file trên đĩa 505.2 мMB.
Hình. phot_map#8. Photon map với 8000 subdivs trông như thế này.
Thống kê của photon map:
• subdivs 8000 8000;
• chiếu tối đa: 128 000 000 photon;
• Lưu trữ trong bản đồ 9 486 395;
• Dung lượng bộ nhớ cần 869.8MB;
• Kích thước file trên đĩa 531.2 MB.
Dễ dàng nhận thấy là bản đồ tốt nhất nhận được với 128 triệu photon (hình phot_#8). Bởi
vì nó được tính với thời gian chấp nhân được và đòi hỏi không quá nhiều chỗ trên đĩa để
lưu trữ. (có lẽ tôi đã chọn nó kể cả 3 năm về trước:), và bây giờ tôi cũng chọn nó để tính
tiếp. Nói chung, nếu như tôi muốn thu hẹp góc nhìn của camera thì hoàn có thể sử dụng
photon map đầu tiên với 3000 subdivs. Nhưng tôi muốn tìm hiểu xem cái gì sẽ xảy ra ở
ban công mà ở đó mật độ photon map sẽ là thấp nhất trong khung cảnh và 3000 subdivs
có thể là không đủ để cho một ảnh render chất lượng. может
Bây giờ load photon map từ file mà nó đã được ghi và tiếp tục “cuộc chơi” với việc xác
lập photon map. Cụ thể chúng ta sẽ thử thay đổi SD vì việc đó không đòi hỏi tính lại
photon map.
Hình. sd-10. SD=10мм. Bản thân bán kính rất tốt vì đã cho phép chi tiết hóa hình
ảnh cao. Nhưng tiếc rằng dùng bán kính đó với mật độ hiện thời của photon sẽ nhận
được photon map rất nhiễu, ít thiết thực để sử dụng.
Hình. sd-1000. SD=1 met. Nhiễu hầu như không có, nhưng bù vào đó các chi tiết
bóng rất mờ nhạt do bán kính quá lớn. Hình ảnh trông phẳng và ít thú vị. Và đúng
là thời gian tính tăng gần tới 30 lần vì trong tính sáng đã thao tác với một số lượng
lớn photon.
Hình. sd-90. Sau một vài phép thử bổ sung với bán kính, tôi quyết định dừng lại với
giá trị SD=90 мм. Photon nhận được có độ nhiễu chấp nhận được và bán kính thu
thập có đủ khả năng diễn tả chi tiết chiếu sáng, còn các vết nối và góc nhận được
liền mạch, không nhận thấy bị dán đoạn. Thời gian tính photon map cũng hoàn toàn
chấp nhận được.
Cho thiết lập photon map như vậy có thể nói là đã hoàn tất. Nhưng tôi muốn đề xuất tiêu
tốn thêm ít thời gian bổ sung và thực hiện thêm một kỹ xảo, cho phép nâng cấp chất
lượng của photon map.
Đến thời điểm này số lượng photon thu thập Max. photons vẫn được đặt là 0 để không có
gì ảnh hưởng đến việc thiết lập bán kính thu thập. Chúng ta hãy cho giá trị Max. photons
sao cho nó tương ứng với số lượng photon thu thập được trong giới hạn SD của chúng ta
tại vị trí có mật độ photon thấp nhất khung cảnh. Ý tưởng là để cho trong các vùng của
bản đồ có mật độ photon cao, sự chiếu sáng của điểm sẽ được tính với Max. photons.
Khi đó bán kính thu thập sẽ nhỏ hơn so với giá trị đã thiết lập trong các xác lập của SD và
sẽ thay đổi phụ thuộc vào mật độ photon của bản đồ, đạt đến giá trị đã thiết lập của giá trị
SD trong những vùng có mật độ thấp nhất. Như vậy chúng ta sẽ đạt được cùng một lúc 2
mục đích: bán kính thu thập sẽ thay đổi trong suốt photon map và các vết nhiễu sẽ mất đi
sự đều đặn của nó. Còn do việc giảm bán kính thu thập thực tế, khả năng diễn tả chi tiết
bóng sẽ được nâng lên, đặc biệt ở vùng có sắc độ trung bình.
Làm sao để tìm được giá trị Max. photons? Chúng ta bắt đầu nâng từng bước giá trị của
nó từ 0 với một vài bước (ví dụ 10 photon) và mỗi lần sẽ tiến hành render hình. Lúc hình
ảnh ở các vùng có mật độ photon nhỏ nhất (tối và khó chiếu sáng) không thay đổi nữa
trong khi ta vẫn tăng đổi Max. Photons thì giá trị lúc đó của Max. photons sẽ được lấy.
Chỉ còn tiếc là không có công cụ “thường trực” để theo dõi mật độ photon map tại một
điểm bất kỳ của khung cảnh.
Hình. mp-10. Photon map với Max. photons = 10. Rất nhiễu, tiếp tục tăng số photon
thu thập.
Hình. mp50. Tiếp tục tăng từng bước giá trị của Max. photons, tôi dừng lại ở giá trị
50 photon. Sau ngưỡng 100 photon hình ảnh sẽ hoàn toàn không thay đổi nữa - tại
mọi vùng của khung cảnh đã đạt tới giới hạn được định bởi SD. Chú ý rằng các vết
nhiễu bây giờ đã trở nên ít đều đặn hơn và không rõ như ở hình sd-90. Sự tối ở các
vết nối và góc cũng gần như biến mất hoàn toàn - Convex hull area estimate đã làm
việc.
Một photon map được xác lập tốt là chìa khóa cho thành công và render nhanh. Bây giừo
chúng ta chuyển sang phần xác lập irradiance map.
Xác lập Irradiance map
Chúng ta lại chuyển sang bảng VRay: Indirect illumination và trong vai trò tính khuếch
tán bật lên đầu tiên chúng ta chọn irradiance map. Để xác lập irradiance map tôi chọn
Irradiance map preset>High, ngay sau đó chọn - Custom. Điều đó cho phép chỉnh các
xác lập của preset High.
Hình 08. Các xác lập tính sự bật lên đầu tiên của ánh sáng bằng phương pháp
irradiance map
Các giá trị ngưỡng cho mầu sắc, pháp tuyến, khoảng cách và số lượng samples subdivs ta
sẽ giữ nguyên như của preset High. Số lượng subdivs là 50 samples có nghĩa là để tính sự
chiếu sáng khuếch tán của mỗi điểm sẽ sử dụng tới 2500 tia, điều hoàn toàn đủ cho hầu
hết các trường hợp. Nói chung, pham vi “làm việc” của subdivs nằm trong khoảng 30-
120 samples và có thể tăng hơn nữa khi xuất hiện nhiều nhiễu trong hình.
Khi có nhiễu cần nghiêm túc phân tích các nguyên nhân có thể của nó bởi vì giảm giá trị
ngưỡng tương ứng có thể dẫn đến giải pháp không tăng. Giá trị Min. rate và Max. rate có
thể để hơi cao vì để xác lập chúng ta dùng hình có kích thước nhỏ (640х480). Để theo dõi
quá trình quét các điểm có thể bật Show calc. phase.
Bây giờ ta chuyển sang các xác lập của chính bản đồ trong bảng VRay: Advanced
irradiance map parameters.
Hình. 09. Các xác lập irradiance map
Thực hiện việc thiết lập các thông số khá là đơn giản. Chọn Interpolation type: Least
squares fit. Ngoài ra chỉ có thêm một phương án nữa - Delone triangulation, cái sẽ không
làm mờ sự chiếu sáng nội suy và khác với các loại khác, có thể được dùng cho hình đòi
hỏi sự rõ nét cao. Khung cảnh của chúng ta hoàn toàn bình thường vì thế chúng ta sẽ để
Least squares fit. Sample lookup (khả năng chọn các điểm đã tính cho phép nội suy) -
Precalc'd overlapping, tốt nhât trong những tùy chọn có, chúng ta sẽ để nguyên. Thiết lập
Randomize samples. Check sample visibility đáng để bật chỉ khi xuất hiện vấn để trong
khung cảnh liên quan đến việc thẩm thấu ánh sáng qua bề mặt. Trong khung cảnh này
vấn đề như thế không có, tức là ta sẽ không bật.
Calc. pass interpolation samples xác định số lượng các giá trị sáng đã tính cho phép nội
suy sự chiếu sáng của các điểm chưa tính. Giá trị đó càng cao đường dốc càng bằng và
càng nhiều vết nhòe. Phạm vi giá trị cho thông số này nên là 12-25, ta để 15. Đánh dấu
ghi photon map vào file, điều đó có thể hữu ích cho các thao tác tinh chỉnh bằng Color
map (điều chỉnh chiếu sáng theo luật số mũ) và xác lập chống rằng cưa. Bây giờ tất cả đã
sẵn sàng và có thể nhấn nút “Render” !
Tôi tính 2 hình với 2 xác lập của photon map - cho Search distance=90, Max. photons=0
và cho Search distance=90, Max. photons=50 (chính là những map ta đã tính ở hình sd90
và hình mp50). Còn đây là những gì nhận được (kích thước và xác lập AA tạm thời chừa
thay đổi).
Hình. irr-1. Hình ảnh nhận được bằng phương pháp irradiance map+ photon map
với Search distance=90, Max. photons=0. 640х480, không có АА.
Hình. irr-2. Hình ảnh nhận được bằng phương pháp irradiance map+ photon map с
Search distance=90, Max. photons=50. 640х480, không có АА.
Cá nhân tôi thích hình thứ hai hơn và tôi sẽ render lần cuối với chính nó. Tôi chỉ điều
chỉnh màu sắc một chút, thay Dark Multiplier từ 1.6 thành 1.4, và đặt AA:
Hình.10. Các xác lập АА cho render cuối.
Vì sự làm mềm AA là một bước bổ sung độc lập trong mối quan hệ với bước tính
irradiance map, nên cho xác lập AA, cũng như cho xác lập Color map, bản đồ đã lưu
trong file sẽ được dùng. Từ các bộ lọc AA chất lượng nhất là Catmull-Rom và Mitchell-
Netravali. Đơn giản nhất là Area. Các bộ lọc đó xác định ảnh hưởng lẫn nhau của các
pixels trong hình và là kết quả của các nghiên cứu lý thuyết chống răng cưa. Các bộ lọc
khác của nhóm này để dùng cho các trường hợp đặc biệt, miêu tả về điều đó có thể thấy
trong tài liệu hướng dẫn của VRay. Trước khi render, tôi thay đổi cỡ ảnh lên 1024х768
và giảm giá trị Min. rate xuống -4, còn Max. rate xuống -1. Vì số điểm ảnh tăng lên, chất
lượng irradiance map sẽ không bị tổn thất. VÀ :
Hình. cam-1. Render cuối, ảnh từ camera 1.
Trong khung cảnh có một camera nữa đặt trên tầng 2. Tôi render một ảnh từ nó vẫn dùng
chính photon map từ file và irradiance map được tính lại cho ảnh mới cũng với các xác
lập tương tự.
Hình. cam-2. Render cuối cho cảnh từ camera 2. Khu vực này có mật độ photon
thấp nhất khung cảnh. Số photon ở đây không vượt quá 30 trên diện tích thu thập
với Search distance =90 mm. Một phép thử thực sự cho photon map.
Hình.11. Irradiance map, chỉ có sự bật lên khuếch tán đầu tiên.
Hình. 12. Irradiance map, chỉ có sự bật lên khuếch tán đầu tiên và chiếu sáng trực
tiếp.
Hình. 13. Photon map và ánh sáng trực tiếp.
Hình. cam-3. Thêm một cảnh nữa từ camera 1, quay lại 180 độ. Vẫn photon map đó
với những xác lập đó, irradiance map được tính lại.
Có xác lập đúng cho photon map và irradiance map bây giờ có thể “lấy” render từ mọi
điểm của khung cảnh hay thậm chí có thể làm hoạt cảnh. Trong trường hợp hoạt cảnh cho
irradiance map Mode có thể dùng Multiframe incremental – bản đồ sẽ được tính lại cho
mỗi ảnh mới không hoàn toàn mà chỉ tính cho những điểm mới, xuất hiện trong ảnh.
Hình. cam-4. Thêm một cảnh từ hành lang trên.
Sử dụng công cụ điểu khiển theo luật số mũ Color mapping – không phải là phương pháp
duy nhất để sử lý các vùng quá sáng/tối trong hình. Có thể đưa ra thêm 1 sơ đồ tuy đòi
hỏi thời gian thiết lập các thông số lâu nhưng có khả năng đem lại hình ảnh thú vị hơn.
Đầu tiên đặt cường độ các nguồn sáng bằng phương pháp thường – với sự hỗ trợ của
Color mapping. Nhưng trước khi render lần cuối ta cũng đặt Color
mapping>Type>Linear multiply, G-buffer output channels>Unclamped color và đầu ra
của hình ảnh – vào file dạng HDRI. Hình ảnh tính bằng cách này sẽ chứa đựng giá trị
màu của các điểm ảnh trong format với các giá trị cường độ thật ( chứ không phải RGB).
Sau đó file nhận được có thể mở lại trong HDRShop và dùng các khả năng của nó ( hay
khả năng của các plugin, ví dụ - tonemap) để chỉnh sửa phạm vi động của hình thành
phạm vi không gian màu RGB ( của màn hình) với file được lưu trữ ở dạng thường. Ưu
điểm của giải pháp này là ở khả năng sử dụng các thuật toán đặc biệt khác nhau được tạo
ra cho mục đích điều chỉnh phạm vi động của hình và nhận được hình ảnh cuối hấp dẫn
hơn. Và thậm chí – để đưa một hiệu ứng đặc biệt hay một điểm nhấn vào hình, ví dụ như
ánh kim trên các chi tiết crôm.
Hình.14. Ví dụ thao tac với HDRI-render trong HDRShop. Vùng có sắc độ trung
gian dịch chuyển theo hướng về phía có sắc độ sáng hơn với sự hỗ trợ của
TONEMAP, plugin cho HDRShop.
.
Caustic
Hình. 15.gif Các thông số xác lập caustic
Tôi sẽ không dừng lại chi tiết ở đây với thêm cả phần xác lập các hiệu ứng caustic, bởi vì
nó đuợc tạo thành bằng photon map và phương pháp làm việc với nó giống như phương
pháp chung thiết lập photon map. Tôi sẽ chỉ nói về sừ khác nhau cần phải tính tới giữa
chúng. Đầu tiên, sự chiếu photon hướng về phía vật thể, caustic lại tính từ vật thể. Điều
đó cho phép với giá trị không lớn caustic-subdivs cho các nguồn sáng sẽ nhận được
photon map có mật độ và chất lượng rất cao. Caustic-photon map được tính và lưu trữ
riêng rẽ. Điều đó cho phép thiết lập chúng độc lập và nhập vào theo yêu cầu khi render
cuối. Khi tạo caustic cũng cần chú ý rằng trong quá trình tính chỉ tham gia 2 hay một vài (
nhưng còn xa mới có thể là toàn bộ) vật thể của khung cảnh- nguồn phát caustic và vật
nhận (phản xạ) caustic. Tương ứng, vật thể - nguồn phát, trong tính chất của nó cần bật
Generate caustic và tắt Receive caustic. Của vật thê phản xạ caustic – ngược lại. Nguồn
phát cần có tính phản xạ hoặc khúc xạ mạnh và IOR lớn hơn 1, vật nhận – ngược lại, cần
phải là vật chỉ phản xạ khuếch tán.
Search dist càng nhỏ thì caustic càng chất lượng và rõ ràng, cũng tương tự với Max.
photons khi mật độ của photon mapđủ cao. Đó là tất cả.
Kết luận.
VRay rất thú vị và là một renderer giầu khả năng. Tôi đã đủ sức (hy vọng là thế) miêu tả
những thứ quang trọng nhất về nó – 1 trong các phương pháp tính sự chiếu sáng toàn
cảnh. Nhưng vẫn còn rất nhiều vấn đề mà việc xem xét chúng không thể chỉ với ký do
đơn giản rằng không thể “hiểu thấu thứ không thể hiểu thấu” , nhất là trong khuôn khổ
một bài viết. Đó còn là thao tác với vật liệu, và depth of field và motion blur, và làm việc
với các nguồn sáng, đặc biệt là nguồn sáng photometric … Mỗi một chủ đề đều đáng để
quan tâm và thảo luận chi tiết.
May thay, VRay là chương trình được sử dụng rộng rãi trên thực tế, đặc biệt là ở chỗ
chúng tôi. Vì thế luôn có thể tìm được những chuyên gia thực thụ, những người có thể trả
lời câu hỏi cụ thể. Trong mối liên hệ này tôi rất khuyên vào xem diễn đàn về VRay trên
Ở đó đã tích lũy được một cơ sở rất lớn kiến thức theo
những câu hỏi cụ thể về sử dụng chương trình và bạn có thể tìm thấy lời giải cho hầu hết
các câu hỏi về VRay.
Tôi muốn nhân dịp này trân thành cảm ơn những người mà kinh nghiệm và lòng nhiệt
huyết vô tư của họ đã tạo nên giá trị của những kiến thức được thu thập lại.
Thực tế VRay có khả năng đên đâu có thể thấy qua các tác phẩm của các master. Và ở
đây đang nói đến việc sử dụng điêu luyện, cần phải khẳng định một điều rằng trình độ các
sản phẩm do người Nga làm trong VRay rất cao. Các đồng nghiệp phương tây đều
nghiêm túc nói về việc tồn tại một “trường phái Visual Rusia “.
Tôi xin dừng ở đây. Hãy để các tác phẩm nói tiếp, chúng hay hơn mọi từ ngữ.
Автор: Karba, один из лучших "материаловедов" и постоянный участник
конференций по VRay на www.3dcenter.ru. VRay + HDRShop.
Автор: Karba
Автор: Сергей Ладейщиков (SALuto)
Автор: Сергей Ладейщиков (SALuto)
Автор: Сергей Ладейщиков (SALuto)
Автор: Сергей Ладейщиков (SALuto)
Автор: Сергей Ладейщиков (SALuto)
Автор: Сергей Ладейщиков (SALuto)
Автор: Alex Shoneya
Автор: Alex Shoneya
Автор: Alex Shoneya
Автор: Alex Shoneya
Автор: Илья Рутковский (aka !RUSH!)
Автор: Alex_Ge
Автор: Alex_Ge
Автор: Андрей Капинус (aka FrANK)
Автор: Андрей Капинус (aka FrANK)
Автор: Андрей Капинус (aka FrANK)
Автор: volkot
Автор: Андросов Константин (aka Thor)
Автор: Андросов Константин (aka Thor)
Автор: CaustiC
Автор: wizman
Автор: Николай Вершинин. Студия Артемия Лебедева
(
Автор: Николай Вершинин. Студия Артемия Лебедева
(
Автор: Николай Вершинин. Студия Артемия Лебедева
(
Автор: JenyaZ
Автор: JenyaZ
Автор: JenyaZ
Автор: Руслан Афасижев (aka rufretime)
Автор: Руслан Афасижев (aka rufretime)
Автор: Руслан Афасижев (aka rufretime)
Hẹn gặp lại!
Igor_Sivacov(igsiv@mail.ru)
Phát hành —02 tháng 8 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:
- _vraydinhnghiavacachsudungp2.pdf