View Categories

XML Sahnesi (.scn) formatı

8 dakika okuma

Genel Bakış #


SCN dosyaları, Corona sahne tanımlayıcılarının ana dosyalarıdır. Geometri/malzeme/konfigürasyon içeren diğer dosyaları da kapsar, kamerayı, geometriyi, render öğelerini ve daha fazlasını tanımlar. Belge kök öğesinin türü “scene” olmalıdır. Tüm öğe ve öznitelik adları büyük/küçük harf duyarlı değildir.

Kamera tanımı, gerekli olan tek düğümdür. Diğer her şey isteğe bağlıdır ve tanımlanmadığı takdirde varsayılan değerlerde kalır. Temel sözdizimi şöyledir:

<scene>
<camera class=”[string]”>…</camera>
*<confFile>[filename]</confFile>
*<mtlLib>[filename]</mtlLib>
?<sun>…</sun>
?<environment>[map]|[RGB]</environment>
?<globalMedium>[string]</globalMedium>
*<geometryGroup>…</geometryGroup>
*<renderElement>…</renderElement>
?<renderSelected>…</renderSelected>
</scene>

Kamera tanımı #


  • Kamera hareketli ise, tüm değerler hareketli olmalı ve aynı sayıda adım içermelidir.

  • Kamera sınıfına bağlı olarak farklı kamera parametreleri mevcuttur:

<camera class=”[string]”>…</camera>

Perspektif kamera #


  • FOV her zaman derece cinsinden belirtilen yatay FOV’dur.

  • Kameranın temel geometrisini tanımlamanın 3 farklı yolu vardır:

İlk seçenek, kamerayı orijin-hedef ekseni etrafında döndüren “dönme” vektörü (yukarıya doğru yönelen bir vektör – genellikle Z yukarı için 0 0 1 veya Y yukarı için 0 1 0) ile birlikte orijin ve hedef noktalarını kullanmaktır:

<camera class=”perspective”>
<origin>[XYZ]|[animXYZ]</origin>
<target>[XYZ]|[animXYZ]</target>
<roll>[XYZ]|[animXYZ]</roll>
<fov>[float]</fov>
</camera>

İkinci seçenek, kamera dönüşüm matrisini doğrudan girmektir. Matris, dünya uzayından kamera uzayına dönüşüm yapar. Kamera, kamera uzayında 0 0 0 noktası etrafında merkezlenmiştir ve Y ekseni yuvarlanma (roll) iken negatif Z eksenine bakar.
Not: Bu yöntem mevcut sürümde (15.03.2018) çalışmamaktadır, ancak tekrar eklenecektir.

<camera class=”perspective”>
<transform>[TM]|[animTM]</transform>
<fov>[float]</fov>
</camera>


Son seçenek, başlangıç ​​ve hedef noktalarını xVect ve yVect vektörleriyle birlikte belirtmektir. Bunlar, kamera düzleminde görüntünün x ve y yönündeki ötelemesini belirtir. Bu, tilt-shift kamera efektleri oluşturmaya olanak tanır:

<camera class=”perspective”>
<origin>[XYZ]|[animXYZ]</origin>
<target>[XYZ]|[animXYZ]</target>
<xVect>[XYZ]|[animXYZ]</xVect>
<yVect>[XYZ]|[animXYZ]</yVect>
<fov>float</fov>
</camera>

Ayrıca başka isteğe bağlı parametreler de mevcuttur:

?<filmWidth>[float]</filmWidth>
?<focalDist>[float]</focalDist>
?<fstop>[float]</fstop>
?<bokehPolygonal>
<blades>[int]</blades>
<rotation>[float]</rotation>
</bokehPolygonal>
  • fStop, focalDist, filmWidth veya bokehPolygonal değerlerini belirtmek, alan derinliği efektini etkinleştirir.

Korona 2+ #


Koronavirüs 2’den beri şu hususları belirtmek de mümkün:

?<focalLengthForDof>[float]</focalLengthForDof>
?<lens>
<centerBias>[float]</centerBias>
<vignetting>[float]</vignetting>
<anamorphic>[float]</anamorphic>
</lens>
?<lensDistortion>
<cubicAmount>[float]</cubicAmount>
</lensDistortion>
  • CenterBias’ın geçerli aralığı [-5, 5], vinyetleme için [-3, 3] ve anamorfik için (-1, 1)’dir.

Ortopedi kamerası #


<camera class=”ortho”>
either:
<origin>[XYZ]|[animXYZ]</origin>
<target>[XYZ]|[animXYZ]</target>
<roll>[XYZ]|[animXYZ]</roll>
or:
<transform>[TM]|[animTM]</transform>
<width>[float]</width>
</camera>

Küresel kamera #


<camera class=”spherical”>
<origin>[XYZ]|[animXYZ]</origin>
<target>[XYZ]|[animXYZ]</target>
<roll>[XYZ]|[animXYZ]</roll>
</camera>

Silindirik kamera #


<camera class=”cylindrical”>
<origin>[XYZ]|[animXYZ]</origin>
<target>[XYZ]|[animXYZ]</target>
<roll>[XYZ]|[animXYZ]</roll>
<height>[float]</height>
</camera>

Küp harita kamerası #


<camera class=”cubemap”>
<origin>[XYZ]|[animXYZ]</origin>
<target>[XYZ]|[animXYZ]</target>
<roll>[XYZ]|[animXYZ]</roll>
</camera>

Tüm tipler için ek isteğe bağlı parametreler #


?<region>
<startX>[float]</startX>
<startY>[float]</startY>
<endX>[float]</endX>
<endY>[float]</endY>
?<originalAspectRatio>[float]</originalAspectRatio>
</region>
?<minT>[float]</minT>
?<maxT>[float]</maxT>
</camera>

bölge

Görüntüyü tüm görüntü düzleminden yalnızca başlangıç/bitiş koordinatlarıyla belirtilen bir bölgeye yeniden eşler. Bu, görüntü bölgesi işlevinden farklıdır: 0 0 1 1 bölgesindeki değerler kullanıldığında, çözünürlüğü değiştirmeden veya siyah kenarlıklar oluşturmadan görüntüye yakınlaştırma yapar. Değerler ayrıca kaydırma efekti oluşturmak için 0-1 aralığının ötesine de geçebilir.

minT maxT

Minimum/maksimum kesişme mesafesini belirtir – belirtilirse, kameraya daha yakın/uzak olan nesneler birincil ışınlar tarafından göz ardı edilerek dilimleme etkisi oluşturulur.

Stereo/Sanal Gerçeklik seçenekleri #


Küresel, küp harita ve perspektif kamera seçenekleri, stereo görüntüleme modunu etkinleştirmek için isteğe bağlı olarak VR etiketini de belirtebilir:

?<vr>
<eyeSeparation>[float]</eyeSeparation>
?<frontOffset>[float]</frontOffset>
?<convergenceDistance>[float]</convergenceDistance>
</vr>

Geometri grubu #


Sahneye eklenecek bir veya daha fazla geometrik nesne grubunu tanımlar. Genellikle 3D Studio’daki tek bir sahne nesnesi, tek bir geometri grubuna karşılık gelir. Bir grup, sahneye bir “örnek” olarak eklenir. Birden fazla örnek tanımlandığında, farklı dönüşüm matrisleri ve malzemelerle tek bir grup sahneye birden fazla kez eklenebilir. Bu, bellekten tasarruf sağlar ve örneğin büyük ormanlar oluşturmayı mümkün kılar.

<geometryGroup>
+<object class=”[string]”>…</object>
+<instance>
+<material>[string]</material>
+<transform name=”[string]”>[TM]|[animTM]</transform>
</instance>
</geometryGroup>
  • Bir veya birden fazla malzeme bulunabilir. Sıralama önemlidir – bir nesnenin “n” malzeme kimliği, her örnekte n. malzeme kullanılarak çözümlenir.

  • Bir veya daha fazla dönüştürme düğümü bulunabilir. Her biri, belirli malzeme kümesine sahip tek bir örneği temsil eder. Sıra önemli değildir. İsteğe bağlı ad parametresi (varsa), dahil edilecek/hariç tutulacak öğeler için kullanılır.

Küre nesnesi #


<geometryGroup>
<object class=”sphere”>
<materialId>[int]</materialId>
</object>
</goemetryGroup>

Verilen malzeme kimliğine sahip tek bir küreyi 0 0 0 noktasına 1 yarıçapla yerleştirir. Kürenin doğru konumlandırılması için tüm geometri grubunun dönüşüm matrisi kullanılır.

Dosya, nesneleri içerir. #


<geometryGroup>
<object class=”file”>[filename]</object>
</goemetryGroup>

Ek dosyayı (.obj veya .cgeo) ayrıştırır ve bu geometri grubuna ekler.

Küresel medya #


Sahnenin genel ortamını belirtilen bir malzemeye ayarlar. Sahnedeki varsayılan ortamın yerine yalnızca malzemenin hacimsel özellikleri kullanılacaktır.

<globalMedium>
[material]
</globalMedium>

Seçilenleri oluştur #


“Seçili nesneleri oluştur” modunu etkinleştirir. Yalnızca dahil edilen/hariç tutulmayan nesneler oluşturulacak, sahnenin geri kalanı siyah olacaktır. Dahil edilen/hariç tutulan dizeler, geometryGroup → instance → transform içindeki örneklerin adlarıdır.

<renderSelected>[includeList]</renderSelected>

Güneş #


Sahnedeki güneşi etkinleştirir ve konumunu (  sahne orijininden güneşe doğru yönelen vektör olan  dirTo olarak belirtilir) ve isteğe bağlı olarak diğer parametreleri ayarlar. dirUp  parametresi , zenite doğru yönü belirtir (varsayılan olarak vektör (0,0,1)), bu özellik Corona 2’den beri mevcuttur.

<sun>
<dirTo>[XYZ]</dirTo>
?<dirUp>[XYZ]</dirUp>
?<colorMode>constantWhite|realistic|realisticTextured</colorMode>
?<colorMult>[RGB]</colorMult>
?<turbidity>[float]</turbidity>
?<sizeMult>[float]</sizeMult>
?<visibleDirect>[bool]</visibleDirect>
?<visibleReflect>[bool]</visibleReflect>
?<visibleRefract>[bool]</visibleRefract>
?<includeExclude>[includeList]</includeExclude>
</sun>

Burada  sizeMult değeri  0,1 ile 64 arasında,  bulanıklık değeri  ise 1,7 ile 10 arasındadır.

Çevre #


Sahne ortamını sabit bir renge veya haritaya ayarlar.

<environment>[RGB]|[map]</environment>

Malzemeler #


MTL kütüphanesini ayrıştırır, malzeme adlarını kaydeder, böylece örnekler daha sonra bunlara referans verebilir:

<mtllib>[filename]</mtllib>

Yapılandırma dosyası #


Verilen dosya adına sahip bir yapılandırma (.conf) dosyasını anında ayrıştırır.

<conffile>[filename]</conffile>

Öğeleri Oluştur #


Her bir `renderElement` düğümü, işleme sırasında VFB’de görüntülenecek ve sonrasında kaydedilecek yeni bir işleme öğesi belirtir. Öğenin türü “class” özniteliğiyle, adı (VFB’de görüntülenen) ise “instanceName” özniteliğiyle belirtilir:

<renderElement class=”[string]” instanceName=”[string]”>
… (optional parameters, see below)
</renderElement>

Sınıf

Tanım

alfa

Dahili alfa kanalıyla aynı.

sanalGüzellik

Güzellik kanalının kopyası. Aslında ekstra bellek ayırmaz. İsteğe bağlı olarak farklı bir gürültü giderme miktarı değeri belirtilebilir:

<renderElement class=”beauty”>?<denoiseAmount>[float]</denoiseAmount>

renderStamp

Yalnızca render damgasını gösterir.

gölgeler

Tüm ışıklardan kaynaklanan ters gölgeler

kaynakRenk

Gölgelendirmeden önce yüzeyin giriş rengi, doku/düz renkten okunur. Düğüm değeri, hangi bileşenin görüntüleneceğini belirtir. Bu değerlerden biri şudur: diffuse translucency ,  reflect ,  refract ,  opacity

normalsDotProduct

Gelen ışın ile yüzey gölgelendirme normali arasındaki açının kosinüsünü gösterir. Hata ayıklama için kullanışlıdır.

normallerUyumsuzluk

Bir yüzey üzerindeki gölgelendirme ve geometri normalleri arasındaki farkı gösterir. Hata ayıklama için kullanışlıdır.

ilkelKoordinatlar

Yerel temel koordinatları görüntüler. Hata ayıklama için kullanışlıdır.

haritaKoordinatları

Bir yüzeyin haritalama koordinatlarını görüntüler. Düğüm değeri, hangi kanalın görüntüleneceğini belirten tek bir tamsayıdır.

örneklemeOdak

Görüntüdeki piksel başına örnek yoğunluğunu gösterir. Uyarlanabilirlik algoritmalarının ne yaptığını görselleştirir; daha parlak alanlar, o alanda daha fazla örnek kullanıldığını gösterir. İki isteğe bağlı parametresi vardır:

<renderElement class=”samplingFocus”>?<multiplier>[float]</multiplier> ?<relative>[bool]</relative></renderElement>

hız

Geometrinin hızını dünya veya kamera uzayında gösterir. İsteğe bağlı parametreleri vardır:

<renderElement class=”velocity”>?<mode>camera|world</mode> ?<multiplier>[float]</multiplier> ?<offset>[float]</offset></renderElement>

dünyaPozisyonu

Yüzey noktasının dünya koordinatlarındaki konumunu gösterir.

albedo

Toplam yüzey yansıtıcılığı – tüm olası SourceColor kanallarının toplamı. %100’e yakın albedoya sahip yüzeyler kırmızı tonla gösterilir.

normaller

Yüzey normallerinin görselleştirilmesi. Düğüm değeri, hangi tür normallerin görüntüleneceğini belirtir: ya  “gölgelendirme” ya da  “geometri” değerine eşittir .

normalHarita

Gölgelendirme ve geometri normalleri arasındaki farktan bir normal haritası oluşturur.

bileşenler

Gölgelendirilmiş sonucun seçili bileşenlerini görüntüler. Tek bir öğe için birden fazla bileşen seçilebilir; bu durumda sonuçta bunlar toplanır. Bunlar şu şekilde belirtilir:

<renderElement class=”components”>+<componentName>[string]</componentName></renderElement>

İzin verilen dize değerleri  emisyon  ve {diffuse, translucency, reflect, refract, volumetric}×{direct, indirect} şeklindedir (bir önek ve bir sonekin herhangi bir kombinasyonu – örneğin  DiffuseDirect, ReflectIndirect).

hamBileşen

“Ham” bileşen – yüzey renginden etkilenmeyen doğrudan ve dolaylı aydınlatma. Doğrudan+dolaylı Bileşenler öğesinin ilgili KaynakRenk’e bölünmesiyle elde edilir. Her seferinde yalnızca bir bileşen için sonuçlar gösterilir. Parametre, hangi bileşenin gösterileceğini belirtir ve şu değerlerden biri olabilir:  difüz, yarı saydamlık, yansıtma, kırılma.

İD

Seçilen faktörlere bağlı olarak kimlikleri renklerle görselleştirir. Olası öğe değerleri şunlardır:  primitive, instance, geometryGroup, material.

zDerinlik

Nesnelerin kameradan uzaklığını gösterir. Minimum (siyaha eşlenmiş) ve maksimum (beyaza eşlenmiş) mesafeleri belirten 2 alt düğümü vardır:

<renderElement class=”zDepth”><minimalT>[float]</minimalT><maximalT>[float]</maximalT></renderElement>

texmap

Haritayı ayrı bir arabellekte görüntüler. Harita, öğenin tek alt öğesi olarak belirtilir.

BloomGlare

Ayrı ayrı parlama ve yansıma efektleri.

Işık Seçimi

Seçilen ışık alt kümesinden gelen aydınlatma. Alt küme şu şekilde belirtilir:

<renderElement class=”LightSelect”>*<included>[string]</included>?<includeEnvironment>?<includeSun></renderElement>

– Bireysel ışıklar “adlarıyla” adlandırılır (dahil edilecekler listesiyle aynı), ayrıca güneş ve gökyüzünü ayrı ayrı dahil etme seçeneği de vardır (çünkü bunların kaynak düğümü yoktur).

Tarafından desteklenmektedir BetterDocs

Bir yanıt yazın

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