View Categories

Statik Geometri

4 dakika okuma

giriiş #


Bu bölümde V-Ray’deki başlıca geometri türlerini ele alacağız.

V-Ray’de geometri üçgen ağlarla temsil edilir. Üçgenlerin kesişimi daha hızlı olduğu için keyfi çokgenleri desteklemiyoruz.

 

Geometri türleri #


V-Ray’de geometrinin aşağıdaki şekilde sınıflandırılması yapılabilir:

  • Örtük geometri – Analitik bir tanımı vardır. Buna örnek olarak GeomPlane ve GeomPerfectSphere eklentileri verilebilir.

  • Statik geometri (üçgenler) – Üçgenlerden oluşan bir ağ, render işleminden önce açıkça tanımlanır ve tüm render süreci boyunca bellekte kalır. Bu, bu bölümün ana konusudur.

  • Dinamik geometri – Temel şekiller, ihtiyaç duyulduğunda çalışma zamanında oluşturulur ve bellek alanını boşaltmak için atılabilir. Bunu daha sonraki bölümlerde ele alacağız.

    • Saç ve tüy

    • Alt bölüm yüzeyleri

    • NURBS

    • Proxy (geometriyi bir dosyadan yükleme)


Statik ve Hareketli #

Ayrıca statik ve hareketli geometri arasında da ayrım yapıyoruz. İkincisi, animasyon yapılırken her karede farklı bir dünya konumuna sahip olabilir. Bu, hareket bulanıklığının hesaplanmasına olanak tanır. Eğer buna gerek yoksa, statik geometri kesişimini daha hızlı sağlar. Aşağıdaki resimde çaydanlığın statik ve hareketli bir versiyonunu görebilirsiniz:

 

 

V-Ray, farklı geometri türlerinin kesişimini en uygun şekilde hızlandırmak için ayrı ağaçlar oluşturur.

Eklentiler #


Node eklentisi #

Gerçek geometri verilerinizi tanımlamaya geçmeden önce, ışık yaymayan nesneler için  Node adı verilen üst düzey bir eklenti bulunmaktadır. Bu eklenti, geometri verilerini ( geometri  parametresi) bir malzeme eklentisiyle (  malzeme parametresi) ilişkilendirir   ve onu dünyada konumlandırır ( transform  parametresi). Verileri çoğaltmadan farklı konumlardaki farklı düğümlerden aynı geometriye referans verebilirsiniz.

Geometri kaynakları #

Şimdi başlıca geometri kaynağı eklentilerine bakalım:

  • GeomStaticMesh  – Çoğu durumda kullanacağınız temel sabit geometri tanımlayıcısıdır. Köşe ve normal verilerinin yanı sıra isteğe bağlı UVW doku eşleme koordinatlarını gerektirir. V-Ray statik ağları yalnızca üçgen geometriyle çalışır, bu nedenle daha büyük çokgenleriniz varsa, bunları üçgenleştirmeniz gerekecektir. En basit yol, dışbükey çokgenler için kulak kırpma yöntemidir. Üçgenin ön yüzüne bakıyorsanız, V-Ray için geometri dizilerinde üçgen köşe indeksleri saat yönünün tersine belirtilir.

  • GeomStaticSmoothedMesh  – Başka bir mesh eklentisine (genellikle GeomStaticMesh) referans verir ve pürüzsüz, alt bölümlere ayrılmış bir sürüm oluşturur.

  • GeomDisplacedMesh  – Başka bir mesh eklentisine (genellikle GeomStaticMesh) referans verir ve bir doku haritası kullanarak yer değiştirmiş bir sürüm oluşturur.

  • GeomStaticNURBS  – Kontrol noktaları ve ağırlıklar kullanarak düzgün bir NURBS yüzeyi tanımlar.

  • GeomHair  – Başka bir mesh eklentisine (genellikle GeomStaticMesh) referans verir ve üzerinde saç (kürk, çimen, kabarık halı vb. için ayarlanabilir) oluşturur. Eklentinin, saç tellerinin boyutu, şekli ve dağılımı için birçok parametresi vardır. Bu, 3dsMax ve Maya’daki VRayFur’a karşılık gelir.

  • GeomMayaHair – Saç ve saç teli geometrisini ayrıntılı olarak tanımlar.

  • GeomMeshFile  – Bir dosyadan geometri yükler, bu dosya geometri proxy’si olarak adlandırılır. Geometri yalnızca bir ışın ona çarptığında talep üzerine yüklenir, bu nedenle dağıtılmış kova oluşturma gibi bazı durumlarda gereksiz hesaplamaları ve bellek kullanımını önleyebilir. Şu anda desteklenen formatlar V-Ray’in .vrmesh ve Alembic .abc’dir. .obj gibi başka bir formatta bir dosyanız varsa, onu  ply2vrmesh  aracıyla dönüştürmeniz gerekir.

  • GeomParticleSystem  – Bir parçacık sistemini tanımlar. Parçacıklar küreler veya başka bir geometri kaynağı olabilir.

  • GeomEnmesh – Bir nesnenin yüzeyini, o geometrinin UVW uzayını takip eden, tekrarlayan bir desenle “kaplayan” bir geometri. Küçük nesneler Referans nesne olarak verimlidir; nesne ne kadar büyükse, işleme için o kadar fazla işlem gücü gerekir, dolayısıyla işleme süresi artar.

GeomStaticMesh #

İşte eklentinin daha önemli parametrelerinin açıklaması :

  • köşeler  –  (ayarlanmalıdır)  Nesne uzayındaki köşe koordinatlarını içeren VectorList.

  • faces  –  (ayarlanmalıdır) Köşe  dizisindeki indeksleri içeren IntList   . Her üç indeks bir üçgen oluşturur. Aynı köşe indeksi birden fazla kez kullanılabilir (parçası olduğu farklı üçgenler için).

  • normals  –  (ayarlanmalıdır)  Nesne uzayındaki normal vektörleri içeren VectorList. Bunların sayısı,  köşe sayısından farklı olabilir .

  • faceNormals  –  (ayarlanmalıdır) Normals  dizisindeki indeksleri içeren IntList  . Her indeks, faces  dizisindeki karşılık gelen köşe için normali tanımlar   .

  • map_channels  – İsteğe bağlı bir iç içe liste listesi; her iç liste geneldir ve üç öğeye sahiptir. İlk öğe kanal indeksidir (genellikle 1’den başlar), ardından UVW koordinatlarını içeren bir VectorList gelir (yalnızca 2D haritalama yapıyorsanız W’yi 0.0’da bırakın). Üçüncü öğe, UVW dizisindeki indeksleri içeren bir IntList’tir. Her indeks,  faces  dizisinde tanımlanan bir köşeye karşılık gelir.

  • map_channels_names – map_channels  listesinin ilgili öğeleri için adlar içeren isteğe bağlı bir dize listesi   .

  • face_mtlIDs  – Her üçgen için malzeme indekslerini içeren isteğe bağlı bir IntList. İndeks sayısı, faces dizisinin uzunluğunun 3’e bölünmesiyle elde edilir.

  • Hızlar  – Hareket bulanıklığı için köşe başına 3 boyutlu hız vektörlerinin listesi.

  • edge_visibility  – Kenar görünürlük bayraklarının listesi: listedeki her 32 bitlik tamsayı, ardışık 10 üçgenin kenarları için bir kenar görünürlük biti içerir. En yüksek iki bit kullanılmaz.

  • shaders_names – İsteğe bağlı bir liste listesi; her iç liste genel niteliktedir ve 2 öğe içerir: yüzey malzemesi kimliği (tamsayı) ve gölgelendirici adı (dize).

  • smooth_derivs  – Türevleri düzgün olan eşleme kanallarının listesi; tüm kanalların düzgün olup olmadığını belirtmek için tek bir boolean değer de olabilir.

  • weld_threshold  – Bu parametre mevcutsa, birbirine verilen eşik değer içinde kalan ağdaki köşeler kaynaklanacaktır. Yoksa veya negatifse, kaynak işlemi yapılmaz.

  • primary_visibility  – Bu özellik kapatıldığında nesne kamera ışınlarına görünmez, ancak yansımalarda görünür kalır.

  • dynamic_geometry  – Eğer true olarak ayarlanırsa, geometri statik kesişim ağacının bir parçası olmaz. Sadece sınırlayıcı kutusu kullanılır ve eğer bu kutu kesişirse ayrı bir yerel ağaç kesişir. Bu, hareketli nesnelerin gerçek zamanlı işlenmesinde performansı artırabilir.

  • smooth_uv_borders  – Bu ağı alt bölüm yüzeyi olarak işlerken ağ sınırlarında UV’leri yumuşatmak için True değerini seçin.

  • smooth_uv  – Bu ağı alt bölüm yüzeyi olarak işlerken UV’leri yumuşatmak için True değerini seçin.

  • first_poly_vertices  – Derecesi 4’ten büyük çokgenlerin ilk köşelerinin indekslerinin listesi. Bu, alt bölme algoritmaları tarafından orijinal çokgenleri belirlemek için edge_visibility ile birlikte kullanılır. Bu kullanılmadığı takdirde, görünmeyen kenarların dörtgenlerin köşegenleri olduğu varsayılır.

Sahne #


Biçim #

Bu derse ekli sahne paketinde vrscenes /cube.vrscene sahnesini görebilirsiniz  .  Küpü temsil eden Düğüm (3. satır) eklentisini ve GeomStaticMesh  biçimindeki geometrisini   (12. satır) inceleyin. Geometrinin düğüm eklentileri tarafından nasıl referans alındığına dikkat edin:

Node CubeShape@node {<br />
geometry=CubeShape@mesh2;<br />
...<br />
}<br />
GeomStaticMesh CubeShape@mesh2 {<br />
...<br />
}

Onaltılık format #

Paket içerisinden vrscenes/teapot.vrscene dosyasını açın   . Köşe noktaları, yüzler ve normaller listelerinin veri boyutunu küçültmek için onaltılık biçimde kodlandığına dikkat edin. Bu, bir vrscene dosyasını dışa aktarırken bir seçenektir. Hata ayıklama için yararlı olan düz metin elde etmek için kapatılabilir  :

vertices=ListVector(<br />
Vector(-152.196, -153.631, 0.0),<br />
...<br />
)

Alt bölümlere ayırarak ağları düzleştirme #


Standart #

Pürüzsüzleştirilmiş bir ağ elde etmenin ilk yolu, GeomStaticMesh örneğini,  ikincisinin  mesh parametresinde  birincisine referans vererek   bir  GeomStaticSmoothedMesh eklentisine sarmaktır . Bir örnek görmek için vrscenes/cube_subdiv.vrscene dosyasını  (  sahne paketinden ) inceleyin. Aşağıdaki resim, Geometry_Subdiv.vrscene dosyasını işleyerek standart alt bölme yöntemi kullanılarak işleme sırasında alt bölümlere ayrılmış geometriyi göstermektedir   :

 

OpenSubdiv #

Alternatif olarak, alt bölme işlemini yapmak için V-Ray’e entegre edilmiş OpenSubdiv kütüphanesini kullanabilirsiniz. Bu durumda başka bir eklentiye ihtiyacınız yok. Sadece  osd_subdiv_level değerini  sıfırdan büyük bir değere ayarlayın. Birkaç tane daha osd_* ve creasing parametresi var.  Örnek için vrscenes/cube_open_subdiv.vrscene dosyasına bakın  . Aşağıdaki resim,  Geometry_OpenSubdiv.vrscene  dosyasını render ederek OpenSubdiv kullanılarak render zamanında alt bölümlere ayrılmış geometriyi göstermektedir:

 

Tarafından desteklenmektedir BetterDocs

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir