Hướng dẫn Render đại dương với Arnold

Bao_Anh

New Member
Author
Hướng dẫn Render đại dương với Arnold chỉ bằng Polygon Plane, ảnh HDRI kết nối với Skydome_light và displacement map
1665122597875.png

Bước 1: Tạo Polygon Plane dùng để mô phòng mặt nước

1665122673902.png
Bước 2: Tạo vật liệu cho đại dương
  • Tạo vật liệu Standard_surface và gán vào Polygon Plane.
  • Trong Standard_surface vừa tạo, set up thông số base_weight = 0, specular_weight gần = 1, tăng transmission_weight = 1(làm cho mặt nước trong suốt), specular_IOR = 1.33 (đặc trưng của nước).
1665122694253.png
  • Trong Modifier Panel, thêm Arnold Properties Modifier (vô hiệu hóa Opaque)
1665122712074.png

Bước 3: Displacement Map
  • Displacement Map là gì? Đây là loại map giúp thêm các chi tiết vào bề mặt vật thể khi render mà không phải thay đổi cấu trúc bề mặt thật sự của mô hình vật thể. Một Displacement Map chứa các thông tin trắng, đen, xám để gửi cho máy tính thông tin vị trí của các chi tiết bị đẩy lên (vùng màu trắng), lõm xuống (vùng màu đen). Displacement Map giúp giảm bớt chi tiết cho mô hình để máy tính chạy nhanh hơn. Tuy nhiên, điều này sẽ tăng thời gian khi render vì máy tính phải tính toán thay thế phần mô hình cơ bản và thêm vào các thông tin của map. Thế nhưng, thời gian render tăng thêm thường không nhiều bằng thời gian hệ thống bị trì trệ do mô hình quá nhiều chi tiết.
  • Do đó, ta có thể dùng Displacement Map để mô phỏng bề mặt sóng biển. Tuy nhiên, Displacement Map truyền thống thường chỉ làm biến dạng bề mặt theo một phương duy nhất là phương của normal, nên để tạo sự biến dạng theo nhiều phương khác nhau giống như bề mặt đại dương, ta sẽ dùng vector displacement map – làm biến dạng bề mặt theo nhiều phương khác nhau.
1665122745782.png
1665122842181.png
  • Trong cửa sổ Environment and Effects (Bấm phím 8), kéo và thả sky HDR map vào mục Background -> Environment Map
Bước 4: Hiệu chỉnh Subdivision
  • Khi nhấn render, do chưa có đủ Subdivision của Polygon Plane nên chưa thấy được hiệu ứng displacement
1665122869926.png
  • Chọn Polygon Plane, trong mục Arnold attributes, đổi subdivision_type sang catclark và tăng iterations (cẩn thận tăng subdivision_iterations quá nhiều sẽ làm tăng bộ nhớ và thời gian render)
1665122894198.png 1665122901091.png
subdivision_type: catclark, subdivision_iterations: 3
1665122958017.png
subdivision_iterations: 8. Có thể nhìn thấy được nhiều chi tiết hơn trong sóng biển.

Bước 5: Ánh sáng
  • Thêm vào Distant light để tăng hiệu ứng chiếu sáng của mặt trời trên mặt biển, từ đó làm nổi bật các điểm chi tiết trên mặt biển.
1665122997593.png
Render với distant light
  • Tăng thông số Angle của distant light sẽ làm tăng kích thước góc của ánh sáng, do đó tạo ra phản xạ ánh sáng nhiều hơn trên mặt biển.
1665123022789.png
Angle: 5

Bước 6: Tranmission
  • Ánh sáng xuyên qua bề mặt đại dương bị 'khúc xạ' do ánh sáng truyền trong không khí nhanh hơn trong nước. Khi ánh sáng đến mặt nước, nó sẽ bị phân tán hoặc hấp thụ bởi các hạt trong đại dương. Khi đại dương trở nên sâu hơn (dày đặc hơn), nước sẽ giảm độ sâu của ánh sáng xuyên qua.
  • Ta có thể mô phỏng hiệu ứng này dễ dàng bằng thông số transmission trong standard_surface shader
  • Hiệu ứng có thể được nhìn thấy khi đặt một vật thể bên trong bề mặt đại dương. Chúng ta có thể thấy rằng ánh sáng truyền bên trong lưới càng lâu thì nó càng bị ảnh hưởng bởi màu sắc của transmission_color.
1665123049928.png
transmission_color: white
1665123057469.png

transmission_color: blue

Bước 7: Loại bỏ Mảng tối - Dark Patches
  • Đại dương không hoàn toàn trong suốt. Điều này có nghĩa là một số tia sáng khi truyền vào nước không bị khúc xạ sẽ không phản xạ lại và thay vào đó sẽ đi qua nước, để mô phỏng hiện tượng đó Arnold sẽ chấm dứt các tia và cho nó màu đen làm tạo ra các Mảng tối - Dark Patches khi render.
  • Để giảm số lượng Dark Patches, ta có thể tăng Subdivision_Iterations
1665123096718.png
subdivision_iterations: 3, dark patches thấy rõ
1665123105659.png

subdivision_iterations: 8 giảm dark patches
  • Các mảng tối – dark patches phía sau đỉnh sóng (tự phản chiếu) cũng có thể được cải thiện bằng cách tăng specular_ray_depth trong bảng render setting.
1665123125508.png
specular_ray_depth: 1
1665123132649.png

specular_ray_depth: 2
Kết quả:
1665123157686.png
Animation với giá trị Displacement tăng dần.
(Nguồn: https://docs.arnoldrenderer.com/display/A5AF3DSUG/Rendering+an+Ocean+with+Displacement)
 
Top