You are on page 1of 23

Xác lập ánh sáng cho khung cảnh trong

Vray

a. 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ỉ
http://hdri.cgtechniques.com/~sponza/files. 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.
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.

b. 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.

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.

c. Á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
đồ.

Thursday November 8, 2007 - 08:25pm (ICT) Permanent Link | 0


Comments
Xác lập ánh sáng cho khung cảnh trong
Vray

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.

e. 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.

f. Xác lập 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ả.

You might also like