View Categories

Doku, Renk Değişiklikleri ve Kombinasyonları

8 dakika okuma

Bu bölümde renkleri değiştiren ve birleştiren bazı dokuları ele alacağız.

TexAColorOp #


En çok kullanılan kombinasyon eklentilerinden biridir  . İki giriş AColor dokusuna, iki isteğe bağlı çarpan dokusuna, isteğe bağlı ayrı bir alfa kanalı giriş dokusuna ve çok sayıda çıkış dokusuna sahiptir: toplam, fark, çarpım, bölme, minimum, maksimum, yoğunluk, güç ve tek renk kanalı çıkışları.

Parametreler #

  • renk_a  – İlk renk

  • color_b  – İkinci renk

  • mult_a  – İlk renk için çarpan

  • mult_b  – İkinci renk için çarpan

  • result_alpha  – Sonucun alfa değeri; belirtilmezse, ilk renkten alınan sonuç alfa değeri kullanılır.

  • Mod  – Ana dokunun çıktısı olarak hangi çıktının dikkate alınması gerektiği (0 – result_a, 1 – result_b, 2 – çarpım, 3 – toplam, 4 – fark, 5 – üs, 6 – bölme, 7 – Minimum, 8 – Maksimum, 9 – mutlak fark), 10 – Daha düşük yoğunluklu renk, 11 – Daha yüksek yoğunluklu renk

  • ürün  –  (renk_a*çoklu_a)*(renk_b*çoklu_b)

  • bölme  –  (renk_a*çarpı_a)/(renk_b*çarpı_b)

  • minimum  –  Min(color_a*mult_a , color_b*mult_b)

  • maksimum  –  Maks(renk_a*mult_a , color_b*mult_b)

  • toplam  –  (renk_a*çarpım_a)+(renk_b*çarpım_b)

  • fark  –  (renk_a*çarpım_a)-(renk_b*çarpım_b)

  • sonuç_a  –  renk_a*çoklu_a

  • sonuç_b  –  renk_b*çarpma_b

  • kırmızı  –  (color_a*mult_a).r

  • yeşil  –  (color_a*mult_a).g

  • mavi  –  (color_a*mult_a).b

  • alfa  –  (renk_a*çoklu_a).a

  • yoğunluk  –  mult_a*(color_a.r+color_a.g+color_a.b)/3.0

  • güç  –  (renk_a*çarpı_a)^çarpı_b

Örnek #

Görüntünün orta bölümü, A dokusunun  (solda)  B dokusuyla  (sağda) çarpılması sonucu elde edilmiştir .

Kod #

# Load scene from a file.
renderer.load(os.path.join(SCENE_PATH, 'material.vrscene'))
 
newBitmap = renderer.classes.BitmapBuffer()
newBitmap.file = os.path.join('assets', 'bricks01.jpg')
newTexture = renderer.classes.TexBitmap()
newTexture.bitmap = newBitmap
 
newBitmap2 = renderer.classes.BitmapBuffer()
newBitmap2.file = os.path.join('assets', 'Wood_Diff.jpg')
newTexture2 = renderer.classes.TexBitmap()
newTexture2.bitmap = newBitmap2
 
# Create a new TexAColorOp to combine the textures
combinedTexture = renderer.classes.TexAColorOp()
# Assign the input textures
combinedTexture.color_a = newTexture
combinedTexture.color_b = newTexture2
combinedTexture.mode = 2   # product mode
 
diffuseBRDF = renderer.classes.BRDFDiffuse()
diffuseBRDF.color_tex = combinedTexture
 
newMaterial = renderer.classes.MtlSingleBRDF()
newMaterial.brdf = diffuseBRDF
 
newNode = renderer.classes.Node()
newNode.material = newMaterial
newNode.geometry = renderer.plugins['CubeShape@mesh2']
newNode.transform = vray.Transform(vray.Matrix(1), vray.Vector(-15, 0, 0))
// Load scene from a file.
renderer.load("material.vrscene");
 
BitmapBuffer newBitmap = renderer.newPlugin<BitmapBuffer>();
newBitmap.set_file("assets" PATH_DELIMITER "bricks01.jpg");
TexBitmap newTexture = renderer.newPlugin<TexBitmap>();
newTexture.set_bitmap(newBitmap);
 
BitmapBuffer newBitmap2 = renderer.newPlugin<BitmapBuffer>();
newBitmap2.set_file("assets" PATH_DELIMITER "Wood_Diff.jpg");
TexBitmap newTexture2 = renderer.newPlugin<TexBitmap>();
newTexture2.set_bitmap(newBitmap2);
 
// Create a new TexAColorOp to combine the textures
TexAColorOp combinedTexture = renderer.newPlugin<TexAColorOp>();
// Assign the input textures
combinedTexture.set_color_a(newTexture);
combinedTexture.set_color_b(newTexture2);
combinedTexture.set_mode(2);   // product mode
 
BRDFDiffuse diffuseBRDF = renderer.newPlugin<BRDFDiffuse>();
diffuseBRDF.set_color_tex(combinedTexture);
 
MtlSingleBRDF newMaterial = renderer.newPlugin<MtlSingleBRDF>();
newMaterial.set_brdf(diffuseBRDF);
 
Node newNode = renderer.newPlugin<Node>();
newNode.set_material(newMaterial);
newNode.set_geometry(renderer.getPlugin("CubeShape@mesh2"));
newNode.set_transform(Transform(Matrix(1), Vector(-15, 0, 0)));
// Load scene from a file.
renderer.Load("material.vrscene");
 
BitmapBuffer newBitmap = renderer.NewPlugin<BitmapBuffer>();
newBitmap.File = Path.Combine("assets", "bricks01.jpg");
TexBitmap newTexture = renderer.NewPlugin<TexBitmap>();
newTexture.Bitmap = newBitmap;
 
BitmapBuffer newBitmap2 = renderer.NewPlugin<BitmapBuffer>();
newBitmap2.File = Path.Combine("assets", "Wood_Diff.jpg");
TexBitmap newTexture2 = renderer.NewPlugin<TexBitmap>();
newTexture2.Bitmap = newBitmap2;
 
// Create a new TexAColorOp to combine the textures
TexAColorOp combinedTexture = renderer.NewPlugin<TexAColorOp>();
// Assign the input textures
combinedTexture.ColorA = newTexture;
combinedTexture.ColorB = newTexture2;
combinedTexture.Mode = 2;   // product mode
 
BRDFDiffuse diffuseBRDF = renderer.NewPlugin<BRDFDiffuse>();
diffuseBRDF.ColorTex = combinedTexture;
 
MtlSingleBRDF newMaterial = renderer.NewPlugin<MtlSingleBRDF>();
newMaterial.Brdf = diffuseBRDF;
 
Node newNode = renderer.NewPlugin<Node>();
newNode.Material = newMaterial;
newNode.Geometry = renderer.GetPlugin("CubeShape@mesh2");
newNode.Transform = new Transform(new Matrix(1), new Vector(-15, 0, 0));
// Load scene from a file synchronously.
renderer.loadSync("material.vrscene");
 
var newBitmap = renderer.classes.BitmapBuffer();
newBitmap.file = path.join("assets", "bricks01.jpg");
var newTexture = renderer.classes.TexBitmap();
newTexture.bitmap = newBitmap;
  
var newBitmap2 = new renderer.classes.BitmapBuffer();
newBitmap2.file = path.join("assets", "Wood_Diff.jpg");
var newTexture2 = new renderer.classes.TexBitmap();
newTexture2.bitmap = newBitmap2;
  
// Create a new TexAColorOp to combine the textures
var combinedTexture = new renderer.classes.TexAColorOp();
// Assign the input textures
combinedTexture.color_a = newTexture;
combinedTexture.color_b = newTexture2;
combinedTexture.mode = 2;   // product mode
  
var diffuseBRDF = new renderer.classes.BRDFDiffuse();
diffuseBRDF.color_tex = combinedTexture;
 
var newMaterial = renderer.classes.MtlSingleBRDF();
newMaterial.brdf = diffuseBRDF;
 
var newNode = renderer.classes.Node();
newNode.material = newMaterial;
newNode.geometry = renderer.plugins["CubeShape@mesh2"];
newNode.transform = vray.Transform(vray.Matrix(1), vray.Vector(-15, 0, 0));

TexBlend #


Giriş olarak kullanılan iki AColor dokusunu, ağırlıklandırma için başka bir float dokusu (veya elbette sabit bir değer) kullanarak birleştirin.

Parametreler #

  • color_a  – giriş dokusu A

  • color_b  – giriş dokusu B

  • blend_amount  – karıştırma katsayısı (doku olabilir)

  • composite  – Eğer true ise, color_b, alfa değeri de dikkate alınarak, verilen ağırlıkla color_a’nın üzerine kompozit olarak uygulanacaktır.


Örnek #

Görüntünün orta bölümü, Doku Üstü (sol) ve Renk Alt (sağ) arasında bir karışımı temsil etmektedir.

TexClamp #


Giriş dokusunu belirli minimum ve maksimum değerler arasında sınırlandırın.

Parametreler #

  • doku  – Giriş dokusu

  • min_color  – Dokudan örnek alınacak minimum değer

  • max_color  – Dokudan örnek alınacak maksimum değer


TexCondition #


İki kayan noktalı doku arasında yapılan bir tür karşılaştırmaya bağlı olarak iki AColor dokusu arasında geçiş yapın.

Parametreler #

  • İşlem  – Koşul kontrolü: 0 – eşit, 1 – eşit değil, 2 – büyük, 3 – büyük veya eşit, 4 – küçük, 5 – küçük veya eşit

  • op_a  – Karşılaştırılacak ilk sayı

  • op_b  – Karşılaştırılacak ikinci sayı

  • result_true  – Koşul doğruysa döndürülecek renk

  • result_false  – Koşul yanlışsa döndürülecek renk

  • renk  – Ortaya çıkan renk

Örnek #

Burada kareli ve mermer dokuları birleştiriyoruz ve konturlarının eşleştiği yerlerde siyah renk elde ediyoruz.

TexFloatOp #


TexAColorOp’un kayan noktalı sayılar için olan versiyonuna benzer şekilde, çok sayıda fonksiyona sahiptir.

Parametreler #

  • float_a  – İlk sayı

  • float_b  – İkinci sayı

  • ürün  –  float_a*float_b

  • oran  –  float_a/float_b

  • toplam  –  float_a+float_b

  • fark  –  float_a-float_b

  • üs  – Birinci sayının ikinci sayının kuvvetine yükseltilmesi

  • sin  –  sin(float_a*float_b)

  • kosinüs  –  kosinüs(float_a*float_b)

  • asin  –  asin(float_a*float_b)

  • acos  –  acos(float_a*float_b)

  • atan  –  atan(float_a*float_b)

  • atan2  –  atan2(float_b, float_a) , float_b/float_a’nın arktanjantını hesaplar. 

  • min  –  min(float_a, float_b)

  • maksimum  –  maksimum(float_a, float_b)

  • abs  –  abs(float_a)

  • ceil  –  ceil(float_a)

  • exp  –  exp(float_a)

  • zemin  –  zemin(float_a)

  • log  –  log(float_a)

  • log10  –  log10(float_a)

  • sqrt  – float_a’nın karekökü

  • fmod  –  fmod(float_a, float_b)

  • ortalama  –  (float_a+float_b)*0.5

  • tan  –  tan(float_a)

  • mod  – Çıkış parametresi belirtilmediğinde hangi çıktının kullanılacağını belirler. İşlem türünün animasyonlu olması gerekiyorsa kullanışlıdır.

TexGradient, TexGradientRamp, TexRamp #


Gradyan dokular.

Parametreler #

  • compatibility_with – Bu, farklı uygulamalardan dışa aktarılan dokuları birbirinden ayırt etmek için kullanılır. Değer şu anlama gelir: 0 – 3ds Max (bu aynı zamanda varsayılan değerdir), 1 – Maya, …

  • alpha_from_intensity  – Eğer 2 ise, alfa değeri 1.0f’ye zorlanır; 1 ise, elde edilen alfa değeri renk yoğunluğu (compliance_with 0 ise) veya renk parlaklığıdır (compliance_with 1 ise); 0 ise, alfa değeri bitmap alfa değerinden alınır.

  • ters çevir  – Doğruysa, ortaya çıkan doku rengi ters çevrilecektir.

  • invert_alpha  – Eğer true ise ve invert açık ise, ortaya çıkan dokunun alfa değeri de tersine çevrilir. Eğer false ise, sadece renk tersine çevrilir.

  • color_mult  – Doku rengi için bir çarpan

  • color_offset  – Doku rengi için ek bir ofset değeri.

  • alpha_mult  – Doku alfa değeri için bir çarpan

  • alpha_offset  – Doku alfa değeri için ek bir ofset.

  • nouvw_color  – Geçerli uvw koordinatı olmadığında kullanılacak renk

  • renk  – Ortaya çıkan renk

  • out_transparency  – Elde edilen şeffaflık

  • out_alpha  – Elde edilen alfa değeri

  • çıkış_yoğunluğu  – Elde edilen yoğunluk

  • uvwgen  – Doku için UVW oluşturucu

  • placement_type  – Dokunun geçerli kısmının uygulanma şekli: 0 – tüm doku geçerli, 1 – kırpma, 2 – yerleştirme

  •  – Geçerli doku sektörünün U koordinatı

  •  – Geçerli doku sektörünün V koordinatı

  •  – Geçerli doku sektörünün genişliği

  •  – Geçerli doku sektörünün yüksekliği

  • titreşim  – Rastgele yerleştirme varyasyonunun miktarı

  • tile_u  – Doğruysa yatay döşeme vardır.

  • tile_v  – Doğruysa dikey döşeme vardır.

  • uv_noise_on  – Doğruysa gürültü etkinleştirilir.

  • uv_noise_animate  – Eğer true ise gürültü animasyonlu hale getirilir. Gürültüyü canlandırmak için “UV noise phase” kullanın.

  • uv_noise_amount  – UV gürültü miktarı

  • uv_noise_levels  – UV gürültü yinelemeleri

  • uv_noise_size  – UV gürültü boyutu

  • un_noise_phase  – UV gürültü fazı

  • pozisyonlar  – verilen renklerin pozisyonları

  • renkler  – verilen renkler

  • texture_map  – eşlenmiş gradyan rampası için kullanılan doku

  • gradient_type  – 0:dört köşeli, 1:kutu, 2:diyagonal, 3:aydınlatma, 4:doğrusal, 5:eşlenmiş, 6:normal, 7:pong, 8:radyal, 9:spiral, 10:süpürme, 11:tartan

  • İnterpolasyon  – 0:yok, 1:doğrusal, 2:yukarı doğru üstel, 3:aşağı doğru üstel, 4:yumuşak, 5:çıkıntı, 6:zirve

  • noise_amount  – Bozulma gürültü miktarı

  • gürültü_türü  – 0:düzenli, 1:fraktal, 2:türbülans

  • gürültü_boyutu  – varsayılan = 1.0

  • gürültü_fazı  – varsayılan = 0.0

  • gürültü_seviyeleri  – varsayılan = 4.0

  • noise_treshold_low  – varsayılan = 0.0f

  • noise_treshold_high  – varsayılan = 1.0f

  • gürültü_yumuşatma  – varsayılan = 0.0f

  • gradient_position  – ‘gradient_type’ ‘position’ olduğunda, bu parametre döndürülecek gradyanın renginin konumunu belirtir.

Örnek #

İşte duvar kağıdı, sandalye ve ağacın süslemeleri için degrade haritalarının kullanıldığı bir örnek:

TexHSVToRGB #


HSV giriş dokusunu RGB’ye dönüştürün.

Parametreler #

  • inHsv  – HSV formatında doku girişi

  • Renk  – Doku çıktısını RGB formatında verin.

TexInvert #


Girdi dokusunun tamamlayıcı rengini döndürür.

Aşağıdaki sahne, sahne paketi kullanılarak  ve “vrscenes/map_41 TexInvert.vrscene” satırının yorum satırı olmaktan çıkarılmasıyla oluşturulmuştur.

Parametreler #

  • Doku  – Tersine çevrilecek doku

  • invert_alpha  – Alfa kanalını da tersine çevirip çevirmeme

  • renk  – Ters çevrilmiş doku rengi

Doku Katmanlı #


Sınırsız sayıda dokuyu birleştirin.

Parametreler #

  • compatibility_with  – Bu, farklı uygulamalardan dışa aktarılan dokuları birbirinden ayırt etmek için kullanılır. Değer şu anlama gelir: 0 – 3ds Max (bu aynı zamanda varsayılan değerdir), 1 – Maya, …

  • alpha_from_intensity  – Eğer 2 ise, alfa değeri 1.0f’ye zorlanır; 1 ise, elde edilen alfa değeri renk yoğunluğu (compliance_with 0 ise) veya renk parlaklığıdır (compliance_with 1 ise); 0 ise, alfa değeri bitmap alfa değerinden alınır.

  • ters çevir  – Doğruysa, ortaya çıkan doku rengi ters çevrilecektir.

  • invert_alpha  – Eğer true ise ve invert açık ise, ortaya çıkan dokunun alfa değeri de tersine çevrilir. Eğer false ise, sadece renk tersine çevrilir.

  • color_mult  – Doku rengi için bir çarpan

  • color_offset  – Doku rengi için ek bir ofset değeri.

  • alpha_mult  – Doku alfa değeri için bir çarpan

  • alpha_offset  – Doku alfa değeri için ek bir ofset.

  • nouvw_color  – Geçerli uvw koordinatı olmadığında kullanılacak renk

  • renk  – Ortaya çıkan renk

  • out_transparency  – Elde edilen şeffaflık

  • out_alpha  – Elde edilen alfa değeri

  • çıkış_yoğunluğu  – Elde edilen yoğunluk

  • Dokular  – Katmanlanacak dokular

  • blend_modes  – 0:Yok, 1:Üzerine, 2:İçeri, 3:Dışarı, 4:Ekle, 5:Çıkar, 6:Çarp, 7:Fark, 8:Aydınlat, 9:Koyulaştır, 10:Doygunlaştır, 11:Doygunluğu Azalt, 12:Aydınlat

  • alfa  – Alfa katsayısı için doku veya kayan nokta

TexLuminance #


Giriş renk dokusundan tek bir kayan noktalı parlaklık değeri (0.3R + 0.59G + 0.11B) döndürür. V-Ray terimleriyle bunun “yoğunluk” teriminden farklı olduğunu unutmayın; yoğunluk (0.33R + 0.33G + 0.33B)’dir.

Parametreler #

  • Giriş  – Giriş dokusu

  • parlaklık  – Çıktı dokusunu ondalık değerlerle birlikte

TexRaySwitch #


Farklı ışın türleri için farklı dokular kullanın: gölge, küresel aydınlatma, yansıma, kırılma ve varsayılan.

Parametreler #

  • default_texture  – Bu doku, belirli bir ışın türü için doku ayarlanmamışsa veya ışın türü bilinmiyorsa kullanılır.

  • shadow_ray_texture  – Bu doku gölge ışınları için kullanılır.

  • gi_ray_texture  – Bu doku, küresel aydınlatma (GI) ışınları için kullanılır.

  • reflect_ray_texture  – Bu doku yansıma ışınları için kullanılır.

  • refract_ray_texture  – Bu doku, kırılma ışınları için kullanılır.

Doku Yeniden Haritalama #


Giriş dokusunun rengini, kullanıcı tanımlı bir eğri aracılığıyla yeniden eşleyin.

Sahne “vrscenes/map_05 TexBitmap & TexRemap.vrscene” şeklindedir.

Parametreler #

  • Tür  – dönüştürme türü: 0:RemapValue, 1:RemapColor, 2:RemapHSV.

  • float_positions  – verilen float değerlerinin konumları

  • float_values  ​​- verilen ondalık değerler

  • float_types  – kayan noktalı sayılar için enterpolasyon türleri (Yok – 0; Doğrusal – 1; Pürüzsüz – 2; Eğri – 3)

  • renk_konumları  – verilen ondalık sayılar

  • renk_renkleri  – verilen renkler

  • color_types  – renkler için enterpolasyon türleri (Yok – 0; Doğrusal – 1; Pürüzsüz – 2; Eğri – 3)

  • red_positions  – kırmızı kanal için verilen değerlerin konumları

  • red_values  ​​- kırmızı kanal için verilen değerler

  • red_types  – kırmızı kanal için enterpolasyon türleri (Yok – 0; Doğrusal – 1; Pürüzsüz – 2; Spline – 3)

  • yeşil_konumlar  – yeşil kanal için verilen değerlerin konumları

  • yeşil_değerler  – yeşil kanal için verilen değerler

  • green_types  – yeşil kanal için enterpolasyon türleri (Yok – 0; Doğrusal – 1; Pürüzsüz – 2; Spline – 3)

  • mavi_konumlar  – mavi kanal için verilen değerlerin konumları

  • blue_values  ​​- mavi kanal için verilen değerler

  • blue_types  – mavi kanal için enterpolasyon türleri (Yok – 0; Doğrusal – 1; Pürüzsüz – 2; Eğri – 3)

  • hue_positions  – renk tonu kanalı için verilen değerlerin konumları

  • hue_values  ​​- renk tonu kanalı için verilen değerler

  • hue_types  – renk tonu kanalı için enterpolasyon türleri (Yok – 0; Doğrusal – 1; Pürüzsüz – 2; Eğri – 3)

  • saturation_positions  – doygunluk kanalı için verilen değerlerin konumları

  • saturation_values  ​​- doygunluk kanalı için verilen değerler

  • saturation_types  – Doygunluk kanalı için enterpolasyon türleri (Yok – 0; Doğrusal – 1; Pürüzsüz – 2; Spline – 3)

  • değer_konumları  – verilen değerlerin değer kanalındaki konumları

  • değer_değerleri  – değer kanalı için verilen değerler

  • değer_türleri  – değer kanalı için enterpolasyon türleri (Yok – 0; Doğrusal – 1; Pürüzsüz – 2; Eğri – 3)

  • alpha_from_intensity  – Eğer true ise, elde edilen alfa değeri renk yoğunluğudur; aksi takdirde alfa değeri renklerden alınır.

  • out_value  – input_value ve color parametrelerine bağlı olarak çıktı değeri.

  • out_color  – input_value/input_color ve float parametrelerine bağlı olarak çıktı rengi.

Tarafından desteklenmektedir BetterDocs

Bir yanıt yazın

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