5 mẹo tăng tốc thời gian render với Cycles
Tất cả chúng ta đều biết rằng Blender không chỉ là một phần mềm mã nguồn mở được đông đảo các nghệ sĩ 3D, designer,… lựa chọn mà nó còn có một cộng đồng mạnh mẽ các nhà khoa học máy tính đứng phía sau không ngừng cải tiến mã nguồn. Bên cạnh sự phổ biến đó, Blender vẫn có một nhược điểm lớn đối với người dùng: thời gian render sẽ khá lâu cho một dự án chuyên sâu.
Ông Thomas Dinges (nhà phát triển phần mềm) đã phát biểu trong cuộc trò chuyện tại Hội nghị Blender 2012: “Công cụ render nội bộ tích hợp giúp mang lại tốc độ render nhanh hơn, và nếu bạn theo chủ nghĩa hiện thực, bạn phải thiết lập nhiều cài đặt. Nhưng Cycles thì ngược lại. Nó được tạo nên theo chủ nghĩa hiện thực và nếu bạn muốn nó nhanh hơn, bạn phải TẮT bớt các cài đặt không cần thiết”.
Trong blog hôm nay của iRender, chúng tôi sẽ cung cấp cho bạn một kiến thức rất thú vị mà ắt hẳn người dùng Blender đều đang quan tâm: 5 mẹo giúp bạn tăng tốc render với Cycles.
5 mẹo tăng tốc thời gian render với Cycles
1. Sử dụng hệ điều hành Ubuntu
Blender và Ubuntu có điểm chung là cả hai đều là mã nguồn mở. Khả năng tương thích như vậy sẽ giúp ích rất nhiều khi bạn sử dụng đúng phần mềm trong môi trường phù hợp với nó. Ubuntu sở hữu những lợi thế phù hợp để bạn tăng tốc render với Cycles in Blender:
- Ubuntu hoạt động tốt trên hầu hết các máy cấu hình thấp đến cao, tiêu tốn ít tài nguyên phần cứng hơn.
- Terminal trên Ubuntu rất ưu việt, phục vụ tốt, tăng năng suất xử lý dữ liệu. Bạn có thể dễ dàng render Blender chỉ với các lệnh đơn giản, không cần thao tác nhiều trên giao diện.
- Tốc độ render nhanh chóng.
Hiện tại, iRender đã ra mắt tính năng mới: kết nối máy tính từ xa với hệ điều hành Ubuntu. Chúng tôi tự hào là một trong số ít render farm hỗ trợ hệ điều hành Ubuntu trên thị trường hiện nay. Nếu bạn đang sử dụng Blender và muốn kết quả nhanh chóng, đừng ngần ngại đăng ký tài khoản tại đây và trải nghiệm sự kết hợp này
2. Giảm số lượng Samples
Sample là gì? Sample là lượng điểm xuất hiện khi cảnh của bạn được hiển thị. Trong bảng điều khiển, bạn xác định số lượng samples và sau đó Blender sẽ render đến khi đạt đến số lượng bạn thiết lập. Càng nhiều samples, hình ảnh tạo ra càng rõ ràng và chân thực, nhưng đồng thời thời gian render của bạn lâu hơn. Bằng cách giảm bớt số lượng, bạn có thể giảm đáng kể thời gian render với Cycles của mình.
Bạn cũng nên nhớ rằng việc lấy ít sample hơn sẽ ảnh hưởng đến chất lượng của sản phẩm cuối cùng, vì vậy bạn chỉ nên sử dụng phương pháp này cho các dự án trình chiếu cho website thay vì những dự án yêu cầu xem trên màn hình lớn hơn. Hãy thử quan sát hai ví dụ sau đây:
2000 samples – 9 phút
5000 samples – 21 phút
Bạn có thực sự cần thêm 3000 samples đó không? Thật sự mà nói, nếu bạn không phải là một nhà khoa học pixel thì có lẽ bạn sẽ không thể nhận thấy nhiều sự khác biệt giữa hai bức ảnh. Vì vậy, để giảm thời gian render, bạn hoàn toàn có thể giảm lượng sample rồi đưa bản render qua photoshop giúp loại bỏ các điểm nhiễu còn lại. Nếu bạn chỉ có nhu cầu render một ảnh tĩnh thì thêm 12 phút render có lẽ không có gì đáng lo ngại bởi đó là lần render cuối cùng. Nhưng nếu bạn đang dựng hình ảnh động? Vậy thì, thời gian render cho những khung hình đó sẽ nhiều hơn và lâu hơn rất nhiều nếu bạn cài đặt nhiều samples như vậy.
3. Tối ưu hóa Tile Size
Tile là những ô nhỏ màu đen xuất hiện trên màn hình khi render cảnh. Tile size là tỉ lệ khung hình – một yếu tố quan trọng để giảm thiểu thời gian render của bạn. Khi bạn tăng số lượng ô, kích thước tổng thể sẽ trở nên nhỏ hơn và nó có thể tập trung vào một phần nhỏ hơn trong cảnh của bạn. Và tất cả các lõi đều hoạt động trên render cho đến khi kết thúc mà không có lõi nào hoàn thiện trước lõi khác. Vì vậy, bằng cách tối ưu hóa tile size, bạn sẽ tiết kiệm được rất nhiều thời gian render. Trước đó, Blender chỉ có thể tăng số lượng ô, nhưng với bản cập nhật mã gần đây, bạn cũng có thể thay đổi kích thước của nó. GPU chỉ có thể render một ô tại một thời điểm trong khi CPU có thể render nhiều ô cùng một lúc, vì vậy để tối ưu hóa kích thước ô, Blender cần CPU đủ khỏe. Chúng tôi đã tiến hành một số nghiên cứu và đi đến kết quả sau:
Kết quá trên đã chứng minh một điều: tile size quan trọng hơn nhiều so với những gì bạn có thể nghĩ. Một khám phá thú vị nữa là thời gian render nhanh nhất cho CPU lại chậm nhất trên GPU. Điều này do GPU chỉ có thể hiển thị một ô tại một thời điểm, vì vậy nó không có lợi khi có nhiều ô hơn. Kết luận: kích thước ô tối ưu cho GPU là 256 x 256. Đối với CPU là 16 x 16. Nếu vẫn không hiệu quả, hãy thử cài đặt ở mức 2 giây (ví dụ: 128, 256, 512, 1024 ) bởi cài đặt này sẽ giúp CPU/GPU của bạn xử lý chúng nhanh hơn.
4. Giảm số lượng bounces
Một trong những lý do lớn nhất khiến Cycles mất quá nhiều thời gian render bởi vì nó cần thời gian để tính toán phản xạ ánh sáng. Phản xạ ánh sáng là gì? Ánh sáng dội lại là ánh sáng gián tiếp dội vào tường và các vật thể khác. Đó là ưu điểm tăng tính chân thực cho cảnh so với các công cụ render nội bộ khác.
Tuy nhiên, render chủ nghĩa hiện thực này phải “đánh đổi” bằng thời gian render của bạn. Theo mặc định, số lượng Light Bounces tối đa được đặt thành 8. Nhưng với kinh nghiệm cá nhân của tôi, bạn không nhất thiết phải cài đặt số lượng là 8 mới có đủ độ chân thực. Tôi sử dụng Cycles rất nhiều và tôi hiếm khi cần setting số lượng bounces nhiều hơn 4.
Để thay đổi số lượng bounces, hãy chọn Light Path (Đường dẫn ánh sáng) trong bảng điều khiển -> Bounces -> đặt Min = 0 và Max xuống mức độ vừa phải. Hãy thử nghiệm các cài đặt cho đến khi bạn tìm thấy giá trị đạt được độ chân thực bạn muốn mà không cần “hy sinh” quá nhiều thời gian render.
Để tinh chỉnh nhiều hơn nữa, bạn có thể điều chỉnh lượng ánh sáng dội lại như khuếch tán, truyền dẫn và bóng. Trong ví dụ trên, tôi sẽ cài đặt Transmission amount cao hơn các ánh sáng khác bởi bạn sẽ quan sát ánh sáng truyền dễ nhất khi nó có sự thay đổi.
5. Sử dụng đồng thời CPU + GPU
Kể từ phiên bản Blender 2.8, bạn có thể sử dụng đồng thời GPU và CPU của mình khi render. Điều này có thể mang lại cho bạn một lợi thế rất lớn, đặc biệt nếu bạn sở hữu một CPU khỏe, chẳng hạn như CPU Threadripper hoặc Xeon. Toàn bộ máy tính tại iRender Farm được trang bị CPU Dual Intel Xeon E5 2678 v3 thuộc socket 2011-3 và sở hữu 24 nhân 48 luồng với công nghệ Hyper Threading. Tốc độ xung nhịp cơ bản là từ 2.4Ghz và Turbo Boost lên là 3.3Ghz (xung nhịp của tất cả các lõi là 3.0 Ghz). Bộ nhớ đệm L3 có dung lượng 30Mb, kết hợp với tính năng QuickPath Interconnect (QPI) cho phép hoạt động trên các hệ thống hỗ trợ multi-socket với băng thông lớn. Do đó, khi chạy Dual CPU Xeon E5 2678 v3 trên một main chip sẽ tăng hiệu suất tối đa nhất là đối với những người thường xuyên cần render.
Nếu bạn sử dụng GPU Nvidia RTX (iRender sử dụng GPU NVIDIA RTX cho tất cả máy tính tại farm), một mẹo là bạn có thể chuyển từ CUDA sang OptiX, điều này cũng sẽ tăng hiệu suất hiển thị của bạn lên 20% -30%. Hãy khám phá hiệu năng Cycles khi render với NVIDIA RTX 3090 tại iRender trong video thử nghiệm dưới đây:
Lời kết
Chúng tôi hy vọng bài viết tổng quan này sẽ cung cấp cho bạn đủ thông tin hữu ích để tối ưu hóa thời gian render với Cycles với dịch vụ Cloud Rendering. Tại iRender, chúng tôi nỗ lực hết mình mỗi ngày để mang đến điều tốt nhất cho những khách hàng yêu quý của mình, những gì một nghệ sĩ 3D xứng đáng được nhận, một tác phẩm nghệ thuật xứng đáng được nhận.
Những gì bạn nhận được không chỉ là kết xuất để tạo ra sản phẩm cuối cùng. Bạn nhận được một giải pháp công nghệ mới, một dịch vụ tốt, bảo mật cao, các tính năng và phần mềm cùng các tiện ích khác giúp bạn tiết kiệm chi phí và thời gian, giảm căng thẳng khi làm việc và quan trọng nhất là nó phá vỡ giới hạn sáng tạo của nhiều “nghệ sĩ” công nghệ hiện nay. Nếu bạn có bất kỳ thắc mắc nào, đừng ngần ngại liên hệ với chúng tôi qua SĐT/Zalo: +(84) 981-868-890. Chúng tôi luôn sẵn lòng giải đáp và hỗ trợ cho bạn bất kỳ lúc nào.
Hãy trở thành thành viên của cộng đồng iRender ngay hôm nay để ngừng lãng phí thời gian chờ đợi việc render vô nghĩa. Luôn đi đầu trong từng công nghệ đồ họa tiên tiến, chúng tôi thực hiện nhiệm vụ render, công việc sáng tạo là của bạn!
Thanks & Happy Rendering!