• học 3d max ở đâu tốt
    TƯ VẤN KHÓA HỌC - 0903.780.416 - 08. 6674.8018 | Lầu 3, 48 Trần Quý Khoách, Tân Định, Q1, HCM

ĐẠT CHẤT LƯỢNG RENDER TỐT NHẤT TRONG THỜI GIAN NGẮN NHẤT – PHẦN 1

Rating now

Đặc biệt cảm ơn:

Toni Bratinevic và John O’Connell về những thông tin mà họ đã chia sẻ với cộng đồng quanh chủ đề này.

John Rouse và Nicolas Nandi về những giúp đỡ của họ trong việc đọc bài duyệt và kiểm tra các phương pháp đã nêu trong bài viết.

Peter Guthrie đã cho mượn khung cảnh phòng trưng bày của anh để sử dụng trong các ví dụ

 

Một bài phân tích chuyên sâu, giúp các bản render đạt chất lượng tốt nhất trong thời gian ngắn nhất

 

"/

 

Giới thiệu.

 

Bài hướng dẫn này nhằm bao quát và làm rõ quá trình tối ưu hóa việc hiệu chỉnh hình ảnh V-RAY render giúp bạn có được chất lượng ảnh render tốt nhất trong thời gian nhanh nhất cho một bối cảnh nhất định.
Thường có nhiều khúc mắc và vấn đề xung quanh chủ đề về lấy mẫuV-RAY Sampling và cách hiệu chỉnh lý tưởng là như thế nào. Trong nhiều trường hợp bạn sẽ thấy các họa viên sử dụng chế độ hiệu chỉnh “Universal V-RAY setting” với giá trị Max Subdivs của Image Sampler (Anti-Aliasing, hay AA) điều chỉnh ở mức rất cao (50 hay 100), và sau đó đơn giản là làm giảm giá trị ngưỡng noise threshold cho đến khi bức ảnh trở nên đủ rõ nét – bạn nghĩ rằng đó là cách tốt nhất/ nhanh nhất mà V-Ray có thể làm. Tuy nhiên với một vài hiểu biết về cách V-Ray hoạt động như thế nào, bạn có thể đạt được chất lượng tốt hơn với thời gian render nhanh hơn – trong một vài trường hợp đặc biệt có thể giúp nhanh hơn từ 3 đến 13 lần so với cách hiệu chỉnh Universal setting.

 

Đầu tiên chúng ta sẽ điểm qua một vài khái niệm căn bản về cách hoạt động của quá trình render và lấy mẫu V-Ray. Sau đó chúng ta sẽ đi qua ví dụ về một bối cảnh cụ thể để minh họa cách tối ưu hóa một ảnh render giúp nó nhanh hơn và rõ nét hơn là như thế nào. Sau đó chúng ta sẽ tìm hiểu về cách nhận diện các nguyên nhân khác nhau của nhiễu ảnh có thể gặp phải. Và cuối cùng, tôi sẽ cung cấp một phương pháp cụ thể từng bước một giúp tối ưu hóa bất kỳ một bối cảnh nào để render với sự cân bằng lý tưởng giữa chất lượng và tốc độ render.
Nếu bạn đã nắm vững các khái niệm căn bản và chỉ cần đến phương pháp từng bước một sau cùng, hãy nhấn vào đây để đến trực tiếp tới phần này.

 

Raytracing 101

 

Khi bắt đầu render, các tia đầu tiên sẽ được gửi từ camera đi vào khung cảnh để thu thập các thông tin về phân bố hình học sẽ xuất hiện trong bức hình cuối. Các tia xuất phát từ camera này được gọi là tia chính Primary Rays (đôi khi cũng gọi là Camera Rays hoặc Eye Rays) và được điều khiển bởi Vray’s Image Sampler (còn được biết đến là Anti-Aliasing hay AA)
Khi một tia chính Primary Ray tiếp xúc với một vật thể trong khung cảnh, những tia phụ xuất phát từ giao điểm đó sẽ được gửi đến phần còn lại của khung cảnh để thu thập các thông tin như ánh sáng, bóng đổ, chiếu sáng toàn cảnh (GI), phản xạ, khúc xạ, Sub-surface Scattering (SSS)… Các tia phụ thêm này được gọi là Secondary Rays và được điều khiển bởi bộ lấy mẫu Vray’s DMC Sampler.

 

"/

 

Hình 01:  Một biểu đồ giản lược của quá trình Raytracing: Tia Primary Ray được phát từ camera đến bối cảnh, giao với các cảnh vật, và phát ra các tia Secondary Rays khác nhau để lấy mẫu bối cảnh.

Từ lúc này trở về sau, chúng ta sẽ đơn giản gọi các tia Rays là các mẫu Samples – vì đó là mục đích của một tia được phát đi– nhằm lấy mẫu của một bối cảnh để thu thập thông tin trong đó. Rays = Samples.

Để có thể xác định chính xác hiện trạng trong một bối cảnh, nhiều mẫu Primary và Secondary cần được lấy và tính toán. Một bối cảnh được lấy mẫu càng nhiều, V-Ray càng lấy được nhiều thông tin, và chất lượng render sẽ càng cao – đồng nghĩa với việc có ít nhiễu hơn trong bức ảnh render. Bạn thấy đấy, nhiễu ảnh là do sự thiếu sót thông tin mà ra. Sự xuất hiện của nhiễu trong ảnh render có nghĩa là V-Rays đã không thu thập đầy đủ thông tin về bối cảnh đó. Vì vậy để giảm nhiễu, bạn cần cung cấp cho V-Ray nhiều thông tin hơn – và để cung cấp nhiều thông tin hơn cho V-Ray, bạn cần lấy nhiều mẫu hơn.

 

Số lượng mẫu Primary được đưa vào bối cảnh được điều khiển chủ yếu bởi các thông số Min Subdivs, Max Subdivs, và Color Threshold của bộ lấy mẫu Image Sampler. Số lượng mẫu Secondary đưa vào bối cảnh được điều khiển chủ yếu bởi thông số Subdivs đối với các loại ánh sáng đơn/ ánh sáng toàn cục/ vật liệu trong khung cảnh, và giá trị ngưỡng Noise Threshold của bộ DMC Sampler. (Noise Threshold được gọi là Adaptive Threshold trong V-Ray đối với Maya)
Tóm lược các thuật ngữ quan trọng:

Ray = Sample
Primary Samples = Các mẫu điều khiển bởi bộ Vray’s Image Sampler (còn gọi là Anti-Aliasing hay AA), chuyên dùng để xác định cấu trúc hình học của bối cảnh – cũng như các đặc tính về texture, DOF, và mờ chuyển động motion blur.
Secondary Samples = Các mẫu được điều khiển bởi bộ Vray’s DMC Sampler, chuyên dùng để xác định ánh sáng của bối cảnh, chiếu sáng toàn cục (GI), đổ bóng, tính phản xạ, khúc xạ của vật liệu, và độ phân tán mặt dưới Sub-surface Scattering (SSS)
Noise = Nhiễu do sự thiếu thông tin
Subdivs = Căn bậc 2 của số lượng mẫu thực tế, vậy Subdivs2 = số lượng mẫu. Ví dụ: 8 Subdivs = 64 mẫu (82 = 64)

Trong bài hướng dẫn này, chúng ta sẽ tìm hiểu cách sử dụng các mẫu Primary và Secondary này để đạt được chất lượng ảnh render tốt nhất (mức độ nhiễu thấp nhất) trong thời gian render hợp lý.

 

Tìm hiểu về thành phần render samplerate

 

Thành phần render Samplerate là một trong những công cụ quan trọng mà chúng ta sẽ dùng để tối ưu hóa chất lượng ảnh render. Đó là cách V-Ray chỉ cho chúng ta thấy chính xác những gì mà bộ lấy mẫu Image Sampler (AA) đang thực thi tại một pixel cho trước bất kỳ. Nó làm điều này bằng cách ấn định một màu sắc nhất định cho mỗi pixel trong bản render tùy theo số lượng mẫu Primary (AA) được lấy tại pixel đó (là thứ có thể quan sát được bằng cách nhìn vào thành phần Samplerate render)

  • Màu xanh dương cho biết số lượng ít các mẫu Primary (AA) đã được lấy tại pixel đó.
  • Màu xanh lục cho biết số lượng trung bình các mẫu Primary (AA) được lấy tại pixel đó.
  • Màu đỏ cho biết số lượng lớn các mẫu Primary (AA) được lấy tại pixel đó.

 

"/

Hình 02: Thành phần render samplerate (phải), cho thấy số lượng mẫu Primary khác nhau đã được lấy tại từng pixel trên ảnh render (trái)

Đối với một khung cảnh với bộ Image Sampler (AA) được cài đặt Subdivs từ 1min đến 10max (đồng nghĩa với việc có từ 1min đến 100max mẫu Primary)

  • Điểm ảnh xanh lam có nghĩa 1 mẫu Primary đã được lấy.
  • Điểm ảnh màu xanh lục có nghĩa là 50 mẫu Primary đã được lấy.
  • Điểm ảnh màu đỏ có nghĩa là 100 mẫu Primary đã được lấy.

 

Đối với một khung cảnh với bộ Image Sampler (AA) được cài đặt Subdivs từ 1min đến 100max (đồng nghĩa với việc có từ 1min đến 10000max mẫu Primary)

  • Điểm ảnh xanh lam có nghĩa 1 mẫu Primary đã được lấy.
  • Điểm ảnh màu xanh lục có nghĩa là 5000 mẫu Primary đã được lấy.
  • Điểm ảnh màu đỏ có nghĩa là 10000 mẫu Primary đã được lấy.

 

 

Ví dụ một khung cảnh cụ thể – Tìm hiểu về cách V-Ray hoạt động như thế nào

 

Đối với bài hướng dẫn này, chúng ta sẽ làm việc với một khung cảnh đơn giản bao gồm: một mặt phẳng với một vài quả cầu ở trên nó, các loại vật liệu đơn giản khác nhau (bao gồm diffuse, glossy reflection, glossy refraction và SSS), 2 vùng sáng, và một sánh sáng vòm domelight với một HDRI. Tính năng Global Illumination (GI) được kích hoạt và cài đặt ở chế độ Brute Force + Light Cache. Bạn có thể download khung cảnh này tại đây.

Chúng ta sẽ bắt đầu với một ảnh render cơ bản với các thiết lập render như sau:

  • Image Sampler (AA) cái đặt ở 1min & 8max Subdivs.
  • Lights, GI, và Material đều được chỉnh ở mức mặc định 8 Subdivs.
  • Ngưỡng Noise Threshold chỉnh ở mức mặc định 0.01

Tất cả các thiết lập render khác đều được cài đặt ở mức mặc định

"/

Hình 03: Một bản render cơ bản. 1min & 8max Subdivs = Image Sampler (AA). 8Subdivs = Lights, GI, và Material cho mỗi loại.

Bây giờ chúng ta cùng điểm qua những gì đã diễn ra trong bản render cơ bản này. Thông qua các thiết lập render ở trên, bạn đang muốn nói với V-Ray rằng:

“Tôi đang cho phép bạn sử dụng đến tối đa 64 (8 Subdivs) mẫu Primary Samples (AA) trên mỗi pixel để lấy thông tin về bối cảnh này và giảm nhiễu đến mức gần nhất có thể được so với mức ngưỡng noise threshold mà tôi đã chọn… NHƯNG với mỗi mẫu Primary bạn lấy, bạn chỉ được phép lấy thêm 1 mẫu Secondary để lấy thông tin cho từng thông số như Lights, GI, và Material.”

Lúc này bạn có thể tự hỏi rằng:

“Đợi đã, chỉ 1 mẫu Secondary cho các thông số như Lights, GI, và Material thôi sao? Đáng lẽ phải là 64 mẫu chứ (8 Subdivs) như chúng ta đã cài đặt chúng cơ mà?”

Điều quan trọng là mặc dù ánh sáng, GI, và vật liệu được cài đặt ở mức 64 mẫu (8 Subdivs) mỗi loại – V-Ray chia nội suy giá trị này cho giá trị AA Max Samples. Vì vậy, thay vì có 64 mẫu cho ánh sáng và vật liệu mỗi loại như mong đợi, nó được chia chia cho AA Max với 64 mẫu (8 Subdivs), kết quả thu được chỉ là 1 mẫu Secondary được lấy 1 cho từng thông số Lights, GI, và Material mỗi loại. (64 mẫu Secondary/ 64 mẫu Primary = 1 mẫu Secondary)

 

Lý do V-Ray làm việc này là bởi vì công thức nội suy của nó được thiết kế sao cho nó sẽ tự động cân bằng 2 loại mẫu. Lý do đằng sau việc này là vì với nhiều mẫu Primary được lấy hơn từ bối cảnh, sẽ có một lượng nhỏ hơn tương ứng các mẫu Secondary cần được lấy thêm để phân tích bối cảnh (điều chúng ta sẽ sớm nhận thấy được, và nó không phải lúc nào cũng đáng mong đợi). Sự cân bằng này của Image Sampler và DMC Sampler có thể khá khó hiểu lúc đầu, nhưng điều quan trong cần lưu ý là:  Khi bạn tăng mức điều chỉnh Image Sampler của mình (AA), V-Ray sẽ cố gắng bù trừ bằng cách giảm nội suy mức điều chỉnh DMC Sampler xuống tương ứng. Nếu có hứng thứ muốn tìm hiểu thêm về cách vận hành của các công thức nội suy của V-Ray.
Vậy hãy quay lại về việc rendering:

V-Ray sẽ hoàn thành ảnh render tốt nhất trong khả năng của nó, nhưng cũng cảnh báo bạn (bằng những điểm pixel màu ĐỎ trong Render Sample Rate) rằng:

“Tôi đã không thể xác định mọi điểm trong toàn bộ bối cảnh này với mức yêu cầu chất lượng (noise threshold) mà bạn muốn! – Rất nhiều lần tôi đã phải dùng tất cả 64 mẫu Primary với 1 mẫu Secondary cho Lights, GI, và Material mà bạn cho phép tôi dùng cho mỗi pixel, nhưng nó vẫn không cung cấp đủ thông tin cho tôi ở những khu vực này”

Nếu xem qua bức ảnh render – chúng ta sẽ thấy được rằng trong khi các chi tiết hình học (các góc cạnh của vật thể) trông khá rõ nét và được xác định, cũng có rất nhiều khu vực nhiễu trong bức hình – đặc biệt đáng chú ý trong phần ánh sáng phản xạ và bóng đổ. Vậy nên tóm lại là ta có được bức ảnh render cơ bản đầy nhiễu, và có 2 lựa chọn để giảm các nhiễu này và đạt được chất lượng ảnh như mong muốn (noise threshold) :

 

Lựa chọn #1:  Tăng giá trị AA Max subdivis –  Để V-Ray lấy nhiều mẫu Primary hoen trong việc xác định thông tin bối cảnh- Nhưng một lần nữa chỉ có 1 mẫu Secondary được lấy thêm cho từng yếu tố Lights/GI/Material mỗi loại

Lực chọn #2 : Tăng subdivis của Light/GI/Material – Giup’  V-Ray  giữ nguyên số lượng Primary – Nhưng cho phép nó lấy thêm mẫu Secondary với mỗi mẫu Primary để xác định thông tin bối cảnh tốt hơn

ví dụ về lựa chọn #1 – tăng aa max subdivs

Chúng ta hãy thử cách đa số mọi người thường làm để có ảnh render chất lượng cao hơn (ít nhiễu hơn) – áp dụng ‘Universal V-Ray Settings’ và để V-Ray lấy thật nhiều mẫu Primary (AA) cần thiết để triệt tiêu nhiễu.

 

  • Chúng ta sẽ tăng mức Image Sampler (AA) lên 1min & 100max Subdivs
  • Cài đặt cho Lights, GI, và Material ở 8 Subdivs mỗi loại.
  • Giảm Noise Threshold đến 0.005 để cho V-Ray biết chúng ta rất cần một ảnh không nhiễu.

 

"/

Hình 04: Lựa chọn #1 Render – Tăng AA Max Subdivs. 1min & 100max Subdivs = Image Sampler (AA). 8 Sub Divs = Lights, GI, và Material cho mỗi loại. 0.005 = Noise Threshold.

Bây giờ hãy xem chính xác điều gì xảy ra trong ảnh render ở Lựa chọn #1 này. Qua các thiết lập điều chỉnh render ở trên, bạn đang báo cho V-Ray rằng:

“Tôi đang cho phép bạn dùng đến tối đa 10000 (100 subdivs) mẫu Primary (AA) cho mỗi pixel để xác định thông tin bối cảnh này và giảm nhiễu đến mức gần nhất có thể với mức ngưỡng noise threshold mà tôi đã định… NHƯNG với mỗi mẫu Primary đã lấy, bạn chỉ được phép lấy thêm 1 mẫu Secondary để xác định các thông số như Lights, GI, và Material cho mỗi loại.”

Một lần nữa, hạy nhớ rằng mặc dù Lights, GI, và Material được cài đặt ở mức 64 mẫu (8 Subdivs) mỗi loại – V-Ray sẽ chia nội suy các giá trị này cho giá trị mẫu AA Max. Vậy nên thay vì có 64 mẫu, nó được chia cho AA Max của 10000 mẫu (100 Subdivs), kết quả là giá trị tối thiểu 1 mẫu Secondary được lấy cho Lights, GI, và Material mỗi loại. (64 mẫu Secondary/ 10000 mẫu Primary = 1 mẫu Secondary).

 

V-Ray sẽ hoàn thành ảnh render tốt nhất nó có thể, và cho bạn biết rằng (với hầu hết các yếu tố render SampleRate lúc này là XANH LAM)

“Bây giờ tôi đã xác định thông tin bối cảnh tốt hơn thỏa mãn chất lượng (noise threshold) mà bạn yêu cầu! Thật ra, tôi đã có thể xác định rõ nó trước khi dùng hết 10000 mẫu Primary với 1 mẫu Secondary cho Lights, GI, và Material mà bạn cho phép cho mỗi pixel.”

Chúng ta cùng xem qua ảnh render ở Lựa Chọn #1 và thấy rằng mức nhiễu đã được cải thiện đáng kể so với ảnh render cơ bản ở trên. Thời gian render đã tăng thêm 11 phút 44s (lâu hơn 9.8 lần) so với ảnh render cơ bản, nhưng đó là điều đã lường trước được với một ảnh render chất lượng cao hơn, đúng không nào? Tại điểm này, hầu hết mọi người sẽ nghĩ đây là chất lượng tốt nhất có thể, và xem việc render vậy đã HOÀN THÀNH.

 

… Nhưng điều gì sẽ xảy ra nếu ta nếu chúng ta thử Lựa Chọn #2 đã bàn trước đó? Thay vì tăng AA Max Subdivs, điều gì sẽ xảy ra nếu chúng ta chọn cách chỉ tăng Subdivs của Lights/ GI/ Material? Hãy cùng tìm câu trả lời nhé…

 

Ví dụ về lựa chọn #2 – tăng subdivs cho Light / GI / Materials

Lần này chúng ta sẽ thử cách khác – chúng ta sẽ bảo V-Ray lấy cùng số lượng mẫu Primary như đã chọn trong ảnh render cơ bản – nhưng cho phép V-Ray lấy nhiều mẫu Secondary hơn ứng với mỗi mẫu Primary để xác định thông tin bối cảnh tốt hơn.

 

  • Chúng ta sẽ giữ nguyên mức chỉnh Image Sampler (AA) ở mức ban đầu của ảnh render cơ bản là Subdivs 1min & 8max
  • Chúng ta sẽ tăng mức Subdivs của Lights, GI và Material lên 80 cho mỗi loại
  • Chúng ta sẽ giữ nguyên mức Noise Threshold ở giá trị mặc định của ảnh render cơ bản là 0.01

 

"/

Hình 05: Lựa chọn #2 Render – Tăng Subdivs của Lights, GI, và Material. 1min & 8max Subdivs = Image Sampler (AA). 80 Subdivs = Lights, GI, và Materials cho mỗi loại. 0.01 = Noise Threshold.

Một lần nữa, hãy cùng xem lại chính xác những gì đang diễn ra trong ảnh render ở Lựa Chọn #2 này. Thông qua các thiết lập render ở trên, bạn đang báo cho V-Ray biết rằng:

“Tôi đang cho phép bạn dùng đến tối đa 64 (8 Subdivs) mẫu Primary (AA) cho mỗi pixel để xác định thông tin bối cảnh và giảm nhiễu đến mức gần nhất có thể so với mức noise threshold mà tôi đã định… VÀ với mỗi mẫu Primary đã lấy, bạn được phép lấy thêm đến 100 mẫu Secondary để xác định Lights, GI, và Material cho mỗi loại.

Một lần nữa, hãy nhớ rằng mặc dù Lights, GI, và Material được cài đặt đến 6400 mẫu mỗi loại (80 Subdivs) – V-Ray tự động chia những giá trị này cho giá trị AA Max Samples. Vậy nên thay vì có 6400 mẫu, nó được chia cho AA Max là 64 mẫu (8 Subdivs), cho kết quả là 100 mẫu Secondary được lấy cho Lights, GI, và Material cho mỗi loại. (6400 mẫu Secondary/ 64 mẫu Primary = 100 mẫu Secondary)
V-Ray sẽ hoàn tất ảnh render tốt nhất nó có thể, và báo với bạn biết rằng (thông qua yếu tố SampleRate render):

 

“Tôi đã có thể xác định hầu hết mọi thứ trong bối cảnh này với chất lượng (noise threshold) mà bạn mong muốn! – Thật ra, hầu hết thời gian tôi đã xác định rõ trước khi cần dùng hết toàn bộ 64 mẫu Primary cho mỗi pixel! Và tất cả 100 mẫu Secondary lấy thêm của Lights, GI, và Material cung cấp cho từng mẫu Primary rất nhiều thông tin hơn trong lần này!”

 

Chúng ta hãy cùng xem qua ảnh render ở Lựa Chọn #2 và thấy rằng độ nhiễu đã được cải thiệt đáng kể so với ảnh render cơ bản. Thời gian render đã tăng thêm 5phút 58s (lâu hơn 4.5 lần) so với Render cơ bản, nhưng đó là điều đã lường trước với một ảnh render chất lượng cao hơn.

 

Nhưng lúc này mọi chuyện bắt đầu trở nên thú vị hơn…

Khi so sánh ảnh render của Lựa Chọn #2 với Lựa chọn #1, chúng ta có thể thấy Lựa chọn #2 cho chúng ta ảnh render rõ nét hơn!

Và hãy nhìn vào thời gian render! – Lựa chọn #2 hoàn tất nhanh hơn 2.2 lần so với Lựa chọn #1! – 5phút 58s cho Lựa Chọn #2 so với 13phút 04s cho Lựa Chọn#1

 

"/

Hình 06: Lựa Chọn #1 Ảnh render bên trái, và Lựa Chọn #2 Ảnh render bên phải.. Ở phía dưới, ảnh render được phóng lớn 400% để cho thấy độ nhiễu rõ nét hơn.

Tại sao lại thế? Tại sao việc tăng mức Subdivs DMC sampler (cho Lights, GI, material) cho ra kết quả quả render sắc nét hơn VÀ nhanh hơn so với việc tăng mức Image Sampler (AA) ? 

Câu trả lời nằm ở phần 2 (chỉ dành cho học viên tại EKE CENTER )

 

 

Biên dịch: EKE CENTER

Add: 48 Trần Qúy Khoách (LẦU 3), P.Tân Định, Q.1, TP HCM
Phone: (08) 6674.8018. Hotline: 0977.24.6868
Email: ekecenter@gmail.com
website: hoc3dmax.com

 

Please follow and like us: