GitHu b-AB4D/ES: Sampel untuk mesin (mesin rendering 3D lintas platform)

Simpan pencarian

Use saved searches to filter your results more quickly

Buat pencarian disimpan yang dibatalkan Masu k-Up Focus Reset

Masuk dengan tab atau jendela lain. Muat ulang dan perbarui sesi. Keluar di tab atau jendela lain. Muat ulang dan perbarui sesi. Saya beralih akun saya di tab atau jendela lain. Muat ulang dan perbarui sesi.

AB4D. Sharpengine (Cros s-Platform 3D Rendering Engine) Sampel

Anda perlu masuk untuk mengubah pengaturan pemberitahuan pemberitahuan.

AB4D/AB4D. Sharpengine. Samples

Komit ini bukan milik brunch apa pun di repositori ini, dan mungkin milik garpu di luar repositori.

utama Pindah ke file kode

Folders and files

nama nama

Pesan komit akhir Hari komit terakhir

Latest commit

History

Tampilkan semua file

Repository files navigation

AB4D. Sharpengine

Selamat datang di sampel AB4D. Sharpengine. AB4D. Sharpengine adalah mesin rendering 3D berdasarkan vulka n-based cros s-splatforms untuk aplikasi . NET. Vulkan mirip dengan DirectX 12, tetapi merupakan grafik kinerja tinggi dan API cros s-splatform yang dapat dijalankan pada banyak platform. Versi saat ini mendukung fungs i-fungsi berikut:

  • Gunakan sistem koordinat apa pun (y-up atau z-up, searah jarum jam atau berlawanan arah jarum jam)
  • Banyak objek scenenode (kotak, bola, datar, kerucut, garis, garis poli, kurva, dll.)
  • InstancedMeshNode objek
  • Kamera: TargetPusionCamera, Kamer a-erer pertama, Kamera Gratis, Matrixcamera
  • Pengontrol kamera dengan rotasi, zooming ke posisi, dan fungsi canggih lainnya berpusat pada posisi mouse
  • Cahaya ambient cahaya, lampu langsung, titik lampu, lampu sorot, lampu kamera
  • Efek StandardEffect, SolidColoreffect, VertexColoreffect, teballefleffect
  • Readerobj yang membaca model 3D dari file OBJ
  • Gunakan ab4d. shurpengine. gltf untuk mengimpor objek 3D dari file GLTF dan mengekspor adegan ke file GLTF.
  • Gunakan pustaka bagian ketiga untuk mengimpor model 3D dari hampir semua format file

Platforms and UI frameworks:

Windows:

  • Dukungan untuk AvaloniaUi dengan Kontrol SharpEnginesceneview (AB4D. SHURPENGINE. AVALONIAUI PERPUSTAKAAN)
  • Dukungan konstan penuh WPF (AB4D. Sharpengine. wpf Library) dengan Kontrol SharpEnginesceneview
  • Dukungan Winui 3 dengan SharpEngineSceneview Control (AB4D. Sharpengine. winui Library)
  • Dukungan WinForms (AB4D. Sharpengine. winforms Library) dengan Kontrol SharpEnginesceneview
  • Penggunaan SDL atau GLFW (menggunakan perpustakaan silk. net ketiga)
  • Maui

Linux (termasuk perangkat yang sama dengan Raspberry Pi 4):

  • Dukungan untuk AvaloniaUi dengan Kontrol SharpEnginesceneview (AB4D. SHURPENGINE. AVALONIAUI PERPUSTAKAAN)
  • Penggunaan SDL atau GLFW (menggunakan perpustakaan silk. net ketiga)
  • Of f-screen Rendering (FBDEV atau DRM/KMS) dikombinasikan dengan tampilan buffer bingkai Linux.
  • Lihat Panduan Raspberry Pi 4 Raspberry untuk cara menggunakan SharpEngine menggunakan monitor eksternal di Raspberry Pi 4.

Untuk Android

  • Gunakan Avaloniaui untuk Kontrol Sharpenginesceneview (AB4D. Sharpengine. AvaloniaUi Perpustakaan).
  • Gunakan SurfaceView di aplikasi C# Android
  • Penggunaan SDL (menggunakan Perpustakaan Silk. NET Pihak Ketiga)
  • Maui

MacOS:

  • Gunakan Avaloniaui untuk Kontrol Sharpenginesceneview (AB4D. Shurpengine. AvaloniaUi Perpustakaan). Diperlukan Perpustakaan MoltenVK.
  • Gunakan Mau i-Moltenvk Library Diperluka n-Lihat macOS dan iOS berikut.

iOS:

  • Kontrol Avaloniaui dan Sharpenginesceneview (AB4D. Sharpengine. AvaloniaUi Perpustakaan). Perpustakaan Moltenvk diperluka n-Refer untuk macOS dan iOS berikut.
  • Untuk menggunakan Maui, Anda memerlukan perpustakaan . net 8 dan Moltenvk.

Dependencies:

  • Tidak ada ketergantungan eksternal pada inti AB4D. Shurpengine Library.
  • AB4D. Sharpengine. wpf tidak memiliki ketergantungan eksternal.
  • AB4D. Sharpengine. winui tidak memiliki ketergantungan eksternal.
  • AB4D. Sharpengine. winforms tidak memiliki ketergantungan eksternal.
  • AB4D. SHARPENGINE. AVALONIAUI Perpustakaan membutuhkan perpustakaan Avalonia.
  • AB4D. Sharpengine. gltf. net diperlukan.

System requirements to run the samples:

  • Saya membutuhkan . net 6. 0+.
  • Untuk menggunakan Maui, Anda membutuhkan . NET 8. 0.

System requirements to open the sample projects:

  • Windows Visual Studio 2022 (vs 2019 tidak mendukung . NET 6)
  • Pengendara dari JetBrains di Windows, Linux, dan MacOS
  • Windows, Linux, MacOS Visual Studio Code

Notice:

AB4D. Sharpengine. gltf Perpustakaan digunakan dalam kode sumber GLTF2Loader di ZingBallyhoo PR (Khronosgroup/GLTF-CSharp-Loader#51). Perpustakaan GLTF2Loader diterbitkan dalam lisensi MIT berikut:

Lisensi ini adalah untuk C#Reference Loader, bukan untuk bagian lain dari repositori.

Hak Cipta (C) 2015, Matthew dan Xueru McMullan semua hak dilindungi undan g-undang.

Redistribusi dan penggunaan dalam format sumber dan biner, terlepas dari perubahan, diizinkan hanya saat memenuhi ketentuan berikut:

Mendistribusikan kembali kode sumber harus mempertahankan tampilan hak cipta di atas, daftar kondisi ini, dan penafian berikut.

Didistribusikan ulang dalam format biner harus digandakan ke label hak cipta yang disebutkan di atas, kondisi berikut, dan klausul pengungkapan berikut, bersama dengan distribusi dan/ atau bahan lainnya.

Perangkat lunak ini disediakan “sebagaimana adanya” oleh pemilik hak cipta dan kontributor, termasuk jaminan implisit produktivitas dan kesesuaian dengan tujuan tertentu, tetapi tidak terbatas pada ini, ditolak garansi eksplisit atau imajiner. Dalam kasus apa pun, hak cipta atau kontributor, secara langsung, tidak langsung, tidak langsung, tidak disengaja, khusus, hukuman, atau kerusakan hasil (pengadaan barang atau layanan alternatif, atau layanan) tentang penggunaan, data, kehilangan laba, atau gangguan bisnis , tidak terbatas pada ini), bahkan jika itu diberitahu tentang kerusakan seperti itu, itu adalah tanggung jawab yang ketat, atau gugatan (kelalaian (kelalaian)). Atau, termasuk yang lain) tidak akan bertanggung jawab atas teori tanggung jawab apa pun.

Sample solutions

Solusi Visual Studio berikut tersedia:

  • AB4D. Sharpengine. samples. AvaloniaUi Sampel ini menawarkan model objek seperti WPF untuk membangun kontrol UI pada Windows, Linux, dan MacOS (https://avaloniaui. ne. ne. Gunakan T/) saya melakukannya. Sampel ini menggunakan perpustakaan AB4D. Sharpengine. AvaloniaUi yang menyediakan kontrol Sharpenginesceneview. Sharpenginesceneview menyediakan kontrol Avalonia yang sangat mudah digunakan dan dapat mensintesis adegan 3D dan objek Avalonia UI (misalnya, menampilkan tombol pada adegan 3D). Sampel ini dapat diluncurkan pada Windows, Linux, dan MacOS (gunakan solusi khusus macOS). Lihat juga bagian “Bangunan untuk MacOS dan iOS” untuk metode kompilasi untuk macOS.
  • AB4D. Sharpengine. AvaloniaUi. vulkanbackend Sampel ini menggunakan vulkan UI untuk backends, sehingga seluruh aplikasi menggunakan vulkan API bukan ectx atau opengl rendering dengan vulkan). Backend Vulkan diatur dalam file Program. cs. Ini memberikan integrasi optimal grafik UI dan 3D 2D. Ini membutuhkan Avalonia V11. 1, yang saat ini merupakan versi kandidat dari rilis (2024-07-05). Untuk alasan ini, proyek menggunakan AB4D. Sharpengine. samples. avaloniaUi v2. 0. 8953-rc1 versi. Ketika versi Avalonia dirilis, AB4D. Sharpengine. samples. AvaloniaUi baru perpustakaan akan dirilis. Sampel ini hanya berfungsi pada windows.
  • AB4D. Sharpengine. samples. avaloniaui. crossplatform sampel ini memperkenalkan cara membuat aplikasi Avalonia yang berjalan di Windows, Android, dan iOS. Sampel ini menggunakan perpustakaan AB4D. Sharpengine. AvaloniaUi yang menyediakan kontrol Sharpenginesceneview. Karena Vulkan bukan dukungan asli di MacOS dan iOS, perpustakaan MoltenVK diminta untuk mengubah panggilan Vulkan menjadi panggilan API cair. Untuk metode kompilasi untuk ISO, lihat bagian “Bangunan untuk MacOS dan iOS”. Perhatikan bahwa nama folder dan file dari solusi ini telah dipersingkat untuk mencegah masalah ukuran jalur maksimum Windows (260 karakter).
  • AB4D. Sharpengine. sample. wpf Solusi ini adalah sampel untuk WPF dan hanya dapat dieksekusi pada Windows. Sampel juga menggunakan perpustakaan AB4D. Sharpengine. wpf yang menyediakan kontrol Sharpenginesceneview untuk WPF. SharpEngineSceNeview menyediakan kontrol WPF yang sangat muda h-untuk menggunakan adegan 3D dengan objek WPF (misalnya, menampilkan tombol pada adegan 3D).
  • AB4D. Sharpengine. sample. winui Sampel ini menggunakan WinUI 3. 0, yang menawarkan teknologi UI terbaru untuk membuat aplikasi Windows. Sampel ini menggunakan perpustakaan AB4D. Sharpengine. winui yang menawarkan kontrol Sharpenginesceneview. SharpEngineScenEview menyediakan kontrol Winui yang sangat muda h-untuk yang dapat mensintesis adegan 3D dan objek Winui UI (misalnya, tombol tampilan pada adegan 3D).
  • AB4D. Sharpengine. samples. Winforms Solusi ini adalah sampel untuk WinForms dan hanya dapat dieksekusi di Windows. Sampel juga menggunakan perpustakaan AB4D. Sharpengine. Winforms yang menyediakan kontrol SharpEnginesceneview untuk WinForms. SharpEngineScenEview menyediakan kontrol WinForms yang sangat mudah digunakan dan dapat mensintesis adegan 3D dengan kontrol UI lainnya (misalnya, tombol tampilan pada adegan 3D).
  • AB4D. Sharpengine. Sampletform Sampel ini menggunakan perpustakaan silk. net yang ketiga yang mendukung SDL dan GLFW. SDL dan GLFW digunakan untuk mendapatkan metode yang tidak bergantung pada platform untuk membuat jendela dan tampilan. Adegan 3D di sini ditampilkan di seluruh area jendela. Proyek ini berfungsi di Windows dan Linux.
  • AB4D. Sharpengine. android. generic Solusi ini mirip dengan AB4D. Sharpengine. samples. crossplatform untuk menggunakan pustaka silk. net. Untuk beroperasi di Android, kode yang menginisialisasi SharpEngine dan mendefinisikan adegan 3D sama dengan platform lain, tetapi diperlukan kode startup khusus untuk membuat aktivitas Android. Di sini, adegan 3D ditampilkan di seluruh area tampilan.
  • AB4D. Sharpengine. samples. android. Application Solusi ini menggunakan Templat Proyek Android. Adegan 3D ditampilkan di bagian tampilan yang ditentukan dalam Surfaceview.
  • AB4D. Sharpengine. samples. maui Solusi ini berfungsi pada Windows, Android, MacOS, dan iOS menggunakan . NET Maui. Untuk menyusun untuk Windows, Android, dan MacOS, Anda memerlukan . NET 8. Karena Vulkan bukan dukungan asli di MacOS dan iOS, perpustakaan MoltenVK diminta untuk mengubah panggilan Vulkan menjadi panggilan API cair. Untuk informasi lebih lanjut tentang metode kompilasi untuk macOS dan iOS, lihat bagian MacOS dan iOS Builds.
  • AB4D. Sharpengine. linuxframeBuffer Solusi ini digunakan dalam SharpEngine di renderer vulekan of f-screen, dan menampilkan bingkai yang diberikan dalam gaun buffy bingkai Linux (FBDEV atau DRM/KMS). Untuk informasi lebih lanjut, lihat ReadMe dalam sampel.

Quick Start

Objek utama Sharpengine adalah sebagai berikut:

  • Objek adegan yang mendefinisikan adegan 3D pada hierarki objek 3D yang ditambahkan ke objek rootnode. Ini juga mendefinisikan koleksi lampu.
  • Objek Sceneview digunakan untuk menampilkan objek yang ditentukan oleh objek pemandangan. Sceneview juga mendefinisikan kamera dan memberikan ukuran tampilan.

Jika Anda menggunakan WPF, Avalonia, Winui, dan WinForms, Scene dan Sceneview dibuat oleh SharpEngineScenEview Control.

Objek 3D didefinisikan dalam namespaces scenenodes, misalnya, boxmodelnode, spheremodelnode, linenode, meshmodelnode, dll.

Bahan umum didefinisikan menggunakan objek material standar. Misalnya, StandardMaterials. blue.

Gunakan ReaderObj untuk membaca model 3D dari file OBJ. Gunakan assimmporter untuk membaca model 3D dari format file lain.

Migration guide for Ab3d.PowerToys and Ab3d.DXEngine users

AB4D. Sharpengine dibuat dalam konsep yang sama dengan AB3D. Powertoys dan AB3D. DXEngine Library. Oleh karena itu, kedua pengguna perpustakaan ini akan merasa sangat akrab. Tetapi ada beberapa perbedaan utama:

WPF, Avalonia, Winui, WinForms Perpustakaan Khusus (AB4D. Sharpengine. wpf, AB4D. Sharpengine. wpf, AB4D. Sharpengine. wpf. Ada UI, ab4d. sharpengine. winforms). Kelas ini menyembunyikan perbedaan antara platform ini di bawah kap dan menyediakan API yang sama untuk semua platform. Selain itu, kelas ini menginisialisasi mesin dengan membuat vulkandevice. Dua properti utama SharpEngenEview adalah adegan dan sceneview. Adegan digunakan untuk mendefinisikan adegan dengan menambahkan scenenodes ke scene. rootnode (seperti viewport3d. children WPF) dan menambahkan lampu ke koleksi adegan. Sceneview mendefinisikan tampilan adegan dan menyediakan kamera yang diatur di properti Sceneview. camera. Saat bekerja dengan SharpEngineScenEview, 100%kode yang menampilkan grafik 3D adalah sama untuk WPF, Avalonia, Winui, dan WinForms. Platform lain dan kerangka kerja UI memerlukan kode pengaturan khusus untuk setiap platform. Tetapi kode selanjutnya adalah sama terlepas dari platform. Lihat sampel untuk detailnya.

Perbedaan lainnya

Objek lain yang berasal dari BoxVisual3D, Spherevisual3D, dan Basevisual3D didefinisikan dalam AB4D. Sharpengine. scenenodes (misalnya, BoxVisual3D & gt; elnode; spherevisual3d = & gt; spheremodelnode).

GeometryModel3D dengan WPF 3D kustom meshgeometry3D sekarang didefinisikan dalam meshmodelnode dan standardmesh (lihat meshmodelnodesample). Mesh untuk objek standar (kotak, bola, kerucut, dll.) Dapat dibuat menggunakan meshes. meshfactory.

Kamera dan cahaya hampir sama dengan AB3D. Powertoys. Kamera termasuk TargetPusionCamera, FirstPersonCamera, Freecamera, Matrixcamera, dan propertinya sama dengan AB3D. Powertoys. Juga, lampu (DirectionAllight, Pointlight, Spotlight, Ambientlight) sama dengan AB3D. Powertoys.

Mousecameracontroller untuk WPF, Avalonia, dan Winui hampir sama dengan AB3D. Powertoys. Android dapat menggunakan AndroidCamerAcontroller. Di platform lain, Anda dapat menggunakan manualmouseCamerAcontroller untuk memanggil proses yang diolah, ProcessMouseUseup, dan Metode ProcessMouseMove.

Seperti halnya AB3D. Powertoys, AB3D. Sharpengine juga mendefinisikan ReaderObj untuk membaca model 3D dari file OBJ. Untuk membaca model dari file lain, gunakan pustaka AB4D. Sharpengine. assimp (seperti ab3d. powertoys. assimp atau ab3d. dxengine. assimp).

AB4D. Sharpengine menggunakan antarmuka iBitMapio yang menyediakan operasi IO bitmap umum untuk menyediakan pembacaan linta s-platform dalam file tekstur (2D bitmaps). Ada juga implementasi spesifik platform seperti WPFBitMapio, WinuibitMapio, SystemDrawingBitMapio, dan SkiAsharPbitMapio. Ada juga pngbitmapio, sebuah buil d-in yang dapat membaca dan menulis gambar PNG, tidak memerlukan implementasi khusus platform atau platform.

AB4D. Sharpengine menggunakan float sebagai nilai utama, dan menggunakan System. numerics untuk objek dan fungsi matematika dasar. Dengan kata lain, semua nilai ganda harus dikonversi menjadi nilai float. Juga, struktur Point3D dan Vector3D harus dikonversi ke vektor3.

Menurut pendapat saya, jika sudah ada aplikasi kompleks yang dibangun menggunakan AB3D. Powertoys dan AB3D. DXEngine, tidak ada gunanya untuk mengubah aplikasi menjadi AB4D. Sharpengine. Namun, jika Anda perlu membuat versi yang lebih sederhana dari aplikasi yang berfungsi pada perangkat seluler, AB4D. Sharpengine memberi Anda peluang besar untuk mentransplantasikan hanya sebagian dari kode. Juga, jika Anda mulai membuat aplikasi yang membutuhkan grafik 3D, Anda harus mulai dengan AB4D. Sharpengine.

Advantages of Ab3d.DXEngine with Ab3d.PowerToys

  • AB3D. DXEngine dan AB3D. Powertoys adalah produk yang sangat matang dan telah diuji dan ditunjukkan oleh banyak pelanggan.
  • AB3D. DXEngine kompatibel dengan mult i-thread dan saat ini meningkatkan rendering 3D dalam banyak kasus penggunaan.
  • AB3D. DXEngine dan AB3D. Powertoys juga beroperasi dalam versi . NET lama, termasuk . NET Framework 4. 5+.

Kedua perpustakaan ini menyediakan lebih banyak fungsi dan termasuk sampel yang dapat digunakan sebagai templat kode sesuai dengan kebutuhan. Berikut ini tidak ditemukan di AB4D. Sharpengine (v2. 0) di antara fungsi utama AB3D. DXEngine dan AB3D. Powertoys:

  • Pengambilan Sampel Super
  • Efek: Pembasmian fisik, xray, bahan mult i-map, peta lingkungan, efek warna wajah
  • Rendering baris 3D dengan panah (saat ini, panah dibuat oleh baris tambahan yang mendefinisikan panah)
  • bayangan
  • POS T-PROCESSING

Advantages of Ab4d.SharpEngine

  • AB4D. Sharpengine bekerja pada mult i-splatform. Mulailah menulis kode untuk Windows, lalu tambahkan dukungan Linux, MacOS, Android, dan iOS nanti. Anda juga dapat mentransplantasikan bagian dari aplikasi ke platform lain.
  • Ab4d. SharpEngine menggunakan API grafis paling canggih, Vulkan API. Vulkan API sedang dalam pengembangan aktif, dengan fitur-fitur baru ditambahkan seiring dengan dirilisnya versi baru kartu grafis. Ini memberikan opsi untuk mendukung semua fitur grafis saat ini dan masa depan (misalnya ray tracing – tidak mungkin dilakukan dengan DirectX 11).
  • Karena Ab4d. SharpEngine dibuat dari awal, ia memiliki API pemrograman yang sangat bersih dan mudah digunakan. Misalnya, hanya ada satu set model 3D (SceneNodes, Camera, Lights). Saat menggunakan Ab3d. DXEngine dan Ab3d. PowerToys, API tidak terlalu bagus di semua kasus. Ab3d. PowerToy dibangun di atas objek WPF 3D yang kurang dapat diperluas, sehingga beberapa kompromi harus dilakukan (misalnya, kamera berasal dari FrameworkElement, bukan Camera). Selain itu, Ab3d. DXEngine mengonversi semua objek WPF 3D dan Ab3d. PowerToys menjadi objeknya sendiri, sehingga aplikasi Anda memiliki dua versi untuk setiap objek. Dalam kasus lain, Anda perlu menggunakan beberapa trik (seperti menggunakan SetDXAttribute) untuk menyediakan fungsionalitas Ab3d. DXEngine ke objek 3D Ab3d. PowerToys dan WPF.
  • Bekerja dengan objek WPF sangat memakan waktu (mengakses DependencyProperties memerlukan banyak overhead). Selain itu, Ab3d. DXEngine harus mengonversi semua objek WPF menjadi objeknya sendiri. Bekerja dengan objek di Ab4d. SharpEngine jauh lebih cepat.
  • Vulkan adalah API grafis yang jauh lebih cepat dibandingkan DirectX 11. Meskipun Ab4d. SharpEngine belum menggunakan semua algoritme tercepat (tidak ada multithreading), ini akan jauh lebih cepat daripada Ab3d. DXEngine di masa mendatang.
  • Ab4d. SharpEngine dibangun di atas . NET 6 dan memberikan banyak manfaat kinerja dengan menggunakan System. Numerics, Span, dan fitur . NET lainnya yang ditingkatkan.
  • Di masa depan, Ab4d. SharpEngine akan menyediakan lebih banyak fungsi daripada Ab3d. DXEngine di Ab3d. PowerToys.

Catatan: Ab3d. PowerToys dan Ab3d. DXEngine terus dikembangkan secara aktif, dengan rilis dan fitur baru ditambahkan, dan akan didukung sepenuhnya di masa mendatang!

Building for macOS and iOS

Untuk menggunakan Ab4d. SharpEngine di macOS dan iOS, diperlukan perubahan berikut:

  • Ab4d. SharpEngine di iOS memerlukan . Net 8 (karena penunjuk fungsi tidak berfungsi di . Net 7 dan versi . Net sebelumnya di iOS).
  • Adegan 3D yang dirender dengan Ab4d. SharpEngine ditampilkan menggunakan SKCanvasView. Untuk menggunakan kontrol ini, tambahkan referensi ke paket NuGet SkiaSharp. Views. Maui. Controls. Tambahkan “. UseSkiaSharp()” ke pengaturan pembuat di file MauiProgram. cs.
  • Tambahkan libmoltenvk. dylib dari Vulkan SDK ke proyek sehingga Anda dapat memuat perpustakaan saat runtime. Perhatikan bahwa build berbeda antara iOS dan Catalyst (yang terbaru adalah versi MacOS).
  • Untuk menjalankan aplikasi di iOS, Anda perlu mengatur profil penyediaan di aplikasi. Salah satu cara untuk mengikuti instruksi pada halaman berikut: Buat profil penyediaan. Metode lain adalah membuka proyek dengan IDE pengendara, klik kanan proyek, dan pilih Open di Xcode. Rider membuat file proyek XCODE dan dibuka di Xcode. Anda dapat mengklik file proyek dan membuat profil penyediaan ad hoc pada tab “Sertifikat, Pengidentifikasi & AMP; Profil” (pada saat yang sama, instal hingga tiga aplikasi pengembangan). Lihat lebih lanjut: Untuk membuat Profil Penyediaan Penyediaan Profil Pengembangan Profil Penyediaan, ketahuilah bahwa (dalam file CSPROJ) ApplicationID harus menjadi format “com. companyname. appname”.

Troubleshooting

Jika kesalahan build terjadi di Windows (misalnya, ‘Proyek. Assets. json’ tidak ditemukan), total panjang jalur mungkin lebih besar dari pass maksimum (260 karakter). Pindahkan solusi sampel ke folder jalur yang lebih pendek dan kompilasi lagi.

  • Beberapa kartu grafis Intel mungkin tidak mengoperasikan tekstur bersama dari WPF Sharpenginesceneview yang dikendalikan terkontrol (bitmap tertulis akan digunakan sebagai gantinya, tetapi dalam hal ini kecepatan akan berkurang).
  • Saat menggunakan SharedTexture dalam aplikasi WPF, beberapa kartu grafis lama dapat menyebabkan kesalahan UCER_RENDERTHREADFAILURE (0x88980406) di WPF. Sebagai solusi, atur SharpEngineSceneview. presetensionType ke WriteableBitMap.

Untuk mengaktifkan verifikasi vulkan, instal vulkan SDK dari yang berikut: Ketika verifikasi vulkan diinstal dan diaktifkan (saat membuat mesin, ion namun, setiap panggilan vulkan diperiksa oleh kesalahan verifikasi, yang dapat memberikan laporan kesalahan yang jauh lebih baik (semua vulkan vulkan Laporan verifikasi dicatat di level log).

Untuk mengaktifkan logging, gunakan kode berikut:

Ab4d. sharpengine. utilities. log. loglevels = logglevels. warn; 

Selanjutnya, ada beberapa opsi untuk menampilkan atau menyimpan pesan log:

// Tulis log ke file Ab4d. SharpEngine. Utilities. Log. LogFileName = @``c:∕SharpEngine. log''; // Tulis pesan log ke jendela keluaran (misalnya, jendela debug Visual Studio) / / Ab4d. SharpEngine. Utilities. Log. IsLoggingToDebugOutput = true; // Menulis ke pembuat String lokal System. Text. StringBuilder _logStringBuilder // Menulis ke pembuat String lokal IsLoggingToDebugOutput = true; // Menulis ke System. Text pribadi StringBuilder; StringBuilder _logStringBuilder; Ab4d . SharpEngine. Utilities. Log. AddLogListener((logLevel, pesan) =& gt; _logStringBuilder. AppendLine(pesan)); 

Untuk mendapatkan pesan log yang disingkat (tanpa stempel waktu, ID thread, dan detail lainnya), Anda dapat menggunakan:

Ab4d. SharpEngine. Utilities. Log. WriteSiplifiedLogMessage=false; 

Change log

v2. 0. 8951 (04-07-2024):

Fitur baru utama:

  • Menambahkan PixelsNode, PixelMaterial, dan PixelEffect yang dapat digunakan untuk merender piksel 3D dan point cloud.
  • Menambahkan ModelMover, yang memungkinkan Anda memindahkan model 3D yang dipilih dalam ruang 3D.
  • Menambahkan ModelScalar untuk menskalakan model 3D yang dipilih.
  • Menambahkan ModelRotator untuk memutar model 3D yang dipilih.
  • Menambahkan MultiMaterialModelNode untuk mendefinisikan SceneNode dengan satu mesh dan beberapa material. Gunakan objek SubMesh untuk menentukan segitiga mana di mesh yang dirender dengan material apa.
  • Menambahkan InputEventsManager (khusus platform) dan ManualInputEventsManager (generik) untuk dengan mudah berlangganan peristiwa penunjuk dan mouse pada objek 3D.
  • Performa pembuatan garis tepi meningkat secara signifikan (100x lebih cepat dibandingkan sebelumnya). Untuk menggunakan metode baru, buat instance kelas EdgeLinesFactory dan panggil salah satu metode publiknya.
  • Performa LineSelectorData telah ditingkatkan secara signifikan. LineSelectorData dapat digunakan untuk memilih garis dengan pointer atau mouse. Lihat contoh “HitTesting / Pemilihan garis” yang diperbarui.
  • Menambahkan metode SliceSceneNode, SliceGroupNode, dan SliceModelNode ke ModelUtils. Ini dapat mengiris objek SceneNode di bidang.
  • Misalnya, ganti nama semua kelas, metode, dan parameter yang memiliki teks “mouse” menjadi “pointer” sebagai gantinya: MouseCameraController =& gt; PointerCameraController, MouseButtons =& gt;
  • Semua metode Color3, Color4, dan BoundingBox yang mengambil parameter dalam ref telah dihapuskan. Ada metode baru yang mengambil parameter menggunakan kata kunci in.
  • Mengubah parameter referensi BoundingBox. Transform dan Camera. SetCameraMatrices yang dilindungi menjadi parameter.

Kami telah membuat pustaka Ab4d. SharpEngine. glTF baru yang memungkinkan Anda mengimpor objek 3D dari file glTF dan mengekspor adegan 3D yang ada ke file glTF.

Perpustakaan AB4D. Sharpengine. winforms baru telah dibuat, yang menyediakan kelas penolong (SharpEnginesceneview, MouseCameracontroller, InputEventsManager, SystemDrawingBitMapio). Ada juga sampel baru untuk WinForms.

Banyak perbaikan dan koreksi lainnya. Lihat https://www. ab4d. com/sharpengine-history. aspx untuk semua daftar perubahan.

v1. 0. 8740 (2023-12-07):

  • Menambahkan kode lisensi. Anda perlu memanggil metode SetLicense untuk mengaktifkan lisensi Anda.
  • GroupNode GetChild, GetAllchildren, dan ForeachChild telah disederhanakan. Pencarian dengan ekspresi reguler telah dihapus. Pencarian Wild Card (menggunakan ‘*’) secara otomatis ditentukan dari nama yang ditentukan.
  • Serializetojson dan DeserializeJson jarang digunakan, jadi mereka dihapus dari kamera. Ini menghapus referensi ke perakitan System. text. json.
  • Menambahkan properti kamera. name yang dapat diatur saat membuat kamera.
  • Jika createOptions. ApplicationName adalah nol atau string kosong, pengecualian “Nilai tidak bisa nol” tidak dilemparkan.
  • Diperbaiki untuk membuat persegi panjang tembus cahaya dengan SpriteBatch.
  • WPFBITMAPIO dimodifikasi untuk mengatur properti hastransparency.
  • Fixed winuibitmapio dikonversi alpha menjadi pr e-multiplied
  • Sampler default telah diubah dari bungkus menjadi cermin.
  • Banyak kelas, properti, dan metode telah ditambahkan. Klik di sini untuk bantuan online: https://www. ab4d. com/help/sharpengine/html/r_project_ab4d_sharpengine. htm
  • Urutan metode vulkandevice. create telah diubah. Parameter EnginecreateOptions adalah opsional dan dipindahkan setelah parameter permukaan.
  • Saya telah menghapus antarmuka IrotatedViewCamera dan memindahkan properti viewrotation dari kamera ke Sceneview.
  • Dihapus Public Vulkaninstance dan Vulkandevice Constructor. Akibatnya, objek vulkaninstance dan vulkandevice hanya dapat dibuat dengan metode membuat statis (digunakan untuk menggunakan kedua konstruktor dan membuat metode).
  • Mengubah nama parameter beberapa metode di kelas konversi (diubah menjadi uniformScale ke skala).
  • Mengubah nama freecamera. calculateUpdirectionPrompositions menjadi calcultectrentupdirection.

Plans for later versions

  • Mendukung Platform UNO
  • Pengambilan Sampel Super
  • Efek yang secara fisik dibobot
  • Buat rendering mult i-beracun dan sumber daya latar belakang
  • Rendering baris 3D dengan panah (saat ini, panah dibuat oleh baris tambahan yang mendefinisikan panah)
  • bayangan
  • Pengikatan dan sampel python

Distant Future

  • Tambahkan Dukungan WebGPU (atau WebGL) di Blazor WebAssemble sehingga mesin berfungsi di browser web. Teknologi ini saat ini tidak siap untuk mendukung aplikasi kompleks seperti mesin rendering 3D.