Tối ưu texture — nguyên nhân phình file bị bỏ qua nhiều nhất
-

Ai cũng biết model nặng làm cảnh chậm. Rất ít người soi thư mục maps. Mở ra thì thấy: 340 file, tổng
11 GB, trong đó có tấm gạch 8K dùng cho một mảng tường 40 cm và bốn bản khác nhau của cùng một vân gỗ
vì ba người tải về ba lần. Texture không làm tăng số mặt nên không hiện lên trong thống kê viewport,
và vì thế nó là nguyên nhân phình file bị bỏ qua nhiều nhất.Texture ăn tài nguyên ở đâu
Bitmap được nạp nguyên khối vào RAM khi render. Một file JPG 8K nén xuống 4 MB trên đĩa, nhưng khi
giải nén trong bộ nhớ nó chiếm khoảng 8192 x 8192 x 3 byte, tức gần 200 MB. Nhân với vài chục vật
liệu là hết vài GB trước khi Corona bắn tia đầu tiên.Ba hệ quả:
- Nạp cảnh (parsing) lâu. Có cảnh mất 6 phút chỉ để nạp texture, rồi render 12 phút.
- RAM cao ngay từ đầu. Chi tiết: Tối ưu RAM — cảnh nặng mà máy không tràn bộ nhớ
- File dự án khổng lồ khi đóng gói. Gửi cho freelancer hoặc đẩy lên render farm đều trả giá.
Corona Bitmap và cơ chế out-of-core
Corona có node Corona Bitmap riêng, thay cho node Bitmap gốc của 3ds Max. Hai node cho kết quả gần
như giống nhau, nhưng Corona Bitmap thường nạp và render nhanh hơn một chút.Điểm quan trọng hơn: tuỳ chọn Automated out-of-core textures ở Render Setup > System >
Performance chỉ hoạt động với Corona Bitmap. Khi bật, Corona 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. Cảnh toàn Bitmap gốc thì tính năng này vô hiệu.
Corona có sẵn hai nút Bitmap > CoronaBitmap và CoronaBitmap > Bitmap để chuyển đổi hàng loạt
cả cảnh, không phải sửa tay từng vật liệu.Bốn cách làm nhẹ texture
1. Hạ độ phân giải cho đúng nhu cầu. Quy tắc thực dụng của xưởng:
Vị trí trong khung hình Độ phân giải đủ dùng Vật liệu tiền cảnh, nhìn rất gần (mặt bàn, tay vịn) 4K Vật liệu chủ đạo (sàn, tường chính) 2K Vật liệu ở tầm trung, trần, tường bên 1K Vật thể xa, khối nhà nền, hậu cảnh 512 hoặc thấp hơn Không có lý do gì để một tấm tường xa 30 m dùng texture 8K.
2. Đổi định dạng cho hợp lý. PNG 16-bit và TIFF không nén cho map màu là lãng phí; JPG chất lượng
cao đủ cho Diffuse và Reflection. Giữ định dạng không mất dữ liệu cho Displacement và Normal, vì nén
mất dữ liệu ở hai loại này tạo ra bậc thang trên bề mặt.3. Dùng công cụ đổi kích thước hàng loạt. Sửa tay 340 file là không khả thi. Các script quản lý
thư viện như Project Manager của 3d-kstudio có chức năng resize và convert ngay trong 3ds Max.4. Dùng plugin proxy texture. Nhóm plugin này tạo bản sao độ phân giải thấp của mọi texture trong
cảnh và tạm hoán đổi vào để viewport mượt và render nháp nhanh; khi cần bản cuối thì trả lại texture
gốc bằng một nút. Proxy Textures của Spline Dynamics thuộc nhóm này, hỗ trợ Corona cùng các bộ
render phổ biến khác. Đây là plugin thương mại, xem giá tại trang chính chủ.Thay hình học bằng mặt phẳng render sẵn
Đây là kỹ thuật texture mạnh nhất mà ít người dùng: render trước một cụm vật thể thành ảnh có kênh
trong suốt, rồi dán lên một mặt phẳng đặt đúng vị trí.Với hàng cây làm nền cho cảnh ngoại thất, chênh lệch rất lớn: cụm cây thật chiếm 156 MB đĩa, 2,7 GB
RAM và 23 phút render; cùng bố cục đó dựng bằng mặt phẳng kèm opacity map chỉ còn 0,8 MB đĩa, 1 GB RAM
và 1 phút 30 giây.
Với vật thể ở xa camera, khoản lãi nhỏ hơn nhưng vẫn đáng: cùng dung lượng và RAM, thời gian render
giảm từ 28 phút 48 giây xuống 19 phút 15 giây khi thay phần cây xa bằng mặt phẳng.
Kỹ thuật này còn hiệu quả với vật thể khúc xạ cao và phản xạ mờ — thứ tốn tia nhất trong Corona.
Một kệ chai thuỷ tinh sau lớp kính: dựng thật mất 13 phút 50 giây, thay bằng mặt phẳng render sẵn còn
9 phút 42 giây.
Cảnh báo: opacity map cũng tốn tia. Một mặt phẳng cây với opacity map độ phân giải quá cao có thể
đắt hơn cả model. Giữ opacity map ở mức vừa phải, và nếu được thì cắt hình dạng mặt phẳng theo tán cây
để giảm diện tích phải kiểm tra độ trong suốt.Ứng dụng trong kiến trúc và thiết kế
- Dự án khách sạn với 200 vật liệu khác nhau — chạy resize hàng loạt một lần ngay sau khi gom đủ
vật liệu, trước khi bắt đầu dựng. Làm sau khi dựng xong thì phải relink lại toàn bộ. - Nhiều người cùng làm một dự án qua ổ mạng — quy ước một thư mục maps chung và cấm copy texture
vào thư mục riêng. Bốn bản của cùng một vân gỗ là chuyện xảy ra ở mọi xưởng. - Ảnh phối cảnh có dải cây làm nền phía sau công trình — đây là chỗ dùng mặt phẳng render sẵn có
lãi nhất: cây chiếm diện tích lớn trong khung hình nhưng người xem không soi từng lá. - Nội thất có tủ kính trưng bày — thay cụm vật phẩm bên trong bằng ảnh render sẵn, chỉ giữ vài món
ở tiền cảnh. - Đóng gói bàn giao cho khách hoặc render farm — resize trước rồi mới dùng Archive để gom. Gói
11 GB và gói 1,5 GB khác nhau cả tiếng đồng hồ truyền file.
Mẹo và lưu ý
- Đừng resize đè lên file gốc. Ghi ra thư mục
maps_lowriêng để còn đường quay lại cho bản in
khổ lớn. - Sau khi resize hoặc di chuyển texture, cảnh sẽ mất đường dẫn. Có công cụ chuyên để nối lại:
Relink Bitmap — cứu cảnh mất đường dẫn texture - Kiểm tra map Displacement và Bump riêng — hai loại này chịu ảnh hưởng nặng nhất khi hạ độ phân
giải, dễ tạo ra bề mặt bậc thang. - Hạ chất lượng hiển thị texture trong viewport không làm ảnh render xấu đi. Chi tiết:
Tối ưu hiển thị viewport để thao tác không giật
Dùng kèm hoặc thay thế
- Texture là một phần của bài toán RAM: Tối ưu RAM — cảnh nặng mà máy không tràn bộ nhớ
- Tối ưu hình học thay vì tối ưu texture: Tối ưu số mặt (poly) trong cảnh diễn hoạ
- Vật liệu Corona và tư duy PBR: Vật liệu Corona: CoronaPhysicalMtl và tư duy PBR
- Sửa hàng loạt vật liệu trong cảnh: Batch Material Editor — sửa vật liệu hàng loạt
Video tham khảo (YouTube)
Proxy Textures | Quickly Optimize your Textures for Viewport Performance and Fast Rendering (CG Tricks)
How to optimize resize textures with Project Manager 3ds Max Archviz Quick Tips Series (CG Choco 3D Tools and Tips)
HOW TO RESIZE YOUR TEXTURES IN 3DS MAX FOR FASTER RENDERING (AFMISA designs)
Convert and Resize Images in 3Ds Max (3d-kstudio)
3ds Max - Controlling Texture Quality in Viewports (Autodesk 3ds Max Learning Channel)
Tài liệu tham khảo
- Corona Bitmap (Chaos Help Center) — vì sao nên dùng Corona Bitmap thay cho Bitmap gốc.
- System is running low on RAM (Chaos Help Center) — mục texture và tuỳ chọn Automated out-of-core textures.
- Proxy Textures — Spline Dynamics — trang chính chủ của plugin proxy texture, có mô tả tính năng và giá.
- Proxy Textures trên ScriptSpot — trang giới thiệu và thảo luận của cộng đồng 3ds Max.
- System Tab — Corona for 3ds Max — nơi chứa tuỳ chọn out-of-core textures.
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