Three.js: Importir IFC untuk threejs

Dibuat pada 24 Sep 2016  ·  62Komentar  ·  Sumber: mrdoob/three.js

Saya telah menulis importir ifc 2x3 untuk threejs. Ini sangat eksperimental tetapi sebagian besar objek akan dirender.

Apakah ini sesuatu yang dapat dimasukkan dalam distribusi? Harapan saya adalah seseorang akan mengembangkannya lebih lanjut dan pada akhirnya juga menambahkan dukungan untuk ifc4

Contoh ifc yang diimpor:
ifc-imported

Komentar yang paling membantu

Saya memilih PR 😊 . THREE.IFCLoader akan menjadi kontribusi yang bagus!

Semua 62 komentar

lupa menyebutkan bahwa itu tergantung pada ThreeCSG

Pernah mendengar format ini. Dimana biasanya digunakan?

Sejauh yang saya tahu, Ini digunakan terutama dalam bisnis konstruksi, pemodelan bangunan. Didukung oleh Autocad, Revit, Tekla dan Solibri untuk menyebutkan beberapa.

saya melihat saya melihat!
Untuk apa ThreeCSG diperlukan?

Sebagai contoh; objek Dinding (bentuk yang diekstrusi dalam threejs) mungkin memiliki lubang. Dan solusi termudah yang saya temukan adalah menggunakan ThreeCSG. Juga digunakan dalam kasus lain seperti IfcBooleanResult.

Tautan ke spesifikasi IfcOpeningElement:
http://www.buildingsmart-tech.org/ifc/IFC2x3/TC1/html/ifcproductextension/lexical/ifcopeningelement.htm

Anda dapat referensi di
http://www.ifcquery.com

@mrdoob , IFC adalah singkatan dari Kelas Dasar Industri dan dimaksudkan sebagai format pertukaran standar untuk proyek Model/Manajemen Informasi Bangunan (BIM). Paket perangkat lunak yang biasanya terkait dengan ini adalah Revit , ArchiCAD , VisualARQ , dan beberapa lainnya. Sementara saya menggeneralisasi, perangkat lunak BIM menyediakan jenis objek standar seperti dinding, pelat, atap, tangga, jendela, dll semua didorong oleh definisi keluarga/gaya di mana operator mendefinisikan parameter untuk objek. Oleh karena itu jika saya memiliki dinding dengan lapisan CMU, Plasterboard, dan Tile, saya dapat menentukan ketebalan semua lapisan. Saya mengubah sesuatu, saya mengubah definisi keluarga/gaya, dan semuanya diperbarui secara otomatis! Realitas tidak begitu ajaib! Ini adalah format yang kontroversial, karena setiap vendor perangkat lunak bebas bermain-main dengan definisi tentang apa yang mungkin merupakan dinding dalam impor/ekspor http://buildingsmart.org/compliance/certified-software/.
Ini adalah format yang bagus untuk didukung, dan saya berterima kasih kepada @kdilayer karena telah menyiapkannya. @johnney88 apakah pemirsa itu menggunakan threejs?

Ya, Penampil menggunakan Threejs.
File 'ifcquery.min.js' yang disimpan ditulis oleh Three.js, tetapi dikodekan.

Saya dapat mengonfirmasi bahwa ifc digunakan di ConSci. Saya sebenarnya menggunakan aplikasi konverter ifc untuk mengonversi file perusahaan saya menjadi .objs dengan file .mtl dan mereka membaca dengan sangat baik. Jadi menghilangkan perantara akan sangat membantu karena pelanggan kami cenderung mengunggah file ifc

@rhairston Aplikasi konverter ifc? Dapat mengonversi file ifc menjadi file obj sehingga Threejs dapat memuatnya dengan baik.
Apakah saya benar?

di sini adalah aplikasi konverter ifc?

Terima kasih semuanya untuk ikutan!

@kdilayer sebuah PR akan bagus. Tolong, sertakan juga ThreeCSG 😊

Ada kemajuan di sini? Kami sedang mengonversi IFC ke DAE untuk digunakan dengan three.js, dan akan senang jika three.js mendukung IFC secara langsung.

Hai kdilayer,

Saya sangat tertarik untuk melihat dan membawanya lebih jauh.

Hai semuanya,

Saya juga pernah melihatnya https://www.npmjs.com/package/ifc-convert
Dengan itu Anda dapat mengonversi IFC ke DAE, OBJ, STP, dan IGS.

@kdilayer Ada kemajuan?

@kdilayer Ada kemajuan di sini? Ini akan menghemat banyak hal jika three.js dapat mendukung format IFC secara langsung.

Tidak ada yang punya berita?

Saya mengubah editor untuk mendukung file ifc.
Beberapa tangkapan layar terlampir. Saya telah mengerjakan ini selama beberapa waktu sekarang ... saat ini saya belum melihat file IFC 2x3 yang tidak dapat dirender ... file terbesar yang saya coba adalah 180 MB ...
Luar biasa.
screen shot 2017-11-15 at 19 19 31
screen shot 2017-11-15 at 19 19 20
screen shot 2017-11-15 at 19 19 08
screen shot 2017-11-15 at 19 18 45

Hei, pekerjaan yang luar biasa!
Bisakah ini diakses langsung dari cabang master atau kode tweak untuk dukungan IFC ada di tempat lain?

Ya! Luar biasa! Bagaimana kami bisa memiliki akses ke kode loader ini? :Hai

Saya memilih PR 😊 . THREE.IFCLoader akan menjadi kontribusi yang bagus!

Kami akan menyukai fitur ini juga, untuk saat ini, saya mengonversi file IFC ke obj dengan https://github.com/IfcOpenShell/IfcOpenShell , tetapi beberapa geometri yang lebih rumit masih belum diuraikan, jadi terkadang objeknya, bukan 100 % menyelesaikan.

Hai, Saya ingin tahu apakah Anda bisa mendapatkan beberapa hal rumit seperti pintu dan transparansi dengan jendela yang dimuat di penampil dan pemuat Anda. Itu terlihat luar biasa sejauh ini! Saya ingin tahu apakah Anda berencana mengeluarkan versi ini dalam waktu dekat.

Semoga berhasil!, Terima kasih telah memperbarui.

Hai @kdilayer , bisakah kami memiliki akses ke aplikasi Anda?

Saya tertarik untuk melihat perbedaan ukuran file antara format .ifc dan three.js.

Terima kasih!

@Foosballfan Saya pikir IFC bukan format yang menarik untuk ukurannya, karena sangat bertele-tele. Ini hanya format pertukaran untuk perangkat lunak arsitektur seperti AutoDesk.
Ini adalah standar BIM. (tanyakan ke google istilah yang terkenal dengan profesi seperti ini)

@jean-noelp Terima kasih atas jawabannya.

Saya memiliki file ifc untuk bangunan berukuran 34MB dan saya mencoba menampilkan data ini di web dengan ukuran unduhan sekecil mungkin.

Dengan Unity WebGL saya bisa menurunkannya menjadi sekitar 11MB tetapi ingin melihat apakah mungkin dengan WebGL yang lebih murni menggunakan Three.js. Semoga saya dapat mencapai ukuran unduhan yang lebih kecil lagi.

Apakah Anda punya pengalaman dengan situasi serupa?

@Foosballfan untuk memperkecil ukuran file, langkah-langkah yang akan saya coba adalah:

  1. ubah ke OBJ
  2. jalankan melalui obj-simplify
  3. kompres OBJ dengan Draco
  4. muat dengan THREE.DRACOLloader

Jika file tidak dapat dikonversi ke OBJ atau format lain, mungkin tidak banyak yang dapat Anda lakukan selain menyederhanakan model atau menggunakan gzip... "WebGL murni menggunakan three.js" adalah cara merender file, tetapi Anda masih harus menggunakan beberapa format atau lainnya untuk memuat file terlebih dahulu.

@donmccurdy Kelihatannya bagus, terima kasih!

Saya akan mencobanya dan melihat bagaimana hasilnya.

Saya awalnya menyerah pada obj karena yang saya buat adalah 220MB dari file 34MB.

Menutup masalah karena @kdilayer jelas tidak mau membagikan implementasinya. Saya telah menambahkan IFCLoader sebagai tugas ke daftar keinginan pemuat di #5524.

Selama tidak ada IFCLoader , coba konversi file IFC ke format lain seperti OBJ . Sepertinya alat berikut dapat melakukan konversi ini: http://ifcopenshell.org/ifcobj.html

Lihat juga https://github.com/IfcOpenShell/IfcOpenShell

@Foosballfan : IFC adalah cara paling efisien untuk mengompresi geometri. Masalahnya adalah, pendekatan prosedural yang diperlukan untuk membuatnya tidak benar-benar kompatibel dengan segitiga. IFC 34MB dapat dengan mudah mengekstrak ke aliran segitiga 4GB. IFC menggambarkan pipa siku hanya dengan 4 simpul, tetapi akan membutuhkan ratusan segitiga untuk merendernya. Sekali melihat rendering OP, dan saya tahu tidak ada sendok. Tentu, dia bisa membuat garis lurus dan bentuk toroidal satu sumbu. Namun, spesifikasi IFC mencakup definisi permukaan yang disapu oleh dua splines bezier. Jadi, ini adalah 8 simpul 3D yang mendefinisikan rangkaian segitiga yang praktis tak terbatas. Arsitek menyukai alat itu, tetapi bahkan merender representasi 2D di komputer pun bermasalah, karena rumusnya tidak mengizinkan pendekatan f(x) = y .
Di sini, lihat spesifikasi resmi IFC: http://www.buildingsmart-tech.org/ifc/IFC4/final/html/schema/ifcgeometryresource/lexical/ifcbsplinesurface.htm

@kdilayer apakah anda masih aktif di github ? apakah Anda ingin membagikan implementasi Anda? :ok_hand: Terima kasih!

Pendekatan yang saya pilih adalah menggunakan BimServer untuk streaming data IFC biner dan kemudian membangunnya di ThreeJS. Ukuran unduhan melalui soket web memuaskan dan saya memiliki kendali penuh atas model di Tiga.

Anda dapat melihat cara kerja BimViewer sebagai titik awal.

ada jawaban?

@Joao-b4 Bagaimana?

tentang kemungkinan pemuat IFC

Ah, saya kira terserah @kdilayer...

Saya percaya bahwa @kdilayer tidak akan memiliki apa-apa, karena sudah 3 tahun sejak publikasi dan tidak ada tanggapan, atau aktivitas di profilnya.
Saya tidak mengerti cara kerja pembuatan loader, dan saya memiliki sedikit pengetahuan di perpustakaan, saya bekerja dengannya beberapa waktu yang lalu, saya akan memiliki beberapa tautan untuk membuat pemuat, saya bisa mendapatkan disposisi dan pengetahuan yang cukup di masa depan.

Saya telah menguraikan di sini perancah dasar THREE.IFCLoader . Bagian tersulit saat menulis loader adalah untuk benar-benar memahami format 3D masing-masing. Hanya dengan demikian Anda dapat mengurai format dan mengubah geometri dan/atau data material menjadi entitas three.js (misalnya THREE.BufferGeometry ). Saya sarankan untuk mempelajari loader yang kurang lebih sederhana seperti THREE.PLYLoader untuk memahami proses ini. Dan tentu saja standar IFC (https://www.iso.org/standard/51622.html)

terima kasih, pemuat ifc akan sangat berguna, dan saya membutuhkannya sekarang, saya menggunakan apa yang mereka sebutkan di atas, untuk mengonversi ke OBJ, tetapi saya pikir itu bukan cara terbaik

Ini 1,5 tahun yang lalu jadi memori saya berkarat tapi saya yakin solusi kami adalah menggunakan server bim untuk mengirimkan geometri dari server dan kemudian menggunakan Tiga di ujung depan untuk menangani rendering.

Butuh sedikit bermain-main tetapi akhirnya berhasil.

IfcConvert adalah IfcConverter untuk Node.js. Itu mengkonversi dari .ifc ke .dae, .obj, .stp dan .igs. Saya belum mencobanya, tetapi jika berfungsi seperti yang dijelaskan, saya kira kita tidak memerlukan pemuat .ifc lagi di Three.js, bukan?
.ifc berisi lebih banyak informasi daripada hanya model 3D, tetapi sejauh menyangkut Three.js, hanya model 3D yang harus diimpor.
Untuk eksportir, ini akan berbeda, karena seseorang mungkin ingin mengekspor perpustakaan BIM-nya sendiri dalam file .ifc, di samping model 3D yang sebenarnya diekspor.
Apakah masuk akal ?

Masih menarik untuk langsung memuat IFC ke dalam browser tanpa memerlukan alat konversi terpisah. Namun, alat node.js yang disebutkan hanyalah pembungkus IfcOpenShell . Jadi itu tidak melakukan sesuatu yang benar-benar baru ...

Saya pikir alur kerja impor melalui IfcConverter bisa bagus!

Sebaliknya, ekspor ifc tidak masuk akal bagi saya, karena Anda kehilangan setiap data ifc yang relevan (komponen arsitektur, pemangku kepentingan BIM...) dalam penampil lambda Three.js, kecuali untuk membangun Editor Ifc dengan Three.js .

@Mugen87 Nah, nilai tambah utama adalah paket Node, sepengetahuan saya IfcOpenShell online alat CLI.

@jean-noelp Anda benar. Saya tidak bermaksud mengekspor "file .ifc master", melainkan "file .ifc perpustakaan" yang dapat diimpor oleh pemangku kepentingan BIM dalam "file .ifc master" mereka sendiri. Misalnya Anda adalah produsen pintu garasi, gunakan Three.js untuk merencanakan instalasi untuk klien Anda (arsitek, misalnya) dan ekspor perpustakaan BIM yang berisi objek BIM Anda (biasanya pintu garasi). Anda melihat apa yang saya maksud? Tapi bagaimanapun, tidak akan ada cara untuk membuat eksportir ini dibangun di Three.js karena setiap kasus penggunaan tertentu terlalu spesifik (saya kira).

Saya menemukan ALAT, IFC dapat diselesaikan,
Ini tidak gratis
Tetapi parsing struktur IFC gratis dan open source
http://www.apstex.com/

Assalamu'alaikum, belum ada kabar dari @kdilayer kan? dia tidak pernah merilis kode sumbernya?

?

------------------ Pesan aslinya ------------------
Dari: "Daniel Ramos"< [email protected]>;
Waktu pengiriman: 28 Mei 2020 (Kamis) 22:08
Kepada: "mrdoob/three.js"[email protected]>;
Cc: " Tinggalkan jaring ikan"< [email protected]>;
Perihal: Re: [mrdoob/three.js] importir IFC untuk threejs (#9764)

Assalamu'alaikum, belum ada kabar dari @kdilayer kan? dia tidak pernah merilis source code-nya?


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub, atau berhenti berlangganan.

ada berita tentang ini?

Hai! Beberapa hari yang lalu saya mulai mengimplementasikan parser IFC di JS dengan ide untuk menerapkannya ke Three.js. Ini adalah proyek pribadi yang saya lakukan di waktu luang saya, jadi saya tidak tahu pasti berapa lama. Namun, saya melihat utas ini hari ini dan menurut Anda mungkin menarik. Anda dapat menemukannya di sini .

@agviegas menantikan apa yang Anda lakukan dengannya! PR bisa sangat diterima

Memang! @agviegas kami mungkin mendapatkan lebih banyak orang yang membantu jika Anda melakukan PR dengannya 😍

Sayangnya saya tidak dapat merilis pekerjaan saya di ifcimporter, tetapi saya dapat membantu @agviegas

@mrdoob Kedengarannya bagus. Saya masih mengerjakan fungsionalitas inti parser; itu sudah dapat memuat semua elemen struktur spasial dan saya akan segera mulai membangun geometri. Saya kira kodenya juga perlu disesuaikan dengan ini sebelum melakukan PR. Apakah ada referensi yang harus diperiksa untuk menyiapkan kode untuk PR? Kami dapat melakukan ini kapan pun Anda mau. Setiap bantuan mengenai hal ini akan disambut.

Di sisi lain, format IFC sangat mudah diterapkan, meskipun bisa sedikit menakutkan karena kerasnya dokumentasi resmi. Saya rasa saya tahu format IFC dengan cukup baik, jadi jika ada yang tertarik untuk berpartisipasi, kami pasti bisa mempersiapkannya lebih cepat. 🙂

Captura

Saya kira kodenya juga perlu disesuaikan dengan ini sebelum melakukan PR.

Ya, itu harus menggunakan antarmuka yang sama dengan yang digunakan pemuat lain. Mungkin MD2Loader adalah referensi yang lebih sederhana saat ini.

Jangan khawatir tentang memiliki segalanya sempurna untuk PR. Anda dapat mengirimkan apa yang Anda miliki sebagai draf dan kami dapat membantu memastikan kode sesuai dengan yang lain.

Setelah beberapa tersandung dan berjuang dengan format sudah ada beberapa hasil. Saya telah mengimplementasikan versi pertama dari parser, serta beberapa entitas geometris (termasuk ekstrusi dan b-repetisi). Masih banyak yang harus dilakukan, tetapi saya senang dengan hasilnya sejauh ini. Gambar di bawah ini menunjukkan IFC kecil yang dihasilkan oleh Revit berjalan dengan lancar di Chrome. Setiap instance geometris memiliki informasi IFC yang diurai terkait (sebenarnya, dalam adegan di bawah setiap instance memiliki materi tergantung pada kategori / ifcclass), jadi membuat filter menggunakan nilai properti (Psets dan Qsets) seharusnya tidak sulit untuk diarsipkan dari titik ini . Setiap ide atau saran disambut. 🙂

20201124_screenshot

@agviegas Luar biasa!

@agviegas Bagus sekali!

Adapun ide untuk manajemen properti. Bagaimana Anda menyimpan ini sekarang? Sama seperti userData pada jerat atau geometri saya kira?

Sebagian besar pelanggan kami menggunakan perangkat lunak seperti HiCad atau ArchiCAD untuk pemodelan mereka dan mereka menyimpan BANYAK informasi yang sangat penting bagi pekerja konstruksi (densitas termal, hambatan angin, pengukuran, bobot, dll. dll.).

Saya juga sangat ingin tahu tentang kecepatan parsing/loading. Model yang saya uji implementasinya membutuhkan waktu sekitar 5 detik untuk diuraikan, tetapi untuk menghasilkan geometri, prosesnya membutuhkan waktu hampir 2 menit untuk mengonversi ke model DAE. (Saya mengonversinya dari sisi server karena kurangnya waktu dan pengalaman di pihak saya :sweat_smile:, itulah sebabnya saya sangat senang pemuat ini bekerja 'asli')

@haroldiedema Saya belum mengimplementasikan set properti, tetapi struktur data saat ini terdiri dari objek JS di mana kuncinya adalah ID ekspres dan nilainya adalah objek parsing yang dimuat dalam memori. Setiap properti yang merupakan ID ekspres diganti dengan referensi ke objek dengan ID tersebut. Dalam implementasi saat ini, setiap instance _IfcProduct_ dengan satu atau lebih representasi geometris memiliki properti tambahan yang disebut _Geometry_ , yang merupakan larik referensi ke geometri adegan. Misalnya, setiap _IfcWallStandardCase_ memiliki properti _Geometry_ dengan referensi ke _Path_ (a Line ) a ke _Body_ (a Mesh ).

Mungkin setiap instance geometris Three.js akan memiliki properti yang berisi ID ekspres, jadi menemukan kembali entitas ifc yang dimuat dalam memori (dan informasi terkait) akan mudah (fe saat mengklik jerat di adegan).

Sedangkan untuk properti yang ditentukan pengguna, akan ada satu atau lebih _IfcRelDefinesByProperties_ (atau objek hubungan tidak langsung lainnya) untuk mengikat semuanya dengan saya. Mungkin setiap instance IfcProduct dapat memiliki atribut _hasPropertySets_ yang akan berisi larik kumpulan properti yang diurai terkait (saya telah melihat pola ini di pustaka IFC lainnya, dan inilah yang saya lakukan dengan hubungan tidak langsung lainnya seperti _IfcRelAggregates_). Saya tidak khawatir tentang jumlah properti karena mereka akan terstruktur menurut IFC, tetapi mari kita lihat bagaimana kelanjutannya ketika saya sampai di sana. 😅

Saya membuat semuanya dari sisi klien, dan saat ini penguraian membutuhkan waktu kurang dari satu detik dan generasi geometris dari adegan terakhir ditampilkan sekitar 4 detik. Saya sadar bahwa dengan file yang lebih besar kali ini akan meningkat; namun, saya berharap dapat mengoptimalkan sistem ketika saya telah membahas lebih banyak entitas IFC dan dapat memuat IFC dari proyek nyata. Saya akan memperluas dokumen _CONTRIBUTING_, jika ada yang ingin menggali semua ini.

@agviegas kedengarannya luar biasa!

Saya telah mencoba mengkloning cabang utama repo Anda untuk menguji beberapa model pelanggan kami, tetapi sayangnya setiap model menghasilkan kesalahan di konsol tentang _ExpressId tidak terdefinisi (tidak semua model 100% koheren dalam hal referensi catatan yang benar-benar ada). Saya pikir beberapa perangkat lunak CAD tidak membersihkan referensi dengan baik ke properti yang dihapus.

Saya dapat berbagi beberapa model ini dengan Anda, tetapi kita harus melakukannya secara pribadi. Anda dapat menghubungi saya di [email protected] jika Anda tertarik dengan beberapa kasus uji model yang diekspor dengan ArchiCAD atau HiCAD.

@haroldiedema Saya belum mengimplementasikan set properti, tetapi struktur data saat ini terdiri dari objek JS di mana kuncinya adalah ID ekspres dan nilainya adalah objek parsing yang dimuat dalam memori. Setiap properti yang merupakan ID ekspres diganti dengan referensi ke objek dengan ID tersebut. Dalam implementasi saat ini, setiap instance _IfcProduct_ dengan satu atau lebih representasi geometris memiliki properti tambahan yang disebut _Geometry_ , yang merupakan larik referensi ke geometri adegan. Misalnya, setiap _IfcWallStandardCase_ memiliki properti _Geometry_ dengan referensi ke _Path_ (a Line ) a ke _Body_ (a Mesh ).

Mungkin setiap instance geometris Three.js akan memiliki properti yang berisi ID ekspres, jadi menemukan kembali entitas ifc yang dimuat dalam memori (dan informasi terkait) akan mudah (fe saat mengklik jerat di adegan).

Sedangkan untuk properti yang ditentukan pengguna, akan ada satu atau lebih _IfcRelDefinesByProperties_ (atau objek hubungan tidak langsung lainnya) untuk mengikat semuanya dengan saya. Mungkin setiap instance IfcProduct dapat memiliki atribut _hasPropertySets_ yang akan berisi larik kumpulan properti yang diurai terkait (saya telah melihat pola ini di pustaka IFC lainnya, dan inilah yang saya lakukan dengan hubungan tidak langsung lainnya seperti _IfcRelAggregates_). Saya tidak khawatir tentang jumlah properti karena mereka akan terstruktur menurut IFC, tetapi mari kita lihat bagaimana kelanjutannya ketika saya sampai di sana. 😅

Saya membuat semuanya dari sisi klien, dan saat ini penguraian membutuhkan waktu kurang dari satu detik dan generasi geometris dari adegan terakhir ditampilkan sekitar 4 detik. Saya sadar bahwa dengan file yang lebih besar kali ini akan meningkat; namun, saya berharap dapat mengoptimalkan sistem ketika saya telah membahas lebih banyak entitas IFC dan dapat memuat IFC dari proyek nyata. Saya akan memperluas dokumen _CONTRIBUTING_, jika ada yang ingin menggali semua ini.

Mengurai User Defined IFC Property Sets sangat mudah. Saya memiliki repo yang melakukan itu. Parser saya tidak secanggih milik Anda.

Namun, saya perhatikan bahwa beberapa properti cenderung merusak parser. Saya belum pernah menggunakan chevrotain , jadi saya tidak yakin bagaimana kode Anda akan bertahan. Saya telah menulis lebih banyak tentang masalah ini di sini . Semoga dapat bermanfaat bagi Anda.

Bagaimanapun, pekerjaan yang sangat bagus sejauh ini! 👍

Pembaruan: Saya telah menerapkan aplikasi di halaman Github untuk pengujian pengguna yang lebih mudah di seluruh pengembangan. Ini termasuk navigasi responsif untuk dukungan seluler dan tablet. Selain itu, di sini Anda dapat menemukan penerapan alternatif yang memuat model IFC saat startup; logika untuk menghapus adegan dan menambahkan beberapa IFC belum diterapkan, tetapi setidaknya Anda dapat melihat tampilan navigasinya. Parsing dibuat oleh klien, sehingga waktu pemuatan tergantung pada perangkat yang digunakan. Laptop saya membuatnya dalam waktu sekitar 5 detik, sedangkan Moto G5 Plus saya membutuhkan sekitar 50 detik untuk adegan ini. Masih ada kelas yang harus diterapkan sebelum memuat proyek penuh, tetapi jangan ragu untuk mengirimi saya IFC apa pun untuk menambahkannya ke file pengujian.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat