Milyonlarca kişi tarafından kullanılan açık kaynaklı Blender 3B modelleme, animasyon ve daha birçok işlevi ile görmezden gelinemeyecek öneme sahip. Bu yazıda Blender’ın sunduğu araçlardan en yenisi “Geometry Nodes”un ne olduğunu ve ne işe yaradığını algoritmik (prosedürel yöntemle) bir çimen sahnesi oluşturarak göstereceğim. Prosedürel içerik üretimi de denilen algoritmik yöntem veriyi elle oluşturmanın aksine algoritma kullanarak oluşturma yöntemidir.
Geometry Nodes, bloklar kullanarak otomatik olarak kolaylıkla değiştirilebilen obje veya sahne yapımında kullanılır. Algoritmik bir şekilde çalıştığından adımların sırası değiştirilebilir, standart modellemedeki gibi sonradan yapılan değişiklikler önceki adımlara erişiminizi engellemez. Bir nevi objeleri değiştirmesi için bilgisayara komut verir yani kullanıcı objeye doğrudan değişiklik yapmaz. Bu, özellikle teker teker yerleştirilemeyecek kadar zahmetli (bir orman sahnesini tamamen ağaçla doldurmak) veya matematiksel fonksiyonların kullanılacağı işlemlerde (denizanasının sinüs dalgası şeklinde dalgalanması) işe yarar.
Çok çeşitli ve karmaşık uygulama alanları bulunan Geometry Nodes’da basit bir çimen sahnesinin nasıl yapıldığına bakalım. Ekranın sağ tarafında Geometry Nodes sekmesini açıp karşımızdaki kübe Geometry Node oluştururuz. Çimen sahnemiz için gereken toprağı küp bloğunu silip “Grid” bloğuyla oluşturacağız.
Oluşturduğumuz düzlem.
Sahnenin boyutlarını istediğimiz gibi değiştirebilmek için “Size” bölümlerine değiştirebileceğimiz bir değer atıyoruz. Toprağın detay yoğunluğunun bu değere bağlı büyümesi için sabit bir sayı ile çarpıyoruz.
Multiply Bloğu ile boyut arttırılsa da her objenin kalitesi azalmaz.
Toprağımızın daha gerçekçi görünmesi için yüksekliğinin rastgele değişmesini istiyoruz. Bu yüzden “Noise Texture” kullanarak üreteceğimiz siyah beyaz haritayı yüksekliğe çevirerek düzlemimizin noktalarını farklı miktarlarda yukarı kaldıracağız. Noise Texture ile oluşturduğumuz rastgele değerleri (0,0,0) vektörün z- eksenine atayıp “Set Position” bloğunun “Offset” boşluğuna takınca her noktaya rastgele ürettiğim vektörlerin pozisyonlarını vermiş oluruz. Yükseklik haritası her an istendiği gibi değiştirilebilir. Sahne boyutunu arttırdığımızda Noise Texture tekrarlamayan yükseklik haritalarımızı üretmeye devam edecek ve bu yükseklikler düzleme “Set Position” ile atanacak. (Bu, çok basit bir yöntem) Noise Texture ayarlarıyla oynadıktan sonra çimen yapmaya geçebiliriz.
Çimeni oluşturmaya toprağımızın üzerine “Distribute Points on Faces” bloğuyla rastgele noktalar dağıtarak başlıyoruz. Oluşturduğumuz noktaları da “Instances on Points” bloğuna bağlayıp noktalara geometri atayabiliyoruz. Bu sahne için bd3d’nin oluşturduğu bedava “Plant Library”sini kullanıyorum. Buradan seçtiğim bitkileri bir gruba ekleyip “Collection Info” bloğunu “Instances” boşluğuna takıyorum. Aynı anda toprak ve çimenin görünebilmesi için “Join Geometry” bloğuna toprağı ve “Instances on Points” bloğunu takıyorum.
Son olarak toprağa “Set Material” ile renk ekleyip her çimen ve çiçeğin z ekseninde rastgele açılarda dönüp rastgele boyutlandırılması için “Random Value” bloğunu kullanıyorum.
Artık elimizde tekrar etmeyen ve yoğunluk, boyut gibi değerleri değiştirilebilen bir çimen bloğu var. Bu, özellikle büyük sahnelerin yapımında çok zaman kazandırabilecek bir yöntem.