Contoh berikut menunjukkan beberapa konsep utama untuk menulis konverter OpenUSD. Sampel menggunakan OpenUSD dan OpenUSD Exchange SDK (dokumen, github) untuk menunjukkan cara membuat USD yang konsisten dan benar:
Asset Validator
createStage
createCameras
createLights
createMaterials
createMesh
createReferences
createSkeleton
createTransforms
setDisplayNames
Proyek ini membutuhkan "make" dan "g++".
Buka terminal.
Untuk mendapatkan "make" ketik sudo apt install make
(Ubuntu/Debian), atau yum install make
(CentOS/RHEL).
Untuk "g++" ketik sudo apt install g++
(Ubuntu/Debian), atau yum install gcc-c++
(CentOS/RHEL).
Gunakan skrip build yang disediakan untuk mengunduh semua dependensi lainnya (misalnya USD), buat Makefile, dan kompilasi kodenya.
./repo.sh membangun
Gunakan skrip run.sh
(misalnya ./run.sh createStage
) untuk menjalankan setiap program dengan lingkungan yang telah dikonfigurasi sebelumnya.
Tip: Jika Anda lebih suka mengelola lingkungan sendiri, tambahkan
<samplesRoot>/_build/linux64-x86_64/release
keLD_LIBRARY_PATH
Anda.
Untuk bantuan argumen baris perintah, gunakan --help
./run.sh buatStage --help
Gunakan skrip python.sh
(misalnya ./python.sh source/createStage/createStage.py
) untuk menjalankan setiap program dengan lingkungan yang telah dikonfigurasi sebelumnya.
Untuk bantuan argumen baris perintah, gunakan --help
./python.sh source/createStage/createStage.py --membantu
Proyek ini memerlukan Microsoft Visual Studio 2019 atau yang lebih baru. Unduh & instal Visual Studio dengan C++.
Gunakan skrip build yang disediakan untuk mengunduh semua dependensi (misalnya USD), membuat proyek, dan mengkompilasi kode.
.repo.bat membangun
Gunakan skrip run.bat
(misalnya .run.bat createStage
) untuk menjalankan setiap program dengan lingkungan yang telah dikonfigurasi sebelumnya.
Untuk bantuan argumen baris perintah, gunakan --help
.run.bat createStage --membantu
Gunakan skrip python.bat
(misalnya .python.bat sourcecreateStagecreateStage.py
) untuk menjalankan setiap program dengan lingkungan yang telah dikonfigurasi sebelumnya.
Untuk bantuan argumen baris perintah, gunakan --help
.python.bat sourcecreateStagecreateStage.py --membantu
Untuk membangun dalam VS IDE, buka solusi yang ditemukan di folder _compiler
di Visual Studio. Contoh kode C++ kemudian dapat diubah, di-debug, dibangun kembali, dll. dari sana.
Catatan : Jika pengguna menginstal Sampel OpenUSD Exchange ke dalam folder
%LOCALAPPDATA%
, Visual Studio tidak akan "Membangun" dengan benar ketika perubahan dilakukan karena ada yang salah dengan mengambil perubahan sumber. Lakukan salah satu hal berikut untuk mengatasi masalah ini:
Rebuild
proyek dengan setiap perubahan sumber, bukanBuild
Salin folder Sampel OpenUSD Exchange ke folder lain di luar
%LOCALAPPDATA%
Buat persimpangan ke folder di luar %LOCALAPPDATA% dan buka solusi dari sana:
mklink /JC:usd-exchange-samples %LOCALAPPDATA%cloned-reposusd-exchange-samples
Repositori Sampel menggunakan Repo Tools Framework ( repo_man
) untuk mengonfigurasi dependensi premake, packman, build dan runtime, pengujian, pemformatan, dan alat lainnya. Packman digunakan sebagai manajer ketergantungan untuk paket seperti OpenUSD, Omniverse Asset Validator, OpenUSD Exchange SDK, dan item lainnya. Sampel menggunakan alat repo_man, premake, dan packman OpenUSD Exchange SDK sebagai templat untuk menyertakan dan menautkan ke OpenUSD Exchange SDK, OpenUSD Exchange SDK, dan dependensi lainnya. Ini dapat menjadi contoh untuk konfigurasi build dan runtime yang mungkin diperlukan oleh aplikasi pelanggan. Berikut daftar file menariknya:
premake5.lua - file konfigurasi build untuk sampel
prebuild.toml - digunakan oleh alat repo build untuk menentukan di mana dependensi runtime harus disalin (di luar repo install_usdex
yang sudah diinstal)
_build/target-deps/usd-exchange/release/dev/tools/premake/usdex_build.lua
- file templat konfigurasi build premake OpenUSD Exchange SDK untuk menyertakan USD, OpenUSD Exchange SDK itu sendiri, dan pustaka lainnya.
file ini tidak tersedia sampai dependensi diambil
Untuk detail tentang memilih dan menginstal ragam, fitur, atau versi build OpenUSD Exchange SDK, lihat dokumentasi alat install_usdex.
Lihat dokumen Memulai OpenUSD Exchange SDK untuk panduan tentang cara menggunakan OpenUSD Exchange SDK dan OpenUSD di aplikasi Anda.
Sampel yang tercantum difokuskan pada konsep-konsep utama berikut:
BukaUSD
Kamera USD
Nama Tampilan USD
Lampu USD
Bahan USD
USD Jerat
Nama Primi USD
Primvar USD
Tahapan USD
USD Xbentuk
Sampel dimaksudkan untuk dijalankan secara berurutan dan akan membangun tahapan USD yang awalnya dibuat dalam sampel createStage
. Itu juga dapat dijalankan secara mandiri dan akan membuka atau membuat panggung tergantung apakah panggung itu ada. Untuk menjalankan semua sampel secara berurutan dengan satu perintah, ketik ini di baris perintah setelah pembuatan:
Linux: ./repo.sh test -f testRunAll -e keep Windows: .repo.bat test -f testRunAll -e keep
Ini akan menampilkan lokasi tahapan yang dihasilkan C++ dan Python setelah semua sampel dijalankan secara berurutan.
Jika skrip dari Sampel gagal karena masalah sertifikat yang ditandatangani sendiri, solusi yang mungkin dilakukan adalah dengan melakukan hal ini:
Instal python-certifi-win32 yang memungkinkan penyimpanan sertifikat windows digunakan untuk permintaan TLS/SSL:
toolspackmanpython.bat -m pip install python-certifi-win32 --trusted-host pypi.org --trusted-host files.pythonhosted.org
Pertama-tama cari Masalah GitHub yang ada dan Diskusi OpenUSD Exchange SDK untuk melihat apakah ada yang melaporkan hal serupa.
Jika tidak, buat Masalah GitHub atau topik forum baru yang menjelaskan bug atau permintaan fitur Anda.
Untuk bug, harap berikan langkah-langkah yang jelas untuk mereproduksi masalah tersebut, termasuk contoh data kegagalan sesuai kebutuhan.
Untuk fitur, harap berikan cerita pengguna dan detail persona (yaitu siapa yang membantu fitur ini dan bagaimana fitur ini membantu mereka).
Baik menambahkan detail pada masalah yang sudah ada atau membuat masalah baru, harap beri tahu kami perusahaan mana saja yang terkena dampaknya.
Lisensi untuk sampel terletak di LICENSE.md.
Pemberitahuan lisensi pihak ketiga untuk dependensi yang digunakan oleh sampel terdapat di Pemberitahuan Lisensi OpenUSD Exchange SDK.
OpenUSD Docs - Membuat Tahap USD Pertama Anda
Dokumen API OpenUSD
Dokumen Pengguna OpenUSD
Sumber Daya dan Pembelajaran NVIDIA OpenUSD
Contoh Kode OpenUSD
Dokumen NVIDIA OpenUSD
Dokumen SDK NVIDIA OpenUSD Exchange