ATLAS / Ahmet Salih Haroğlu
Web · Teknik rehber

Blender'dan GLB Export Ederken Nelere Dikkat Ediyorum?

Export düğmesine basmadan önce materyalleri, texture yollarını ve sahneyi nasıl kontrol ediyorum; ve neden son adım dosyayı hedef ortamda test etmek.

Ahmet Salih Haroğlu9 dk okuma
Gemi çalışmasından görsel
İçindekilerExport tek adım değilTemizlikTransform değerlerini uygulamakExport öncesi kontrol listemMateryallerin GLB ile uyumuExport penceresi: nelere bakıyorumTexture boyutlarını gözden geçirmekHedef ortamda testRenk seçenekleri ve parça adları için hazırlıkRevizyonları yönetmekYaygın hatalarSık sorulan sorularSonuç

Export tek adım değil

Blender'dan GLB çıkarmak teknik olarak kolay olabilir. Ama iyi bir GLB hazırlamak sadece Export düğmesine basmak değil.

Export öncesinde modelin materyallerini, texture yollarını, transform değerlerini ve sahnedeki gereksiz verileri kontrol etmek gerekiyor.

Blender'da model güzel görünüyor diye dosyanın web'de de aynı görüneceğini varsaymak, en sık yapılan hatalardan biri. Çünkü Blender bir render ve modelleme programı; GLB ise gerçek zamanlı çalışan bir görüntüleyicinin okuyacağı, belirli kurallara bağlı bir teslim formatı. Bu iki dünya arasındaki farkı bilmek, export'tan sonra yaşanacak sürprizlerin çoğunu önceden engelliyor. Bu yazıda export öncesi kontrol sıramı, export penceresindeki ayarlara nasıl baktığımı ve son testte neleri aradığımı anlatıyorum. Formatın kendisi hakkında temel bilgi için GLB dosyası nedir yazısına da bakabilirsin.

Temizlik

Ben özellikle kullanılmayan materyaller ve yanlış texture bağlantıları konusunda dikkatli olmaya çalışıyorum.

Bazen Blender'ın içinde kullanılmıyor gibi görünen materyaller veya texture'lar dosyada kalabiliyor. Bu yüzden sahneyi temizlemek önemli. Bu konuyu texture temizliği yazısında ayrıca anlattım.

Blender'da sahnede hiçbir nesnenin kullanmadığı veri bloklarını temizlemek için File menüsünün Clean Up bölümündeki Purge Unused Data komutuna bakılabilir. Ama bu komutu kullanmadan önce dikkatli olmak gerekiyor: Sakladığın ve ileride lazım olacak bir materyal "kullanılmıyor" diye silinebilir. Ben bu temizliği export için ayrılmış bir kopya dosyada yapmayı tercih ediyorum; ana çalışma dosyası olduğu gibi kalıyor.

Temizlik sırasında kontrol ettiğim şeyler:

  • Adı "Material.001", "Material.002" gibi giden kopya materyaller var mı? Çoğu, tasarım sırasında yanlışlıkla çoğalmış gereksiz kopyalardır.
  • Hiçbir materyale bağlı olmayan görseller dosyada duruyor mu?
  • Gizlenmiş ama silinmemiş nesneler var mı? Bunlar export ayarına bağlı olarak dosyaya girebilir.
  • İçinde hiçbir yüz olmayan boş mesh'ler ya da gereksiz boş nesneler (Empty) bulunuyor mu?

Transform değerlerini uygulamak

GLB export'ta sık gördüğüm sorunlardan biri, nesnelerin uygulanmamış ölçek ve dönüş değerleri taşıması. Blender'da bir nesne gerçekte 1 birim boyunda olabilir ama ölçeği 0,3 olarak görünebilir. Görüntüleyici bu durumu çoğu zaman doğru yorumlar; ama normal map yönü, hiyerarşideki alt nesnelerin davranışı ve animasyon gibi konularda beklenmedik sonuçlar çıkabilir.

Bu yüzden export öncesinde nesneleri seçip Object menüsündeki Apply bölümünden (kısayol Ctrl+A) ölçek ve dönüş değerlerini uyguluyorum. Dikkat edilmesi gereken nokta: Eğer birden fazla nesne aynı mesh verisini paylaşıyorsa (instance), Blender uygulama sırasında uyarı verebilir; bu durumda önce tekil hale getirmek gerekiyor.

Ayrıca modelin gerçek dünya ölçeğinde olması önemli. glTF birimi metre olarak tanımlar. Sahnede birim ölçeği tutarsız olursa model görüntüleyicide devasa ya da minicik görünür; AR kullanımında ise ürünün gerçek boyutu bozulur. Özellikle AR'a hazırlanan modeller için bu ayar kritik. Konuyla ilgili ayrıntılar artırılmış gerçeklikte GLB ve USDZ yazısında var.

Pivot noktası da aynı derecede önemli. Ürünün orijini zemine ve merkeze yakın bir yerdeyse, görüntüleyicide model kendi etrafında düzgün döner ve zemine doğru oturur. Orijin modelden uzaksa, döndürme beklenmedik şekilde yanlış merkezde olabilir.

Export öncesi kontrol listem

  • Uygulanmamış scale ve rotation değerleri var mı?
  • Kullanılmayan materyal ve texture'lar temizlendi mi?
  • Her materyal gerçekten GLB'nin desteklediği bir yapıya mı bağlı?
  • Sahnede export edilmemesi gereken yardımcı nesneler (kamera, ışık, referans) gizli mi?
  • Texture boyutları hedef kullanım için uygun mu?

Bu listeye birkaç madde daha eklenebilir: UV haritaları var mı ve düzgün mü, modelin orijini mantıklı bir yerde mi, nesne adları anlamlı mı. Adlandırma küçük bir detay gibi görünse de, web tarafında kod ile belirli bir parçaya erişmek gerektiğinde (örneğin renk değiştirmek için) anlamlı isimler büyük kolaylık sağlar.

Materyallerin GLB ile uyumu

Burada en önemli konu, her materyalin GLB'nin anlayabileceği yapıda kurulmuş olması. glTF, PBR metalik-pürüzlülük iş akışına dayanıyor. Blender'daki Principled BSDF düğümü bu yapıyla büyük oranda eşleşiyor: temel renk, metallic, roughness, normal map, emission ve alpha doğrudan dışa aktarılır. Detaylı mantık için PBR malzeme, roughness ve metallic yazısına bakabilirsin.

Ama prosedürel materyaller, yani bir dokuyu matematiksel düğümlerle üreten kurulumlar, dışa aktarılmaz. Noise, Voronoi ya da karmaşık düğüm ağlarıyla oluşturulmuş bir yüzey Blender'da çok güzel görünebilir; GLB'ye aktarırken bu bilgi bir görsele çevrilmemişse kaybolur. Bu durumda yapılacak şey, o materyali "bake" etmek yani bir texture'a pişirmektir. Cycles render motorunda bake menüsü ile temel renk, roughness ya da normal bilgisi görsellere aktarılabilir.

Kontrol etmem gereken diğer materyal konuları:

  • Düğüm bağlantısı: Texture doğrudan Principled BSDF'e bağlı mı, yoksa araya mix ya da color ramp gibi glTF'in tanımadığı düğümler girmiş mi?
  • Renk alanı: Temel renk dokusu sRGB, normal ve roughness gibi veri haritaları ise Non-Color olarak ayarlı mı?
  • Alpha: Saydamlık gerekmeyen bir materyalde alpha kanalı kullanılıyorsa bu hem boyutu artırır hem de sıralama hatalarına yol açabilir.
  • Emission: Parlayan yüzeyler varsa, görüntüleyicinin bunu nasıl yorumladığı test edilmeli.
  • Çok fazla materyal: Her materyal web'de ek bir çizim maliyeti demektir. Birleştirilebilecek materyaller varsa birleştirmek gerekir.

Ambient occlusion gibi bilgilerin glTF'e aktarımı için ise exporter'ın kendi dokümantasyonunda tarif edilen özel yöntemler var. Bu özelliğe ihtiyaç duyuyorsan sürüme özgü dokümantasyona bakmak daha güvenli.

Export penceresi: nelere bakıyorum

Blender'da File menüsünden Export altında glTF 2.0 seçeneğini açtığımda sağ taraftaki panelde dikkat ettiğim başlıklar şunlar. Sürümler arasında küçük farklılıklar olabileceği için burada genel yapıyı anlatıyorum.

  • Format: Web için tek dosya yeterliyse glTF Binary (.glb) seçiyorum. Texture'lar ve geometri tek dosyada toplanır, yüklemesi ve paylaşması kolay olur.
  • Include: Sadece seçili nesneleri mi, yoksa görünür nesneleri mi dışa aktaracağımı belirliyorum. Kamera ve ışık gibi öğelerin dahil edilip edilmediğini de buradan kontrol ediyorum. Ürün modelinde genellikle ihtiyaç yok.
  • Transform: Blender Z yukarı çalışır, glTF ise Y yukarı. Exporter varsayılan olarak bunu dönüştürür. Bu ayarın açık kalması gerekir.
  • Mesh: Modifier'ların uygulanıp uygulanmayacağı, UV, normal ve vertex color verilerinin dahil edilmesi burada. Kullanılmayan vertex color ya da ek UV kanalı varsa dışarıda bırakmak dosyayı hafifletir.
  • Mesh sıkıştırma: Draco sıkıştırma dosya boyutunu küçültebilir; ama hedef görüntüleyicinin ve yükleme kodunun bu sıkıştırmayı çözebildiğinden emin olmak gerekir.
  • Materyal ve görsel ayarları: Dışa aktarılan görsellerin formatı (örneğin JPEG, PNG ya da WebP) dosya boyutunu doğrudan etkiler. Yüzey bilgisi taşıyan haritalarda kalite ve boyut dengesini testle belirliyorum.
  • Animasyon: Statik ürünlerde animasyon seçeneğini kapalı tutmak gereksiz veriyi önler.

Her projede ayarları baştan taramak yerine, kendi çalıştığım ayarları bir kez belirleyip bir ön ayar olarak kaydetmek hata payını azaltıyor.

Texture boyutlarını gözden geçirmek

GLB boyutunun büyük kısmı çoğu zaman geometriden değil, texture'lardan gelir. Export öncesinde her görselin çözünürlüğüne bakıp "bu yüzey kamerada ne kadar yer kaplıyor" diye soruyorum. Küçük bir vida ya da etiket için 4K bir doku gereksizdir. Ürünün ana gövdesi için bile çözünürlük, kullanıcının ne kadar yakınlaşabileceğiyle ilişkilidir.

Texture'ları kanal bazında da düzenleyebilirsin. Roughness ve metallic bilgisi tek bir görselin farklı kanallarında tutulabilir; bu, glTF'in doğal olarak desteklediği bir yaklaşımdır. Bu tür optimizasyonların tamamı için 3D modeli web için optimize etme yazısına bakabilirsin. Ürün geometrisi tarafında ise web'de 3D model için kaç polygon kullanılmalı sorusunu ayrıca ele aldım.

Hedef ortamda test

Ayrıca modelin gerçekten web'de nasıl görüneceğini export sonrasında kontrol etmek gerekiyor. Blender'da doğru görünen bir materyal başka bir viewer'da aynı görünmeyebilir.

Bu nedenle benim için GLB export'un son noktası dosyanın oluşması değil, dosyanın hedef ortamda test edilmesi.

Testte şunlara bakıyorum:

  • Dosya hiç açılıyor mu, yoksa hata mı veriyor?
  • Renkler, parlaklık ve yüzey karakteri Blender'daki görüntüyle makul ölçüde örtüşüyor mu?
  • Normal map ters görünüyor mu? Yüzeyde içe çökme ya da yanlış parlama varsa normal yönü ters olabilir.
  • Model ölçeği ve orijini doğru mu; döndürürken kendi merkezinde mi dönüyor?
  • Telefonda ve masaüstünde açılış süresi kabul edilebilir mi?
  • Saydam ya da yansıtıcı yüzeylerde sıralama hataları oluşuyor mu?

Test için ürünün asıl kullanılacağı sayfada denemek en doğrusu. Henüz sayfa hazır değilse, model-viewer gibi bir bileşenle hızlı bir test sayfası kurmak da iş görür; bunun için model-viewer ile web sitesine 3D model ekleme yazısındaki örneği kullanabilirsin. Glb dosyasını farklı bir ortamda da açmak, soruna model mi yoksa sayfa mı sebep oluyor diye ayırt etmeye yarar.

Renk seçenekleri ve parça adları için hazırlık

Model web'de bir ürün yapılandırıcısına dönüşecekse, export aşamasında alınan kararlar sonradan yazılacak koda doğrudan etki eder. Örneğin kullanıcı bir düğmeye tıklayıp kumaş rengini değiştirecekse, kodun hangi materyali değiştireceğini bilmesi gerekir. Materyal adı "Material.003" olduğunda bu iş kırılgan hale gelir; "kumas_ana" gibi anlamlı bir ad ise hem seni hem kodu yazan kişiyi rahatlatır.

Bu yüzden export öncesinde şunları yapıyorum:

  • Değişecek materyalleri ayrı tutuyorum. Aynı materyali hem gövde hem küçük bir parça kullanıyorsa, ikisini birlikte renklendirmek zorunda kalırsın.
  • Materyal ve nesne adlarını sade, boşluksuz ve tutarlı bir düzende yazıyorum. Türkçe karakter kullanmamak, farklı araçlarda sorun çıkma ihtimalini azaltır.
  • Hareket edecek parçaların (kapak, çekmece, ayak) ayrı nesne olduğundan ve orijinlerinin hareket eksenine uygun olduğundan emin oluyorum.
  • Renk varyasyonları için ayrı model dosyaları üretmek yerine tek modelde materyal değişimini tercih edip etmeyeceğime baştan karar veriyorum.

Renk seçenekli ürünlerde bu planlamanın değeri büyük. Aynı mantığı render tarafında da renk seçenekli ürünler için 3D render avantajı yazısında anlattım. Web'de kullanıcının ürünle etkileşime girdiği kontroller için ise 3D ürün görüntüleyici kontrollerinin tasarımı yazısı faydalı olabilir.

Revizyonları yönetmek

Export bir kez yapılıp biten bir iş değil; müşteri geri bildirimi geldikçe tekrarlanır. Bu döngüyü rahat yönetmek için çalışma dosyasını ve export dosyasını ayrı tutmak iyi bir alışkanlık. Çalışma dosyası tüm denemeleri, yardımcı nesneleri ve ham materyalleri içerebilir; export için ayrılan sürüm ise yalnızca yayınlanacak olanı barındırır. Her revizyonda dosya adına sürüm bilgisi eklemek, hangi dosyanın yayında olduğunu ve neyin değiştiğini hatırlamayı kolaylaştırır.

Yaygın hatalar

  • Export'u çalışma dosyasında yapıp kullanılmayan her şeyi dosyada bırakmak.
  • Transform değerlerini uygulamadan çıkış almak.
  • Bütün sahneyi seçip kamera, ışık ve referans nesnelerini de aktarmak.
  • Yüksek çözünürlüklü texture'ları kontrol etmeden bırakmak.
  • Blender'daki görüntüyü ölçüt alıp hedef ortamda hiç test etmemek.
  • Her revizyonda dosyanın üzerine yazıp eski sürümleri kaybetmek. Anlamlı bir sürüm adı (örneğin tarih ya da revizyon numarası) kullanmak geri dönüşü kolaylaştırır.

Sık sorulan sorular

GLB mi glTF mi seçmeliyim?

Web'de basit bir ürün gösterimi için genelde tek dosyada toplanan GLB daha pratik. Ayrı JSON, bin ve görsel dosyaları istiyorsan, örneğin görselleri ayrı yönetmek gerekiyorsa glTF kullanılır.

Blender'daki materyalim neden web'de farklı görünüyor?

Görüntüleyici kendi ışıklandırması ve gölgelendirme yaklaşımıyla çalışır; Blender'daki render motoru ise çok farklıdır. Ayrıca prosedürel düğümler ve bazı gelişmiş ayarlar aktarılmaz. Bu yüzden materyali glTF'in anlayacağı şekilde sadeleştirmek ve hedef ortamda ince ayar yapmak gerekir.

Dosyam çok büyük çıktı, ilk neye bakmalıyım?

Genellikle texture boyutları ve sayısı. Geometriye dokunmadan önce görsel çözünürlüklerini ve formatlarını gözden geçirmek çoğu zaman büyük fark yaratır. Sonra gereksiz nesne ve materyalleri kontrol edebilirsin.

Draco sıkıştırma kullanmalı mıyım?

Dosya boyutunu azaltmak için faydalı olabilir, ama görüntüleyicinin bunu çözebilmesi ve sayfadaki yükleme kodunun uyumlu olması gerekir. Önce kullanacağın ortamda test etmek en güvenlisi.

Export sonrası modeli düzenleyebilir miyim?

Küçük düzenlemeler için araçlar var, ama kaynak dosya Blender'da kaldığı için değişiklikleri orada yapıp yeniden export etmek en temiz yöntemdir. Aksi halde kaynak dosya ile yayındaki dosya birbirinden ayrılır.

Sonuç

İyi bir GLB, export düğmesine basmadan önce başlıyor: temiz bir sahne, uygulanmış transform değerleri, glTF'in anlayacağı materyaller ve ölçülü texture'lar. Düğmeye bastıktan sonra da iş bitmiyor; dosyanın kullanılacağı ortamda açılıp gözle ve cihazda doğrulanması gerekiyor.

Bir web modeli Blender içinde değil, browser içinde başarılı oluyorsa gerçekten hazır demektir.

Ürününüzün web'e uygun bir 3D modelini hazırlatmak istiyorsanız web için 3D ürün modeli hizmetine göz atabilir ya da doğrudan teklif isteyebilirsiniz.

Aura Reformer Cadillac: dört direkli çerçeve, yaylar, trapez ve pofuduk askı, şeffaf zeminde
İlgili çalışmaAura ReformerÜrün Modelleme · Müşteri Çalışması · Blender · EEVEE · 6 ürün
Geminin tam boy 3D ürün görseli: siyah yelkenler açık, güvertede fener ışıkları, şeffaf zemin üzerinde izole render.
İlgili çalışmaGemiSinematik kamera yolu · Blender · EEVEE · 1.500 kare · 24 fps
Ahmet Salih Haroğlu3D sanatçı · dijital üretici · İstanbul

Aklınızda bir proje mi var?

Proje talebi gönder →

Bülten

Notlar, teknik rehberler ve yeni çalışmalar.