2026-09-12 · Diperbarui 2026-09-13

Peta Kedalaman 16-Bit: Atasi Banding dan Periksa File PNG Anda

Perbaiki peta kedalaman yang bertingkat atau terbalik dengan uji PNG 8-bit vs 16-bit yang dapat diulang, skrip pemeriksaan file, dan checklist impor Blender.

Peta Kedalaman 16-Bit: Atasi Banding dan Periksa File PNG Anda

Terakhir diperbarui: 13 September 2026. Pengukuran encoding di bawah menggunakan gradasi sintetis, bukan tolok ukur akurasi kedalaman hasil AI.

Peta kedalaman Anda tampak halus di browser, tetapi permukaan hasil displacement justru membentuk teras. Anda mengekspor “PNG 16-bit”, tetapi tidak ada yang berubah. Sebelum membuat gambar baru atau menambah kerapatan mesh, cari tahu di tahap mana nilainya menjadi bertingkat. Ekstensi file saja tidak bisa menjawab pertanyaan itu.

Jawaban cepat: bagaimana mencegah banding pada peta kedalaman?

Gunakan PNG grayscale 16-bit yang diekspor langsung dari nilai kedalaman floating-point milik model, jika aplikasi berikutnya mendukungnya. Hindari melewatkan peta melalui pratinjau 8-bit, tangkapan layar, JPEG, atau kompresor foto. Setelah itu, periksa kedalaman sampel, rentang, dan jumlah nilai berbeda dalam file sebelum menguji displacement.

Wadah 16-bit tidak memulihkan presisi yang sudah hilang. Dalam eksperimen kami yang dapat diulang, gradasi yang dienkode langsung ke 16-bit mempertahankan 4096 nilai berbeda, sedangkan gradasi 8-bit yang disimpan ulang sebagai 16-bit hanya mempertahankan 256. Kedua file 16-bit melaporkan kedalaman sampel yang sama dan rentang numerik penuh.

Apa yang bisa diperbaiki cara ini, dan apa yang tidak

Alur kerja ini menangani presisi ekspor dan kesalahan impor yang umum. Cara ini tidak mengubah kedalaman relatif AI menjadi jarak terukur, tidak memunculkan geometri yang tersembunyi, tidak memperbaiki siluet yang keliru, dan tidak menjamin relief yang layak untuk produksi. Estimasi kedalaman sebuah adegan dan height field hasil pahatan memiliki tujuan yang berbeda.

Untuk konsep dasarnya, baca pengantar peta kedalaman kami. Untuk ekspor sungguhan, generator peta kedalaman secara default menghasilkan PNG grayscale 16-bit, menandai apakah putih berarti dekat atau jauh, dan menyediakan opsi pembalik.

Jalur AI alat tersebut mempertahankan nilai floating-point hingga langkah encoding terakhir. Jika alat memperingatkan bahwa ia memakai metode cadangan berbasis tepi dan blur, metode itu berangkat dari nilai 8-bit, sehingga PNG 16-bit yang dihasilkan paling banyak hanya berisi 256 tingkat.

Sebaiknya pilih kedalaman 8-bit, 16-bit, atau floating-point?

Tugas berikutnya Pilih ini jika didukung Periksa sebelum melanjutkan
Mask cepat atau pratinjau kasar PNG grayscale 8-bit Apakah efeknya bisa menerima undakan nilai yang terlihat
Displacement halus dari kedalaman yang dinormalisasi PNG grayscale 16-bit yang diekspor langsung Bahwa sumbernya belum pernah diturunkan ke 8-bit
Pipeline yang membutuhkan nilai floating-point mentah Format float yang didokumentasikan aplikasi, sering kali EXR Satuan, nilai tidak valid, normalisasi, dan konvensi impor
Alat yang hanya menerima gambar 8-bit Simpan master berpresisi tinggi; ekspor salinan 8-bit Apakah pratinjau dan output akhirnya mempertahankan detail yang cukup

Kedalaman sampel PNG diukur per kanal, bukan dengan menjumlahkan semua kanal. PNG RGBA “32-bit” menyimpan 8 bit di masing-masing dari empat kanalnya, sehingga nilai abu-abu yang disalin ke setiap kanal tetap hanya punya 256 tingkat. Spesifikasi PNG dari W3C mengizinkan kedalaman sampel grayscale 1, 2, 4, 8, dan 16 bit; PNG tidak memiliki format sampel floating-point.

Diagram yang membandingkan 256 tingkat abu-abu 8-bit dengan 65 536 tingkat abu-abu 16-bit

Diagram ini menggambarkan kapasitas encoding, bukan akurasi model atau jumlah nilai yang wajib dimiliki setiap gambar. Permukaan yang rata boleh saja hanya memakai satu nilai. File yang lebih besar juga bukan bukti estimasi yang lebih baik.

Apa yang diukur eksperimen 8-bit versus 16-bit kami?

Kami membuat gradasi horizontal berukuran 4096 × 64 dengan 4096 nilai berjarak sama dari nol hingga satu. Gradasi itu kami enkode dengan tiga cara menggunakan NumPy dan Pillow, lalu setiap PNG dibuka kembali untuk mengukur header, nilai berbeda, rentang, dan galat ternormalisasi terbesar terhadap gradasi asli.

Jalur encoding Kedalaman sampel PNG Nilai berbeda setelah didekode Galat ternormalisasi maksimum Ukuran file (byte)
Gradasi float → 8-bit 8 256 0,001953602 528
Gradasi float → 16-bit 16 4096 0,000007602 848
Gradasi float → 8-bit → 16-bit 16 256 0,001953602 819

Jalur ketiga mengalikan setiap bilangan bulat 8-bit dengan 257. Nol tetap menjadi nol dan 255 menjadi 65 535, sehingga rentangnya tampak benar. Namun, cara ini tetap tidak bisa menciptakan ulang nilai perantara yang hilang pada konversi pertama. Itulah sebabnya hanya memeriksa label “16-bit” atau piksel paling terang akan melewatkan satu jenis kegagalan yang penting.

Diagram batang nilai berbeda hasil ukur: 256 untuk 8-bit, 4096 untuk 16-bit langsung, 256 untuk 8-bit yang disimpan sebagai 16-bit

File yang sangat kecil ini berisi baris berulang sehingga mudah dikompresi. Ukuran byte-nya tidak bisa dipakai untuk memprediksi ukuran foto. Eksperimen ini hanya mengisolasi kuantisasi; tidak membandingkan model kedalaman, tidak menguji render Blender, dan tidak mengukur kualitas ukiran fisik. Ilustrasi WebP di halaman ini adalah grafik penjelas, bukan peta presisi yang bisa diunduh.

Untuk mereproduksi ketiga file tersebut, instal NumPy dan Pillow di lingkungan Python lalu jalankan:

import numpy as np
from PIL import Image

ramp = np.tile(np.linspace(0, 1, 4096), (64, 1))
a8 = np.rint(ramp * 255).astype(np.uint8)
a16 = np.rint(ramp * 65535).astype(np.uint16)
wrapped = a8.astype(np.uint16) * 257
for name, values in [("ramp-8", a8), ("ramp-16", a16),
                     ("ramp-8-in-16", wrapped)]:
    Image.fromarray(values).save(name + ".png")

Bagaimana cara memeriksa PNG yang Anda unduh?

Jalankan skrip ini pada file unduhan asli, sebelum aplikasi lain menyimpannya ulang. Skrip ini memakai paket Python yang sama dengan eksperimen dan mengharapkan PNG satu kanal. Skrip sengaja berhenti jika menerima pratinjau RGB, alih-alih diam-diam mengubah pratinjau itu menjadi data kedalaman yang tampak valid.

from pathlib import Path
import numpy as np
from PIL import Image

path = Path("depth.png")
raw = path.read_bytes()
assert raw[:8] == b"\x89PNG\r\n\x1a\n"
assert raw[12:16] == b"IHDR"
print("PNG sample depth:", raw[24])
print("PNG color type:", raw[25])  # 0 = grayscale
values = np.asarray(Image.open(path))
assert values.ndim == 2, "Inspect the grayscale export, not an RGB preview"
print("Range:", int(values.min()), int(values.max()))
print("Distinct values:", np.unique(values).size)
  • Pastikan yang diperiksa adalah unduhan grayscale, bukan pratinjau berwarna.
  • Kedalaman sampel seharusnya 16 jika Anda meminta ekspor 16-bit.
  • Periksa apakah rentang numeriknya cocok dengan pipeline Anda.
  • Nilai jumlah nilai berbeda sesuai kontennya; tidak ada ambang universal.
  • Amati lereng yang halus, tempat dataran datar paling mudah terlihat.
  • Ulangi pemeriksaan setelah konversi apa pun yang bisa menurunkan presisi.

Gambar yang tampak detail tetapi hanya berisi 256 nilai layak diselidiki, tetapi itu petunjuk, bukan vonis. Mask yang sengaja dibuat datar bisa saja membutuhkan lebih sedikit nilai. Sebaliknya, interpolasi dapat menciptakan ribuan nilai dari sumber 8-bit tanpa memulihkan prediksi aslinya. Pemeriksaan file tidak dapat membuktikan seluruh riwayat pemrosesannya.

Pratinjau yang hampir hitam juga perlu ditafsirkan dengan benar. Kedalaman mentah yang disimpan dalam rentang numerik sempit bisa saja valid bagi perangkat lunak yang akan membacanya. Normalisasikan salinannya hanya jika alat berikutnya mengharapkan kedalaman yang dinormalisasi; simpan file asli dan metadata skala apa pun. Untuk pemeriksaan dimensi dan format dasar, panduan memeriksa gambar kami menjelaskan apa yang bisa dan tidak bisa diungkap oleh properti file biasa.

Mengapa file yang benar masih terlihat salah di Blender?

Perlakukan peta sebagai data numerik. Pada node Image Texture, atur color space ke Non-Color agar tidak ada transformasi tampilan yang diterapkan. Hubungkan gambar ke input height atau displacement yang sesuai, periksa metode displacement pada material, dan pastikan mesh memiliki geometri yang cukup untuk displacement sungguhan.

Dokumentasi displacement Blender membedakan bump mapping, yang hanya mengubah shading, dari displacement sungguhan, yang menggerakkan permukaan sehingga memerlukan geometri yang disubdivisi halus. Bump tidak dapat mengubah siluet. Letak menu berbeda-beda antarversi, jadi ikuti dokumentasi yang sesuai dengan versi yang Anda pasang.

Diagnosis tiga langkah: bandingkan estimasi sumber, periksa PNG hasil ekspor, lalu periksa pengaturan impor

Gejala Selidiki terlebih dahulu Uji berguna berikutnya
Teras teratur pada lereng yang landai Kuantisasi atau konversi 8-bit di tengah proses Bandingkan unduhan asli dengan file yang diimpor
Subjek di latar depan justru tampak cekung Konvensi dekat/jauh atau tanda displacement Balik sekali, lalu bandingkan dengan titik latar depan yang diketahui
Siluet kotak-kotak meski petanya halus Geometri kurang atau mode displacement salah Uji geometri lebih banyak pada area mesh yang kecil
Kaca, rambut, atau pantulan membentuk bentuk aneh Interpretasi model terhadap adegan Bandingkan estimasi dengan foto asli
Peta tampak hampir hitam di penampil Rentang numerik atau penanganan tampilan Periksa nilai minimum dan maksimum mentah sebelum mengatur levels

Jaga skala displacement tetap moderat selama pengujian. Pastikan Midlevel, pemetaan UV, crop, dan rasio aspek sudah benar sebelum menambah detail. Mengubah semua pengaturan sekaligus akan menyulitkan Anda mengetahui langkah mana yang menyebabkan kesalahan.

Checklist andal dari ekspor hingga impor

Sebelum mengekspor:

  1. Simpan foto sumber bersama unduhan kedalaman aslinya.
  2. Pilih gambar dengan pemisahan latar depan dan belakang yang jelas.
  3. Periksa tepi objek sebelum memilih format ekspor.
  4. Ekspor PNG grayscale 16-bit secara langsung untuk alur yang kompatibel.
  5. Catat apakah piksel terang berarti dekat atau jauh.

Setelah mengunduh:

  1. Periksa header, rentang, dan nilai berbeda pada file yang disimpan.
  2. Impor sebagai data dan verifikasi arah dengan titik yang diketahui.
  3. Uji area kecil dengan geometri memadai sebelum render penuh.
  4. Simpan master berpresisi tinggi sebelum konversi apa pun.
  5. Simpan pengaturan yang berhasil untuk membandingkan ekspor berikutnya.

Jangan lewatkan master kedalaman melalui alur kompresi gambar yang biasa Anda pakai. Gambar tampilan yang lebih kecil dan medan numerik yang andal memiliki kebutuhan berbeda. Demikian pula, upscaler AI generik dapat mengarang tekstur yang berubah menjadi geometri yang tidak diinginkan saat ditafsirkan sebagai ketinggian.

Jika tujuannya adalah aplikasi relief atau ukiran, verifikasi secara terpisah cara aplikasi itu menangani sampel menurut dokumentasinya dan arah grayscale-nya. Artikel ini belum menguji output mesin. Kedalaman relatif terhadap kamera saja tidak menentukan ketebalan relief, satuan fisik, atau pengaturan pemrosesan.

Pertanyaan yang Sering Diajukan

Apakah kedalaman 16-bit membuat estimasi AI lebih akurat?

Tidak; kedalaman 16-bit bisa mempertahankan nilai output yang lebih halus, tetapi tidak memperbaiki kesalahan model dalam menafsirkan adegan.

Apakah mengonversi PNG 8-bit ke 16-bit bisa menghilangkan banding?

Mengganti wadah saja tidak memulihkan nilai yang hilang; smoothing bisa memperhalus undakan, tetapi juga mengubah medan kedalaman.

Mengapa PNG 16-bit hanya berisi 256 nilai berbeda?

File itu mungkin pernah melewati tahap 8-bit, meskipun gambar sederhana memang bisa saja hanya berisi nilai sesedikit itu.

Apakah putih selalu berarti dekat pada peta kedalaman?

Tidak; konvensinya berbeda-beda, jadi baca label dekat/jauh dari alat ekspor dan verifikasi dengan titik latar depan yang diketahui.

Bisakah saya memakai JPEG sebagai displacement map?

Renderer mungkin menerimanya, tetapi encoding lossy membuat JPEG menjadi master yang buruk untuk mempertahankan nilai kedalaman yang presisi.

Apakah PNG RGBA 32-bit lebih presisi daripada PNG grayscale 16-bit?

Tidak untuk peta kedalaman grayscale; RGBA “32-bit” berarti empat kanal 8-bit, sehingga setiap nilai abu-abu tetap punya 256 tingkat, kecuali alat tertentu sengaja membagi kedalaman ke beberapa kanal.

Mengapa pratinjau browser terlihat sama untuk kedua file?

Konversi tampilan bisa menyembunyikan presisi numerik tambahan, jadi periksa data aslinya dan uji di aplikasi tujuan.

Apakah peta kedalaman ini bisa memberikan ukuran dunia nyata yang tepat?

Tidak; estimasi relatif yang dinormalisasi tidak menentukan jarak fisik dan tidak memulihkan geometri yang tidak terlihat.

Gunakan alat gratis sambil mengikuti panduan.