Mengonfigurasi parameter konversi model
Dalam artikel ini, pelajari cara mengonfigurasi parameter untuk konversi model.
File pengaturan
Jika file yang disebut <modelName>. Konversi Pengaturan.json ditemukan di kontainer input di samping model input modelName.< <>ext>, maka file digunakan untuk menyediakan konfigurasi tambahan untuk proses konversi model. Misalnya, saat mengonversi box.gltf, Anda akan menggunakan kotak. Konversi Pengaturan.json untuk mengatur parameter untuk konversi model.
Konten file pengaturan konversi JSON harus memiliki skema ini:
{
"$schema" : "http://json-schema.org/schema#",
"description" : "ARR ConversionSettings Schema",
"type" : "object",
"definitions" :
{
"position_attribute" : {"type" : "string", "description" : "Destination format of the position attribute", "enum" : [ "32_32_32_FLOAT", "16_16_16_16_FLOAT" ]},
"color_attribute" : {"type" : "string", "description" : "Destination format of the color attribute", "enum" : [ "NONE", "8_8_8_8_UNSIGNED_NORMALIZED" ]},
"vector_attribute" : {"type" : "string", "description" : "Destination format of the normals, tangents and binormals attributes", "enum" : [ "NONE", "8_8_8_8_SIGNED_NORMALIZED", "16_16_16_16_FLOAT" ]},
"texcoord_attribute" : {"type" : "string", "description" : "Destination format of the texture coordinates attribute", "enum" : [ "NONE", "32_32_FLOAT", "16_16_FLOAT" ]}
},
"properties" :
{
"scaling" : { "type" : "number", "exclusiveMinimum" : 0, "default" : 1.0 },
"recenterToOrigin" : { "type" : "boolean", "default" : false },
"opaqueMaterialDefaultSidedness" : {" type" : "string", "enum" : [ "SingleSided", "DoubleSided" ], "default" : "DoubleSided" },
"material-override" : { "type" : "string", "default" : "" },
"gammaToLinearMaterial" : { "type" : "boolean", "default" : false },
"gammaToLinearVertex" : { "type" : "boolean", "default" : false },
"sceneGraphMode" : { "type" : "string", "enum" : [ "none", "static", "dynamic" ], "default" : "dynamic" },
"generateCollisionMesh" : { "type" : "boolean", "default" : true },
"unlitMaterials" : { "type" : "boolean", "default" : false },
"deduplicateMaterials" : {"type" : "boolean", "default" : true },
"fbxAssumeMetallic" : {"type" : "boolean", "default" : true },
"axis" : {
"type" : "array",
"items" : {
"type" : "string",
"enum" : [ "default", "+x", "-x", "+y", "-y", "+z", "-z" ]
},
"minItems" : 3,
"maxItems" : 3
},
"vertex" : {
"type" : "object",
"properties" : {
"position" : { "$ref" : "#/definitions/position_attribute" },
"color0" : { "$ref" : "#/definitions/color_attribute" },
"color1" : { "$ref" : "#/definitions/color_attribute" },
"normal" : { "$ref" : "#/definitions/vector_attribute" },
"tangent" : { "$ref" : "#/definitions/vector_attribute" },
"binormal" : { "$ref" : "#/definitions/vector_attribute" },
"texcoord0" : { "$ref" : "#/definitions/texcoord_attribute" },
"texcoord1" : { "$ref" : "#/definitions/texcoord_attribute" }
},
"additionalProperties" : false
},
"metadataKeys" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
},
"additionalProperties" : false
}
Sebuah kotak. Konversi Pengaturan.json mungkin terlihat seperti contoh ini:
{
"scaling" : 0.01,
"recenterToOrigin" : true,
"material-override" : "box_materials_override.json"
}
Skema untuk mengonversi jala segitiga dan cloud titik identik. Namun, konversi cloud titik menggunakan subset fitur yang ketat dibandingkan dengan konversi jala segitiga.
Pengaturan untuk jala segitiga
Saat Anda mengonversi jala segitiga, seperti dari file .fbx , semua parameter dalam contoh skema yang ditampilkan di bagian sebelumnya memengaruhi hasil konversi. Bagian berikutnya memberi Anda penjelasan terperinci tentang parameter.
Parameter geometri
scaling
: Parameter ini menskalakan model secara seragam. Penskalaan dapat digunakan untuk menumbuhkan atau menyusutkan model, misalnya, untuk menampilkan model bangunan di atas tabel. Penskalakan juga penting ketika model didefinisikan dalam unit selain meter karena mesin penyajian mengharapkan meter. Misalnya, jika model didefinisikan dalam sentimeter, maka menerapkan skala 0,01 merender model pada ukuran yang benar. Beberapa format data sumber (misalnya, file .fbx ) memberikan petunjuk penskalaan unit. Dalam hal ini, konversi secara implisit menskalakan model ke unit meter. Penskalaan implisit yang disediakan oleh format sumber diterapkan di atasscaling
parameter. Faktor penskalaan akhir diterapkan pada node geometri dan transformasi lokal dari node grafik adegan. Penskalaan untuk transformasi entitas akar tetap tidak dimodifikasi.Penting
Showcase dan Quickstart mungkin mengkompensasi penskalaan waktu konversi apa pun karena masing-masing memiliki fitur penskalaan otomatis bawaan. Untuk informasi selengkapnya, lihat panduan pemecahan masalah.
recenterToOrigin
: Parameter ini menyatakan bahwa model harus dikonversi sehingga kotak pembatasnya berpusat di asal. Jika model sumber dipindahkan jauh dari asalnya, masalah presisi floating-point dapat menyebabkan penyajian artefak. Mempusatkan model dapat membantu dalam skenario ini.opaqueMaterialDefaultSidedness
: Mesin penyajian mengasumsikan bahwa bahan buram bersisi ganda. Jika asumsi tersebut tidak benar dari model tertentu, parameter ini harus diatur keSingleSided
. Untuk informasi selengkapnya, lihat Penyajian satu sisi.
Deduplikasi material
deduplicateMaterials
: Parameter ini mengaktifkan atau menonaktifkan deduplikasi otomatis bahan yang memiliki properti dan tekstur yang sama. Deduplikasi terjadi setelah penimpaan material diproses. Status diaktifkan secara default.Jika model memiliki lebih dari 65.535 bahan bahkan setelah deduplikasi, layanan mencoba menggabungkan bahan yang memiliki properti serupa. Sebagai opsi terakhir, bahan apa pun yang melebihi batas digantikan oleh bahan kesalahan merah.
Gambar berikut menunjukkan dua kubus 68.921 segitiga berwarna. Contoh kiri adalah sebelum deduplikasi, dengan 68.921 bahan warna. Contoh yang tepat adalah setelah deduplikasi, dengan 64.000 bahan warna. Batasnya adalah 65.535 bahan. Untuk informasi selengkapnya tentang batas material, lihat batasan.
Parameter ruang warna
Mesin perenderan mengharapkan nilai warna berada dalam ruang linier. Jika model didefinisikan dengan menggunakan ruang gamma, opsi berikut harus diatur ke true
:
gammaToLinearMaterial
: Mengonversi warna material dari ruang gamma ke ruang linier.gammaToLinearVertex
: Mengonversi warna puncak dari ruang gamma ke ruang linier.
Catatan
Untuk format file FBX, E57, PLY, LAS, LAZ, dan XYZ, pengaturan ini diatur ke true
secara default. Untuk semua format file lainnya, defaultnya adalah false
.
Parameter adegan
sceneGraphMode
: Menentukan bagaimana grafik adegan dalam file sumber dikonversi.dynamic
(default): Semua objek dalam file diekspos sebagai entitas dalam API dan dapat diubah dan direparentasi secara semena-mena. Saat runtime, hierarki simpul identik dengan struktur dalam file sumber.static
: Miripdynamic
dengan , tetapi objek dalam grafik adegan tidak dapat direparentasikan ke objek lain secara dinamis saat runtime. Untuk model dinamis yang memiliki banyak bagian bergerak, seperti tampilan ledakan,dynamic
opsi menghasilkan model yang lebih efisien untuk dirender, tetapistatic
mode masih memungkinkan transformasi bagian individual. Jika reparenting dinamis tidak diperlukan,static
opsinya adalah yang paling cocok untuk model yang memiliki banyak bagian individual.none
: Grafik adegan diciutkan menjadi satu objek.
Setiap mode memiliki performa runtime yang berbeda. Dalam mode dynamic
, biaya performa diskalakan secara linier dengan jumlah entitas dalam grafik, meskipun tidak ada bagian yang dipindahkan. Gunakan dynamic
mode hanya jika perlu memindahkan banyak bagian atau subgraf besar secara bersamaan. Contohnya adalah animasi tampilan ledakan.
Mode static
juga mengekspor grafik adegan penuh. Kueri spasial mengembalikan bagian individual, dan setiap bagian dapat dimodifikasi melalui penimpaan status. Dengan mode ini, overhead runtime per objek dapat diabaikan. Mode ini sangat ideal untuk adegan besar di mana Anda memerlukan inspeksi per objek dan perubahan transformasi sesekali pada masing-masing bagian, tetapi tidak ada reparenting objek.
Mode none
memiliki overhead runtime paling sedikit dan juga waktu pemuatan yang sedikit lebih baik. Inspeksi atau transformasi objek tunggal tidak dimungkinkan dalam mode ini. Kasus penggunaan adalah, misalnya, model fotometri yang tidak dimulai dengan grafik adegan yang bermakna.
Tip
Banyak aplikasi memuat beberapa model. Anda harus mengoptimalkan parameter konversi untuk setiap model tergantung pada bagaimana Anda akan menggunakannya. Misalnya, jika Anda ingin menampilkan model mobil bagi pengguna untuk terpisah dan memeriksa secara rinci, pertama-tama konversikan dengan menggunakan dynamic
mode. Namun, jika Anda juga ingin menempatkan mobil di lingkungan ruang pertunjukan, Anda dapat mengonversi model tersebut dengan menggunakan sceneGraphMode
diatur ke static
, atau bahkan ke none
.
Parameter fisika
generateCollisionMesh
: Jika Anda memerlukan dukungan untuk kueri spasial pada model, opsi ini harus diaktifkan. Pembuatan jala tabrakan tidak menambahkan waktu konversi tambahan, dan juga tidak meningkatkan ukuran file output. Waktu pemuatan dan biaya runtime model yang memiliki jala tabrakan hanya jauh lebih tinggi. Anda dapat membiarkan bendera ini ke default (diaktifkan) kecuali Anda memiliki alasan khusus untuk mengecualikan model dari kueri spasial.
Bahan yang tidak menyala
unlitMaterials
: Secara default, konversi membuat materi rendering berbasis fisik (PBR). Ketika opsi ini diatur, pengonversi malah memperlakukan semua bahan sebagai bahan warna. Jika Anda memiliki data yang sudah menggabungkan pencahayaan, seperti model yang dibuat melalui photogrammetry, opsi ini memungkinkan Anda untuk dengan cepat menerapkan konversi yang benar untuk semua materi. Anda tidak perlu mengambil alih setiap materi satu per satu.
Konversi dari format FBX sebelumnya dan model material Phong
fbxAssumeMetallic
: Versi format FBX yang lebih lama mendefinisikan materinya dengan menggunakan model bahan Phong. Proses konversi harus menyimpulkan bagaimana materi ini memetakan ke model PBR perender. Biasanya pemetaan ini berfungsi dengan baik, tetapi ambiguitas dapat muncul ketika bahan tidak memiliki tekstur, nilai spekular tinggi, dan warna albedo yang tidak abu-abu. Dalam skenario ini, konversi harus memilih antara memprioritaskan nilai spekular tinggi, mendefinisikan bahan yang sangat reflektif dan logam di mana warna albedo larut, atau memprioritaskan warna albedo dengan menentukan sesuatu, seperti dalam plastik berwarna-warni yang mengkilap. Secara default, proses konversi mengasumsikan bahwa nilai yang sangat spekular menyiratkan bahan logam dalam skenario ambigu. Anda dapat mengatur parameter ini ke untukfalse
efek yang berlawanan.
Penimpaan sistem koordinat
axis
: Gunakan parameter ini untuk mengambil alih vektor unit sistem koordinat. Nilai bawaannya adalah["+x", "+y", "+z"]
. Secara teori, format FBX memiliki header tempat vektor tersebut ditentukan, dan konversi menggunakan informasi tersebut untuk mengubah adegan. Format GLTF juga mendefinisikan sistem koordinat tetap. Dalam praktiknya, beberapa aset memiliki informasi yang salah di header mereka atau disimpan dengan menggunakan konvensi sistem koordinat yang berbeda. Opsi ini memungkinkan Anda mengganti sistem koordinat untuk mengkompensasi. Misalnya,"axis" : ["+x", "+z", "-y"]
menukar sumbu Z dan sumbu Y dan menjaga penyerahan sistem koordinat dengan membalikkan arah sumbu Y.
Metadata simpul
metadataKeys
: Gunakan parameter ini untuk menentukan kunci properti metadata simpul yang ingin Anda simpan dalam hasil konversi. Anda dapat menentukan kunci yang tepat atau kunci karakter kartubebas. Kunci kartubebas memiliki formatABC*
dan cocok dengan kunci apa pun yang dimulai denganABC
. Jenis nilai metadata yang didukung adalahbool
,int
,float
, danstring
.Untuk file GLTF, data ini berasal dari objek ekstra pada simpul. Untuk file FBX, data ini berasal dari
Properties70
data padaModel nodes
. Untuk informasi selengkapnya, lihat dokumentasi untuk Alat Aset 3D Anda.
Saat memuat model dengan data meta diaktifkan, daftar entri data meta entitas tertentu dapat diambil melalui fungsi QueryMetadataAsync asinkron.
Format puncak
Anda dapat menyesuaikan format puncak untuk jala dengan presisi perdagangan untuk penghematan memori. Jika model Anda memiliki jejak memori yang lebih rendah, Anda dapat memuat model yang lebih besar atau mencapai performa yang lebih baik. Namun, tergantung pada data Anda, format yang salah dapat secara signifikan memengaruhi kualitas penyajian.
Perhatian
Mengubah format vertex harus menjadi opsi terakhir ketika model tidak lagi sesuai dengan memori, atau ketika Anda mengoptimalkan performa terbaik. Perubahan dapat dengan mudah memperkenalkan artefak penyajian, baik yang jelas maupun halang. Kecuali Anda tahu apa yang harus diwaspadai, Anda tidak boleh mengubah default.
Anda dapat melakukan penyesuaian ini:
- Secara eksplisit menyertakan atau mengecualikan aliran data tertentu.
- Kurangi akurasi aliran data untuk mengurangi jejak memori.
Bagian berikut vertex
dalam file JSON bersifat opsional. Untuk setiap bagian yang tidak ditentukan secara eksplisit, layanan konversi kembali ke pengaturan defaultnya.
{
...
"vertex" : {
"position" : "32_32_32_FLOAT",
"color0" : "NONE",
"color1" : "NONE",
"normal" : "NONE",
"tangent" : "NONE",
"binormal" : "NONE",
"texcoord0" : "32_32_FLOAT",
"texcoord1" : "NONE"
},
...
}
Dengan memaksa komponen ke NONE
, dijamin bahwa jala output tidak memiliki aliran masing-masing.
Format komponen per aliran puncak
Tabel berikut ini menjelaskan format yang diizinkan untuk komponen masing-masing:
Komponen vertex | Format yang didukung | Penggunaan dalam materi |
---|---|---|
position |
32_32_32_FLOAT (default), 16_16_16_16_FLOAT |
Posisi puncak. Harus selalu ada. |
color0 |
8_8_8_8_UNSIGNED_NORMALIZED (default), NONE |
Warna puncak. Lihat useVertexColor properti baik dalam bahan warna maupun bahan PBR, dan vertexMix dalam bahan warna. |
color1 |
8_8_8_8_UNSIGNED_NORMALIZED , NONE (default) |
Tidak digunakan. Biarkan sebagai default NONE . |
normal |
8_8_8_8_SIGNED_NORMALIZED (default), 16_16_16_16_FLOAT , NONE |
Digunakan untuk pencahayaan dalam bahan PBR. |
tangent |
8_8_8_8_SIGNED_NORMALIZED (default), 16_16_16_16_FLOAT , NONE |
Digunakan untuk pencahayaan dengan peta normal dalam bahan PBR. |
binormal |
8_8_8_8_SIGNED_NORMALIZED (default), 16_16_16_16_FLOAT , NONE |
Digunakan untuk pencahayaan dengan peta normal dalam bahan PBR. |
texcoord0 |
32_32_FLOAT (default), 16_16_FLOAT , NONE |
Slot pertama koordinat tekstur. Tekstur individual seperti albedo dan peta normal dapat menggunakan slot 0 atau 1, yang didefinisikan dalam file sumber. |
texcoord1 |
32_32_FLOAT (default), 16_16_FLOAT , NONE |
Slot kedua koordinat tekstur. Tekstur individual seperti albedo dan peta normal dapat menggunakan slot 0 atau 1, yang didefinisikan dalam file sumber. |
Format komponen yang didukung
Tabel berikut ini menjelaskan jejak memori format komponen yang didukung:
Format | Deskripsi | Byte per puncak |
---|---|---|
32_32_FLOAT |
Presisi titik mengambang penuh dua komponen | 8 |
16_16_FLOAT |
Presisi setengah titik mengambang dua komponen | 4 |
32_32_32_FLOAT |
Presisi titik mengambang penuh tiga komponen | 12 |
16_16_16_16_FLOAT |
Presisi setengah titik mengambang empat komponen | 8 |
8_8_8_8_UNSIGNED_NORMALIZED |
Byte empat komponen, dinormalisasi ke [0; 1] rentang |
4 |
8_8_8_8_SIGNED_NORMALIZED |
Byte empat komponen, dinormalisasi ke [-1; 1] rentang |
4 |
Praktik terbaik untuk perubahan format komponen
position
: Jarang sekali akurasi yang berkurang sudah cukup.16_16_16_16_FLOAT
memperkenalkan artefak kuantisasi yang nyata, bahkan untuk model kecil.normal
,tangent
, danbinormal
: Biasanya, nilai-nilai ini diubah bersama-sama. Kecuali ada artefak pencahayaan yang terlihat yang dihasilkan dari kuantisasi normal, tidak ada alasan untuk meningkatkan akurasinya. Namun, dalam beberapa kasus, komponen-komponen ini dapat diatur keNONE
:normal
,tangent
, danbinormal
hanya diperlukan ketika setidaknya satu materi dalam model harus dinyalakan. Di Azure Remote Rendering, skenario ini terjadi ketika materi PBR digunakan pada model kapan saja.tangent
danbinormal
hanya diperlukan ketika salah satu bahan yang menyala menggunakan tekstur peta normal.
texcoord0
dantexcoord1
: Koordinat tekstur dapat menggunakan pengurangan akurasi (16_16_FLOAT
) ketika nilainya tetap dalam rentang dan ketika tekstur yang ditangani[0; 1]
memiliki ukuran maksimum 2.048 × 2.048 piksel. Jika batas tersebut terlampaui, kualitas pemetaan tekstur menurun.
Contoh
Asumsikan Anda memiliki model fotogrametri, yang memiliki pencahayaan yang dimasukkan ke dalam tekstur. Semua yang diperlukan untuk merender model adalah posisi puncak dan koordinat tekstur.
Secara default, pengonversi harus mengasumsikan bahwa Anda mungkin ingin menggunakan bahan PBR pada model pada suatu waktu, sehingga menghasilkan normal
, , tangent
dan binormal
data untuk Anda. Jadi, penggunaan memori per puncak adalah position
(12 byte) + texcoord0
(8 byte) + normal
(4 byte) + tangent
(4 byte) + binormal
(4 byte) = 32 byte. Model yang lebih besar dari jenis ini dapat dengan mudah memiliki banyak jutaan simpul, menghasilkan model yang dapat memakan beberapa gigabyte memori. Data dalam jumlah besar tersebut memengaruhi performa, dan Anda bahkan mungkin kehabisan memori.
Mengetahui bahwa Anda tidak pernah memerlukan pencahayaan dinamis pada model, dan mengetahui bahwa semua koordinat tekstur berada dalam [0; 1]
rentang, Anda dapat mengatur normal
, , tangent
dan binormal
ke NONE
, dan diatur texcoord0
ke setengah presisi (16_16_FLOAT
), menghasilkan hanya 16 byte per vertex. Ketika data jala dipotong menjadi dua, Anda dapat memuat model yang lebih besar, dan performa berpotensi ditingkatkan.
Pengaturan untuk cloud titik
Saat point cloud dikonversi, hanya sebagian kecil properti dari skema yang digunakan. Properti lain diabaikan kecuali ditentukan.
Properti yang memang memiliki efek pada konversi cloud titik adalah:
scaling
: Arti yang sama seperti untuk jala segitiga.recenterToOrigin
: Arti yang sama seperti untuk jala segitiga.axis
: Arti yang sama seperti untuk jala segitiga. Nilai default adalah["+x", "+y", "+z"]
, tetapi sebagian besar data cloud titik diputar dibandingkan dengan sistem koordinat perender sendiri. Untuk mengimbangi, dalam banyak kasus["+x", "+z", "-y"]
memperbaiki rotasi.gammaToLinearVertex
: Mirip dengan jala segitiga, bendera ini menunjukkan apakah warna titik harus dikonversi dari ruang gamma ke ruang linier. Nilai default untuk format cloud titik (file E57, PLY, LAS, LAZ, dan XYZ) adalahtrue
.generateCollisionMesh
: Mirip dengan jala segitiga, untuk mendukung kueri spasial, Anda harus mengaktifkan bendera ini.
Optimalisasi memori
Konsumsi memori konten yang dimuat mungkin menjadi hambatan pada sistem penyajian. Jika payload memori menjadi terlalu besar, itu mungkin membahayakan performa penyajian atau menyebabkan model tidak dimuat sama sekali. Paragraf ini membahas beberapa strategi penting untuk mengurangi jejak memori.
Catatan
Pengoptimalan berikut berlaku untuk jala segitiga. Anda tidak dapat mengoptimalkan output cloud titik dengan mengonfigurasi pengaturan konversi.
Instancing
Dalam instancing, jala digunakan kembali untuk bagian yang memiliki transformasi spasial yang berbeda alih-alih setiap bagian mereferensikan geometri uniknya sendiri. Instancing memiliki dampak signifikan pada jejak memori.
Contoh kasus penggunaan untuk instancing adalah sekrup pada model mesin atau kursi pada model arsitektur.
Catatan
Instancing dapat meningkatkan konsumsi memori (dan dengan demikian waktu pemuatan) secara signifikan, tetapi peningkatan performa penyajian tidak signifikan.
Layanan konversi menghormati instancing jika bagian-bagian ditandai dengan sesuai dalam file sumber. Namun, konversi tidak melakukan analisis mendalam ekstra terhadap data jala untuk mengidentifikasi bagian yang dapat digunakan kembali. Alat pembuatan konten dan alur ekspornya adalah kriteria yang menentukan untuk penyiapan instancing yang tepat.
Cara sederhana untuk menguji apakah informasi instancing dipertahankan selama konversi adalah dengan melihat statistik output. Secara khusus, periksa nilainya numMeshPartsInstanced
. Jika nilai untuk numMeshPartsInstanced
lebih besar dari nol, jala dibagikan di seluruh instans.
Contoh: Penyiapan instancing di 3ds Max
Autodesk 3ds Max memiliki mode kloning objek berbeda yang disebut Salin, Instans, dan Referensi. Mode bekerja secara berbeda untuk instancing dalam file .fbx yang diekspor.
- Salin: Dalam mode ini, jala dikloning, sehingga tidak ada instancing yang digunakan ( =
numMeshPartsInstanced
0
). - Instans: Dua objek berbagi jala yang sama, sehingga instancing digunakan ( =
numMeshPartsInstanced
1
). - Referensi: Pengubah yang berbeda dapat diterapkan ke geometri, sehingga pengekspor memilih pendekatan konservatif dan tidak menggunakan instancing ( =
numMeshPartsInstanced
0
).
Mode komposisi berbasis kedalaman
Jika memori menjadi perhatian, konfigurasikan perender dengan menggunakan mode komposisi berbasis kedalaman. Dalam mode ini, muatan GPU didistribusikan ke beberapa GPU.
Kurangi ukuran vertex
Seperti yang dibahas dalam Praktik terbaik untuk perubahan format komponen, menyesuaikan format puncak dapat mengurangi jejak memori. Namun, opsi ini harus menjadi opsi terakhir yang Anda pilih.
Ukuran tekstur
Bergantung pada jenis skenario, jumlah data tekstur mungkin melebihi memori yang digunakan untuk data jala. Model fotogrametri adalah kandidat. Konfigurasi konversi tidak menyediakan cara untuk menurunkan skala tekstur secara otomatis. Jika perlu, penskalaan tekstur harus dilakukan sebagai langkah praproses sisi klien. Tetapi langkah konversi memang memilih format kompresi tekstur yang sesuai:
- Format file BC1 untuk tekstur warna buram
- Format file BC7 untuk tekstur warna sumber dengan saluran alfa
Karena format file BC7 memiliki jejak memori dua kali dari format file BC1, penting untuk memastikan bahwa tekstur input tidak menyediakan saluran alfa yang tidak perlu.
Kasus penggunaan umum
Menemukan pengaturan impor yang baik untuk kasus penggunaan tertentu bisa menjadi proses yang melelahkan. Di sisi lain, pengaturan konversi mungkin berdampak signifikan pada performa runtime.
Beberapa kelas kasus penggunaan tertentu memenuhi syarat untuk pengoptimalan tertentu. Beberapa contoh dijelaskan di bagian berikut.
Kasus penggunaan: Visualisasi arsitektur atau peta luar ruangan besar
Untuk skenario yang melibatkan visualisasi arsitektur atau peta luar ruangan besar, pertimbangkan faktor-faktor berikut:
Jenis adegan ini cenderung statis. Mereka tidak membutuhkan bagian yang dapat bergerak. Dengan demikian, Anda dapat mengatur
sceneGraphMode
kestatic
, atau bahkan kenone
, dan meningkatkan performa runtime. Dalamstatic
mode, simpul akar adegan masih dapat dipindahkan, diputar, dan diskalakan. Misalnya, dapat beralih secara dinamis antara skala 1:1 (untuk tampilan orang pertama) dan tampilan tabel atas.Jika aplikasi tidak menggunakan bidang potong,
opaqueMaterialDefaultSidedness
bendera harus dimatikan. Perolehan performa biasanya adalah 20 persen hingga 30 persen. Anda masih dapat menggunakan bidang potong, tetapi tidak akan ada wajah belakang ketika Anda melihat ke bagian dalam objek, yang tampak berlawanan. Untuk informasi selengkapnya, lihat penyajian satu sisi.
Kasus penggunaan: Model fotogrametri
Saat merender model fotogrammetri, Anda biasanya tidak memerlukan grafik adegan. Dalam skenario ini, Anda dapat memilih untuk mengatur sceneGraphMode
ke none
. Karena model-model tersebut jarang berisi grafik adegan yang kompleks, efek memilih opsi ini kemungkinan tidak signifikan. Karena pencahayaan sudah dimasukkan ke dalam tekstur, tidak diperlukan pencahayaan dinamis. Dalam skenario ini:
- Setel bendera
unlitMaterials
ketrue
untuk mengubah semua bahan menjadi bahan berwarna yang tidak menyala. - Hapus data yang tidak diperlukan dari format vertex. Lihat contoh sebelumnya.
Kasus penggunaan: Visualisasi komputer yang ringkas dan lainnya
Dalam kasus penggunaan ini, model sering memiliki tingkat detail yang tinggi dalam volume kecil. Perender sangat dioptimalkan untuk menangani kasus-kasus ini dengan baik. Namun, sebagian besar pengoptimalan yang dijelaskan dalam kasus penggunaan sebelumnya tidak berlaku di sini. Pengoptimalan meliputi:
- Bagian individual harus dapat dipilih dan dapat bergerak, jadi
sceneGraphMode
harus diatur kedynamic
. - Ray cast biasanya merupakan bagian integral dari aplikasi, sehingga mesh bentrokan harus dibuat.
- Bidang potong terlihat lebih baik ketika
opaqueMaterialDefaultSidedness
bendera diaktifkan.
Fitur yang tidak digunakan lagi
Mengatur parameter konversi model dengan menggunakan konversi khusus non-model Pengaturan.json nama file masih didukung, tetapi tidak digunakan lagi. Sebagai gantinya, gunakan modelName> khusus <model. Konversi Pengaturan.json nama file.
material-override
Menggunakan pengaturan untuk mengidentifikasi file penggantian materi dalam file pengaturan konversi masih didukung, tetapi tidak digunakan lagi. Sebagai gantinya, gunakan modelName> khusus <model. Nama file MaterialOverrides.json.