Tối ưu RAM — cảnh nặng mà máy không tràn bộ nhớ
-

Cảnh ngoại thất, máy 32 GB, bấm render lúc 11 giờ đêm. Đến 1 giờ sáng quay lại thì 3ds Max đã tắt,
không có file, không có thông báo. Đây không phải lỗi Corona mà là hết RAM. Khi Windows cạn bộ nhớ,
nó bắt đầu chuyển dữ liệu xuống ổ cứng — gọi là paging — và từ đó mọi thứ chậm đi hàng trăm lần, hoặc
phần mềm chết hẳn. Bài này nói về cách giữ cảnh nằm gọn trong RAM.Bộ nhớ đi đâu trong một lần render
RAM bị tiêu bởi năm thứ, theo đúng thứ tự đáng ngờ:
Thành phần Vì sao tốn Dấu hiệu Hình học tĩnh Mỗi mặt, mỗi đỉnh đều nằm trong RAM RAM cao ngay khi vừa mở file Texture Bitmap 8K nạp nguyên khối vào bộ nhớ Nạp cảnh (parsing) lâu hơn cả render Hình học động Displacement, Hair, Scatter sinh mặt lúc render RAM nhảy vọt ngay sau khi bấm render Khung ảnh và render element Mỗi element là một ảnh đầy đủ trong RAM Render khổ lớn thì chết, khổ nhỏ thì chạy Bản thân 3ds Max Phần mềm chủ chiếm vài GB trước khi Corona bắt đầu Task Manager cao dù chưa render Corona 3ds Max hiện thông báo "System is running low on RAM" kèm bảng phân tích từng thành phần
đang ngốn bao nhiêu. Đọc bảng đó trước, đừng đoán.Chín cách giảm RAM trong Corona, xếp theo tỷ lệ lãi
- Giảm khổ ảnh đầu ra. Cách rẻ nhất và hiệu quả nhất. Bộ nhớ cho khung ảnh tăng theo diện tích:
6000 px tốn gấp bốn lần 3000 px. - Xóa render element không dùng. Mỗi element là một ảnh đầy đủ nằm trong RAM.
- Chỉ bật Denoising cho element thật sự cần. Chaos nói rõ: khử nhiễu từng element tốn thêm bộ nhớ,
và điều này áp dụng cho cả LightMix. - Bật Automated out-of-core textures ở Render Setup > System > Performance. Nó tự đẩy phần
texture chưa dùng xuống đĩa và theo Chaos có thể giảm tới 30% bộ nhớ đỉnh. Điều kiện: texture
phải là Corona Bitmap, không chạy với Bitmap gốc của 3ds Max. - Hạ độ phân giải bitmap. Một bức tường xa camera không cần texture 8K. Chi tiết:
Tối ưu texture — nguyên nhân phình file bị bỏ qua nhiều nhất - Nâng giá trị Displacement Screen size. Ở Render Setup > Performance > Displacement, giá trị
càng lớn thì chất lượng càng thấp và RAM càng ít. Không bao giờ đặt dưới 1 pixel. Chi tiết mịn cứ
để Autobump lo. Chi tiết: Displacement — sức mạnh và cái giá phải trả - Proxy hình học nặng và dùng instance. Corona Proxy giữ lưới ngoài file cảnh và chỉ nạp phần cần
thiết. Chi tiết: Corona Proxy — đưa model nặng vào cảnh mà máy không nghẹn - Bật Conserve memory (slow) ở Render Setup > Performance > Performance Settings. Chaos ghi rõ
nó giảm RAM một chút nhưng làm chậm render khoảng 5%. Đây là phương án cuối, không phải mặc định. - Đóng ứng dụng nặng khác. Photoshop mở ba file PSD 2 GB và trình duyệt 30 tab ăn mất phần RAM mà
Corona đang cần.
Về phần cứng, Chaos khuyến nghị tối thiểu 64 GB cho cảnh nội thất và ngoại thất thông thường, và
coi 32 GB là mức tối thiểu tuyệt đối. Con số này khớp với kinh nghiệm xưởng.Tài liệu chính chủ và chỗ phải cẩn thận khi đọc
Chaos có một bài rất đầy đủ tên Optimizing memory (RAM) usage for CPU rendering. Cần biết một điều
trước khi đọc: bài đó viết cho V-Ray, không phải Corona. Phần nguyên lý dùng chung được, phần
thông số thì không.Kỹ thuật trong bài Chaos Corona có tương đương không Đổi Progressive sang Bucket Image Sampler Không. Corona chỉ có progressive Bỏ Light Cache, dùng Brute Force GI Không tương đương trực tiếp; Corona dùng UHD Cache Dynamic Memory Limit đặt 80–90% RAM Không có ô này trong Corona Xuất .vrscenerender bằng V-Ray StandaloneKhông áp dụng Tiled Textures .txCorona dùng cơ chế khác: Automated out-of-core textures VRayProxy Có: Corona Proxy Bỏ vật thể ngoài khung camera Có, nguyên lý dùng chung Giảm render element, giảm khổ ảnh Có, nguyên lý dùng chung Tăng page file, đóng ứng dụng khác, render tách lớp Có, thuộc về hệ điều hành Đừng đi tìm ô "Dynamic Memory Limit" trong bảng F10 của Corona. Nó không tồn tại.
Ứng dụng trong kiến trúc và thiết kế
- Máy 32 GB render ngoại thất có Forest Pack — ca kinh điển. Cây là hình học động sinh lúc render.
Chuyển cây sang proxy, giảm mật độ ở vùng xa camera, và nâng Displacement Screen size cho mặt cỏ.
Ba việc này thường đủ để cảnh chạy được trên 32 GB. - VR360 độ phân giải 2500 x 5000 — khung ảnh lớn cộng với nhiều render element là công thức tràn
bộ nhớ. Cắt element xuống còn đúng những lớp hậu kỳ cần. - Nội thất có rèm vải, thảm lông và cây trong nhà — cả ba đều là hình học động. Nếu bắt buộc phải
có, hãy render tách lớp: một lượt cho nội thất, một lượt cho phần cây, ghép ở Photoshop. - Máy trạm dùng chung nhiều người, ai cũng cắm việc riêng — quy ước xưởng nên là đóng hết ứng dụng
trước khi để máy chạy render qua đêm, và tắt Autosave của cả Corona lẫn 3ds Max. - Cảnh quy hoạch tổng thể có địa hình lớn — nếu dùng camera trực giao (orthographic) kèm
displacement, Chaos cảnh báo tổ hợp này ngốn bộ nhớ bất thường; chuyển sang world size displacement
hoặc dùng camera phối cảnh tiêu cự dài đặt xa.
Mẹo và lưu ý
- RAM khác dung lượng ổ cứng. Còn 2 TB trống trên SSD không giúp gì khi hết RAM.
- Tăng page file cứu được ca thiếu một chút, nhưng phải chấp nhận render lâu hơn nhiều vì bộ nhớ
ảo chậm hơn RAM hàng trăm lần. - Nếu chỉ tràn RAM ở một góc duy nhất, khoanh vùng theo nội dung khung hình chứ đừng tối ưu cả cảnh.
- Tắt Autosave khi render. Tự lưu một file 3 GB giữa lúc RAM đang sát trần là cách nhanh nhất để
mất cả buổi làm việc.
Dùng kèm hoặc thay thế
- Nút thắt là hình học chứ không phải bộ nhớ: Tối ưu số mặt (poly) trong cảnh diễn hoạ
- Nút thắt là texture: Tối ưu texture — nguyên nhân phình file bị bỏ qua nhiều nhất
- Corona Proxy — công cụ chính để hạ RAM hình học: Corona Proxy — đưa model nặng vào cảnh mà máy không nghẹn
- Displacement, thủ phạm hàng đầu của hình học động: Displacement — sức mạnh và cái giá phải trả
Video tham khảo (YouTube)
corona proxy memory usage (Aleks Koch)
How to create and use Corona Proxy (ArchViz Explained)
HOW TO MAKE 3D MAX FILE A LOT LIGHTER WITH CORONA PROXY - CORONA 6 RENDER TUTORIAL (Marsetyo Aji)
Drag & Drop bitmap - Automatic Corona Bitmap creation | ezMat (CG Tricks)
Reduced your 3ds max file by over 90% (Simple or Difficult)
Tài liệu tham khảo
- System is running low on RAM (Chaos Help Center) — bài Corona chính chủ: từng nguyên nhân tràn RAM, kèm mức RAM khuyến nghị và vị trí ô Conserve memory.
- Optimizing memory (RAM) usage for CPU rendering (Chaos Help Center) — bài gốc về tối ưu bộ nhớ; lưu ý viết cho V-Ray, đọc phần nguyên lý là chính.
- Corona Bitmap (Chaos Help Center) — điều kiện bắt buộc để bật out-of-core textures.
- How to use proxies in Corona for 3ds Max? (Chaos Help Center) — quy trình chuyển hình học nặng sang proxy.
- Using orthographic camera and screen size displacement can consume a lot of memory (Chaos Help Center) — cảnh báo cho ảnh quy hoạch dùng camera trực giao.
- Giảm khổ ảnh đầu ra. Cách rẻ nhất và hiệu quả nhất. Bộ nhớ cho khung ảnh tăng theo diện tích:
Tham gia thảo luận
Đăng nhập bằng Google để bình luận, lưu bài và nhận thông báo khi có phản hồi mới.
Đăng nhập với Google