2 puan yazan GN⁺ 2024-04-03 | 1 yorum | WhatsApp'ta paylaş
  • Adobe'da Photoshop ve Acrobat gibi büyük uygulamaları birden çok ortama taşırken yaşanan çapraz platform port etme sorunları, Renderlet'in geliştirilmesinin çıkış noktası oldu
  • Renderlet, her yerde çalıştırılabilen ve gömülebilen bir WASM grafik çatısı olmayı hedefliyor; uygulama geliştirme kolaylığı ile GPU'nun düşük seviyeli kullanımını birlikte amaçlıyor
  • Açık runtime Wander, GPU üzerinde düşük seviyeli bir 3D API sunuyor ve buna Rive'ın açık kaynaklı 2D vektör render'ı bağlanan bir deney uygulanmış durumda
  • Şu anda açık alfadan hemen önceki aşamada ve derleyici ile platform entegrasyonu hazır olduğunda Show HN veya Launch HN yapmayı planlıyorlar
  • Unity'nin oyunlarda çapraz platform geliştirmeyi kolaylaştırması gibi, Renderlet de çeşitli görsel uygulamaların farklı ortamlarda çalıştırılmasını kolaylaştırmaya odaklanıyor

Renderlet'in çözmeye çalıştığı taşınabilirlik sorunu

  • Adobe'da Photoshop ve Acrobat gibi büyük uygulamaları masaüstü, web, mobil ve bulutta çalıştırmak büyük bir zorluktu
    • Lightroom ve Photoshop'un web sürümleri JavaScript, Google PNaCl, asm.js ve WebAssembly'den geçen uzun bir yol izledi
    • Hedef cihaza göre GPU mimarisini yeniden düşünmek gerekti ve tek iş parçacıklı build'ler ile Web Components tabanlı UI yeniden kurgusu da gerekli oldu
    • Web build'i bugün iyi çalışıyor, ancak bu noktaya gelmek 10 yıllık bir emeğin sonucu
  • Grafik yığını hâlâ taşınabilirliğin darboğazı olmaya devam ediyor ve WebAssembly, her yerde çalıştırılıp gömülebilmesi ve gerçek zamanlı grafikler için gerekli performansı sunabilmesi nedeniyle temel olarak seçildi
  • Renderlet, kendi kendine yeten grafik modülleri oluşturup bunları birbirine bağlayarak, her türlü ortam üzerinde ve herhangi bir uygulamanın içinde çalışabilecek bir yapıyı vurguluyor
  • Geliştirici, YC'ye tek kurucu olarak katıldı ve son 6 aydır Renderlet üzerinde çalışıyor

Rive Renderer entegrasyon deneyi

  • Rive, 2D vektör motorunu açık kaynak yaptıktan sonra, Rive Renderer'ı Renderlet'in GPU backend'inde çalıştırmanın mümkün olup olmadığını test etti
    • Rive Renderer, SVG'ye benzer yüksek seviyeli bir 2D API'den oluşuyor
    • Wander, Renderlet'in açık kaynak runtime kısmı ve GPU üzerinde düşük seviyeli bir 3D API sağlıyor
  • Uygulama sonucunda Rive Renderer kütüphanesi Renderlet'in GPU backend'inde çalıştırılabildi ve böylece 3D uygulamalarda da 2D vektör backend'i kullanılabilir hale geldi
  • Çalışma örneği Vimeo videosunda görülebilir
  • Teknik ayrıntılar Using renderlet with rive-renderer sayfasında derlenmiş durumda
  • Runtime Wasm Renderer olan Wander'ın kodu renderlet/wander altında açık olarak yayımlanıyor

1 yorum

 
GN⁺ 2024-04-03
Hacker News görüşleri
  • PAL aşamasını atlayıp doğrudan SetupRuntime'a geçmek daha iyi olur. Grafik dışı geliştiriciler bu tür şeyleri pek bilmez ve API'ye gereksiz ek adımlar koymak arzu edilir değil. PAL başka bir yerde kullanılmadığı için WebGPU kullanmak daha iyi. (IPal, IRuntime'ın bir üyesi olmalı ve WebGPU bağlamında kaldırılmaya hazır durumda).

    • WebGPU kullanımı önerisi: PAL aşamasını atlama, doğrudan SetupRuntime ile başlama, API'nin sadeleştirilmesi ihtiyacı, IPal'in IRuntime'a entegre edilmesi ve kaldırılacak olması.
  • Bu proje, platformlar arası GUI oluşturmak için harika bir widget kiti ve etkileşim modelleri için müthiş bir tuval olabilir. C/C++ backend'i ve WASM hedefi sayesinde neredeyse her dilde FFI kurulabilir.

    • Platformlar arası GUI geliştirme potansiyeli: Çeşitli dillerde FFI kurabilme, C/C++ backend'i ve WASM hedefinin avantajları.
  • Metin ve font desteği için planların ne olduğu merak ediliyor. Bazı grafik motorları metni istenen her biçimde desteklemiyor. OTF veya WOFF2 dosyalarının yüklenip rastgele bir dizenin görüntülenip görüntülenemeyeceği soruluyor.

    • Metin ve font desteği sorusu: Çeşitli metin gösterim biçimlerini destekleme, OTF/WOFF2 dosyalarını yükleme ve dize görüntüleme olasılığı.
  • Projeye büyük ilgi var. Runtime, event loop, FFI ve pencere işaretçisi sahipliği gibi konularda birkaç soru var. Ses eklentileri ve VST ile ilgileniliyor; event loop ve pencere yönetimi konusunda bazı kısıtlar bulunuyor. JUCE fiili çözüm olsa da eski ve kullanışsız.

    • Ses eklentileri ve VST ilgisi: Runtime, event loop, FFI ve pencere yönetimiyle ilgili sorular, JUCE'ye alternatif olma potansiyeli.
  • Bu proje gerçekten harika ve son birkaç yıldır hayalini kurduğum şey. WASM, grafik/ses/multimedya hesaplamaları için taşınabilir bir birim olarak büyük potansiyele sahip.

    • WASM'ın potansiyelini vurgulama: Grafik/ses/multimedya hesaplamaları için taşınabilir bir birim olarak WASM'ın olanakları.
  • Godot Engine'de WASM'ı çalıştırmak için çalışmalar yapılıyor. Safari'deki shared array buffer erişilebilirliği sorununu ve çevrimiçi oyunlar için önemli olan reklam ağı erişimi sorununu nasıl aştıkları merak ediliyor. Tek iş parçacıklı ve normal derleme arasındaki farklara dikkat çekiliyor.

    • Godot Engine ve WASM çalışmaları: Safari'deki shared array buffer erişilebilirliği sorunu, reklam ağı erişimi, tek iş parçacıklı ve normal derleme meselesi.
  • 3D grafik/WASM alanında daha fazla proje görmek sevindirici. YC'ye girmek için tavsiye olup olmadığı soruluyor. Unreal Engine 5'i WebGPU ve WebAssembly'ye port etme çalışması yıllardır sürüyor. Çok iş parçacıklı bir renderer ve varlık akış sistemi var; bu sayede kullanıcıların tüm oyunu/uygulamayı önceden indirmesi gerekmiyor. Ayrıca tüm uygulamanın tek seferde belleğe yüklenmesi de gerekmiyor. Geliştiricilerin projelerini çevrimiçi dağıtabilmesi için tam bir hosting platformu ve backend de inşa edilmiş.

    • Unreal Engine 5'in WebGPU ve WebAssembly'ye portu: Çok iş parçacıklı renderer, varlık akış sistemi, tam oyun/uygulama indirme gerektirmemesi, hosting platformu ve backend kurulumu.
  • wasm I/O sunumu etkileyiciydi ve bu çalışmanın ilgi gördüğünü görmek sevindirici.

    • wasm I/O sunumuna olumlu tepki: Sunumun etkileyici olması ve çalışmanın dikkat çekmesi.
  • Flutter'ın başlıca geliştiricilerinden Ian Hickson'ın makalesini okuyup okumadıkları soruluyor. Yazıda, WASM kullanarak tamamen çapraz platform bir UI framework'üne sahip olma fikri anlatılıyor; Flutter da bu yaklaşımı kullanıyor.

    • Flutter ile bağlantılı WASM kullanımı: Çapraz platform UI framework'ü kavramı, Flutter ile ilişkisi.
  • Uygulamaya entegre edilebilecek bir CAD kernel olarak manifold şiddetle tavsiye ediliyor.

    • CAD kernel önerisi: Uygulamaya entegrasyon için manifold tavsiyesi.