View Categories

BRDF’ler

3 dakika okuma

giriiş #

Bu bölümde, V-Ray’in desteklediği farklı BRDF türlerinden bahsedeceğiz. BRDFBlinn, BRDFWard, BRDFGGX, BRDFCookTorrance, BRDFGlass ve BRDFMirror’ı ele alacağız. 1. Bölümde bahsettiğimiz gibi, BRDF, Çift Yönlü Yansıma Dağıtım Fonksiyonu anlamına gelir. Genellikle bu eklentiler  MtlSingleBRDF’ye  (veya daha gelişmiş Mtl*BRDF eklentilerinden birine) eklenir. Farklı gölgelendirme türlerini uygularlar ve parametre olarak farklı renkler ve dokular alırlar. Nesneden bir noktayı gölgelendirirken, ilgilenilen ışık üzerinde bir noktayı örnekleyip ışını bu noktadan izleriz. Noktadaki bu ışıktan gelen ışık miktarını hesapladıktan sonra, BRDF devreye girer ve bu ışığın çeşitli yönlerde nasıl dağıldığını (yansıtıldığını) bize söyler.

BRDFBlinn #

Bu gölgelendirici,  Blinn gölgelendirme algoritmasını uygular .

Parametreler #

  • Renk  – Yüzeyin temel rengi

  • şeffaflık  – Şeffaflık değeri

  • trace_depth  – Maksimum yansıma derinliği (-1 değeri genel seçeneklerle kontrol edilir)

  • affect_alpha  – Oluşturma kanallarının BRDF üzerinden nasıl yayılacağını belirtir (0 – yalnızca renk kanalı; 1 – renk ve alfa; 2 – tüm kanallar).

  • reflect_exit_color  – Maksimum derinliğe ulaşıldığında kullanılacak renk.

  • reflect_dim_distance_on  – Karartma mesafesini etkinleştirmek için True

  • reflect_dim_distance  – Işınların uzunluğu arttıkça yansımayı ne kadar karartacağınızı gösterir.

  • reflect_dim_distance_falloff  – Karartma mesafesi için düşüş

  • glossyAsGI  – Parlak ışınların V-Ray tarafından GI ışınları olarak işlenip işlenmeyeceğini belirler: 0 – asla; 1 – yalnızca zaten GI ışınları olarak işaretlenmiş ışınlar için; 2 – her zaman

  • smooth_edge  – Işık/gölge geçişinde BRDF’nin kenarını yumuşat.

  • Anizotropi  – Yansıma anizotropisi (-1, 1) aralığında

  • anisotropy_rotation  – [0, 1] aralığında anizotropi dönüşü

  • fix_dark_edges – parlak yansımalarla koyu kenarları düzeltmek için true değerini alın; eski sürümlerle uyumluluk için bunu yalnızca false olarak ayarlayın.

Örnek #

# Create a new BRDFBlinn
diffuseBRDF = renderer.classes.BRDFBlinn()
# Specify a golden color
diffuseBRDF.color = vray.Color(1.0, 1.0, 0.0)

newMaterial = renderer.classes.MtlSingleBRDF()
newMaterial.brdf = diffuseBRDF

// Create a new BRDFBlinn
BRDFBlinn newBRDF = renderer.newPlugin<BRDFBlinn>();
// Specify a golden color
newBRDF.set_color(Color(1.0f, 1.0f, 0.0f));

MtlSingleBRDF newMaterial = renderer.newPlugin<MtlSingleBRDF>();
newMaterial.set_brdf(newBRDF);

// Create a new BRDFBlinn
BRDFBlinn newBRDF = renderer.NewPlugin<BRDFBlinn>();
// Specify a golden color
newBRDF.Color = new Color(1.0f, 1.0f, 0.0f);

MtlSingleBRDF newMaterial = renderer.NewPlugin<MtlSingleBRDF>();
newMaterial.Brdf = newBRDF;

// Create a new BRDFBlinn
var diffuseBRDF = new renderer.classes.BRDFBlinn();
// Specify a golden color
diffuseBRDF.color = new vray.Color(1.0, 1.0, 0.0);

var newMaterial = new renderer.classes.MtlSingleBRDF();
newMaterial.brdf = diffuseBRDF;

BRDF Bölgesi #

Bu gölgelendirici,  Ward gölgelendirme algoritmasını uygular .

Parametreler #

Ana parametreler BRDFBlinn’dekilerle aynıdır  .

Örnek #

# Create a new BRDFWard
diffuseBRDF = renderer.classes.BRDFWard()
# Specify a golden color
diffuseBRDF.color = vray.Color(1.0, 1.0, 0.0)

newMaterial = renderer.classes.MtlSingleBRDF()
newMaterial.brdf = diffuseBRDF

// Create a new BRDFWard
BRDFWard newBRDF = renderer.newPlugin<BRDFWard>();
// Specify a golden color
newBRDF.set_color(Color(1.0f, 1.0f, 0.0f));

MtlSingleBRDF newMaterial = renderer.newPlugin<MtlSingleBRDF>();
newMaterial.set_brdf(newBRDF);

// Create a new BRDFWard
BRDFWard newBRDF = renderer.NewPlugin<BRDFWard>();
// Specify a golden color
newBRDF.Color = new Color(1.0f, 1.0f, 0.0f);

MtlSingleBRDF newMaterial = renderer.NewPlugin<MtlSingleBRDF>();
newMaterial.Brdf = newBRDF;

// Create a new BRDFWard
var diffuseBRDF = new renderer.classes.BRDFWard();
// Specify a golden color
diffuseBRDF.color = new vray.Color(1.0, 1.0, 0.0);

var newMaterial = new renderer.classes.MtlSingleBRDF();
newMaterial.brdf = diffuseBRDF;

BRDFGGX #

Bu gölgelendirici, Mikroyüzey GGR gölgelendirme algoritmasını uygular (bkz. TR75 – TROWBRIDGET. S., REITZK. P.: “Işın yansıması için pürüzlü bir yüzeyin ortalama düzensizlik gösterimi.”, J. Opt. Soc. Am. 65, 5 (May 1975), 531–536. ve Bruce Walter ve diğerleri tarafından yazılan “Pürüzlü Yüzeylerden Kırılma için Mikroyüzey Modelleri”). Yüzeylerden ışık yansımalarını modellemek için kullanışlıdır.

Parametreler #

Ana parametreler BRDFBlinn’dekilerle aynıdır  , bunlara ek olarak şu iki parametre de mevcuttur:

  • gtr_gamma  – GGX yansıma modelini kullanırken parlak vurgunun kuyruğunu ne kadar artırıp azaltacağınızı belirler.

  • gtr_oldGamma – GTR gama değeri 2.0’dan farklı olduğunda gölge maskeleme hesaplaması için eski (ve hatalı) yöntemi kullanmak için true değeri.

Örnek #

# Create a new BRDFGGX
diffuseBRDF = renderer.classes.BRDFGGX()
# Specify a golden color
diffuseBRDF.color = vray.Color(1.0, 1.0, 0.0)

newMaterial = renderer.classes.MtlSingleBRDF()
newMaterial.brdf = diffuseBRDF

// Create a new BRDFGGX
BRDFGGX newBRDF = renderer.newPlugin<BRDFGGX>();
// Specify a golden color
newBRDF.set_color(Color(1.0f, 1.0f, 0.0f));
 
MtlSingleBRDF newMaterial = renderer.newPlugin<MtlSingleBRDF>();
newMaterial.set_brdf(newBRDF);

// Create a new BRDFGGX
BRDFGGX newBRDF = renderer.NewPlugin<BRDFGGX>();
// Specify a golden color
newBRDF.Color = new Color(1.0f, 1.0f, 0.0f);

MtlSingleBRDF newMaterial = renderer.NewPlugin<MtlSingleBRDF>();
newMaterial.Brdf = newBRDF;

// Create a new BRDFGGX
var diffuseBRDF = new renderer.classes.BRDFGGX();
// Specify a golden color
diffuseBRDF.color = new vray.Color(1.0, 1.0, 0.0);

var newMaterial = new renderer.classes.MtlSingleBRDF();
newMaterial.brdf = diffuseBRDF;

BRDFCookTorrance #

Bu gölgelendirici,  Mikroyüzey Cook-Torrance gölgelendirme algoritmasını uygular .

Parametreler #

Ana parametreler BRDFBlinn’dekilerle aynıdır. 

Örnek #

# Create a new BRDFCookTorrance
diffuseBRDF = renderer.classes.BRDFCookTorrance()
# Specify a golden color
diffuseBRDF.color = vray.Color(1.0, 1.0, 0.0)

newMaterial = renderer.classes.MtlSingleBRDF()
newMaterial.brdf = diffuseBRDF

// Create a new BRDFCookTorrance
BRDFCookTorrance newBRDF = renderer.newPlugin<BRDFCookTorrance>();
// Specify a golden color
newBRDF.set_color(Color(1.0f, 1.0f, 0.0f));

MtlSingleBRDF newMaterial = renderer.newPlugin<MtlSingleBRDF>();
newMaterial.set_brdf(newBRDF);

// Create a new BRDFCookTorrance
BRDFCookTorrance newBRDF = renderer.NewPlugin<BRDFCookTorrance>();
// Specify a golden color
newBRDF.Color = new Color(1.0f, 1.0f, 0.0f);

MtlSingleBRDF newMaterial = renderer.NewPlugin<MtlSingleBRDF>();
newMaterial.Brdf = newBRDF;

// Create a new BRDFCookTorrance
var diffuseBRDF = new renderer.classes.BRDFCookTorrance();
// Specify a golden color
diffuseBRDF.color = new vray.Color(1.0, 1.0, 0.0);

var newMaterial = new renderer.classes.MtlSingleBRDF();
newMaterial.brdf = diffuseBRDF;

BRDFGlass #

Bu BRDF’de cam malzeme kullanılmıştır.

Parametreler #

  • renk  – malzemenin temel rengi

  • ior  – Cam için IOR; yüzeyde hacim gölgelendirici varsa bu göz ardı edilir (hacim IOR kullanılır).

  • affect_alpha  – Görüntü kanallarının cam üzerinden nasıl yayılacağını belirtir (0 – yalnızca renk kanalı; 1 – renk ve alfa; 2 – tüm kanallar).

  • trace_depth  – Maksimum kırılma yansımaları (-1 değeri genel seçeneklerle kontrol edilir)

  • reflect_exit_color  – Maksimum derinliğe ulaşıldığında kullanılacak renk.

  • refract_exit_color – exit_color_on true olduğunda maksimum derinliğe ulaşıldığında kullanılacak renk

Örnek #

# Create a new BRDFGlass
diffuseBRDF = renderer.classes.BRDFGlass()
# Specify a golden color
diffuseBRDF.color = vray.Color(1.0, 1.0, 0.0)

newMaterial = renderer.classes.MtlSingleBRDF()
newMaterial.brdf = diffuseBRDF

// Create a new BRDFGlass
BRDFGlass newBRDF = renderer.newPlugin<BRDFGlass>();
// Specify a golden color
newBRDF.set_color(Color(1.0f, 1.0f, 0.0f));

MtlSingleBRDF newMaterial = renderer.newPlugin<MtlSingleBRDF>();
newMaterial.set_brdf(newBRDF);

// Create a new BRDFGlass
BRDFGlass newBRDF = renderer.NewPlugin<BRDFGlass>();
// Specify a golden color
newBRDF.Color = new Color(1.0f, 1.0f, 0.0f);

MtlSingleBRDF newMaterial = renderer.NewPlugin<MtlSingleBRDF>();
newMaterial.Brdf = newBRDF;

// Create a new BRDFGlass
var diffuseBRDF = new renderer.classes.BRDFGlass();
// Specify a golden color
diffuseBRDF.color = new vray.Color(1.0, 1.0, 0.0);

var newMaterial = new renderer.classes.MtlSingleBRDF();
newMaterial.brdf = diffuseBRDF;

BRDFMirror #

Bu BRDF mükemmel bir aynalama işlevi görür.

Parametreler #

  • trace_depth  – Maksimum yansıma derinliği (-1 değeri genel seçeneklerle kontrol edilir)

  • affect_alpha  – Oluşturma kanallarının BRDF üzerinden nasıl yayılacağını belirtir (0 – yalnızca renk kanalı; 1 – renk ve alfa; 2 – tüm kanallar).

  • reflect_exit_color  – Maksimum derinliğe ulaşıldığında kullanılacak renk.

  • reflect_dim_distance_on  – Karartma mesafesini etkinleştirmek için True

  • reflect_dim_distance  – Işınların uzunluğu arttıkça yansımayı ne kadar karartacağınızı gösterir.

  • reflect_dim_distance_falloff – Karartma mesafesi için düşüş

Örnek #

# Create a new BRDFMirror
diffuseBRDF = renderer.classes.BRDFMirror()
# Specify a golden color
diffuseBRDF.color = vray.Color(1.0, 1.0, 0.0)

newMaterial = renderer.classes.MtlSingleBRDF()
newMaterial.brdf = diffuseBRDF

// Create a new BRDFMirror
BRDFMirror newBRDF = renderer.newPlugin<BRDFMirror>();
// Specify a golden color
newBRDF.set_color(Color(1.0f, 1.0f, 0.0f));

MtlSingleBRDF newMaterial = renderer.newPlugin<MtlSingleBRDF>();
newMaterial.set_brdf(newBRDF);

// Create a new BRDFMirror
BRDFMirror newBRDF = renderer.NewPlugin<BRDFMirror>();
// Specify a golden color
newBRDF.Color = new Color(1.0f, 1.0f, 0.0f);

MtlSingleBRDF newMaterial = renderer.NewPlugin<MtlSingleBRDF>();
newMaterial.Brdf = newBRDF;

// Create a new BRDFMirror
var diffuseBRDF = new renderer.classes.BRDFMirror();
// Specify a golden color
diffuseBRDF.color = new vray.Color(1.0, 1.0, 0.0);

var newMaterial = new renderer.classes.MtlSingleBRDF();
newMaterial.brdf = diffuseBRDF;

Tarafından desteklenmektedir BetterDocs

Bir yanıt yazın

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