View Categories

Bölüm 3 – Pyro gölgelendiricisinin ve V-Ray Hacim Izgarası ayarlarının eşitlenmesi

12 dakika okuma

Genel Bakış #


Bu eğitim, Houdini simülasyonlarını V-Ray kullanarak 3ds Max’e aktarma ve işleme sürecini adım adım anlatan bir kılavuzun parçasıdır. 3. Bölüm, Pyro gölgelendiricisi ile V-Ray Hacim Izgarası arasındaki ayarları eşitlemeye odaklanmaktadır.

Bu son bölümde, Houdini’nin Pyro gölgelendiricisine ve ayarlarının benzer bir görüntü elde etmek için V-Ray Volume Grid’e nasıl aktarılabileceğine daha yakından bakacağız.

Üç örneği inceleyelim:

  1. Billowy Smoke ön ayarı kullanılarak oluşturulmuş, ateş içermeyen basit bir duman simülasyonu.

  2. Duman içermeyen, basit bir ateş simülasyonu, Dumansız Alev ön ayarı kullanılarak oluşturulmuştur.

  3. Fireball ön ayarı kullanılarak oluşturulmuş duman + ateş simülasyonu.

Başlamadan önce, Pyro shader ile V-Ray Volume Grid arasındaki önemli bir farkı açıklığa kavuşturmak gerekiyor.

Pyro shader ile ateş oluştururken, genellikle ateşin yoğunluğu için Isı alanını rengi için ise Sıcaklık alanını kullanırsınız . Bu eğitimin yazıldığı sırada, Hacim Izgarası (Volume Grid) bunlardan yalnızca birini kullanabiliyor, ikisini birden kullanamıyor . Çoğu durumda bu bir sorun teşkil etmez, ancak bu tür bir kontrole ihtiyaç duyabileceğiniz durumlar da vardır (örneğin, simülasyonda uygulanan Bozulma (Disturbance) nedeniyle Sıcaklık alanı gürültülü olduğunda). Bunu çözmenin olası bir yoluna göz atacağız.

Bu bölüme ait görselleri aşağıdaki butondan indirebilirsiniz:

Sadece Duman: Yoğun Duman ön ayarı #


En basit simülasyon için ayarları nasıl eşitleyeceğimize bakarak başlıyoruz. Bu eğitimde sağlanan .hip dosyası, ele alınan kurulumu içermektedir .

İşte simülasyonun oluşturulmuş görüntüsü, sağda ise Pyro ayarları yer alıyor.

Yoğunluk Ölçeği parametresi olarak ayarlanmış Duman Rengi ise saf Beyaz (1, 1, 1) olarak ayarlanmıştır .

Duman Alanı sekmesinde, Giriş Aralığı 0-10 olarak ayarlanmışken Uygunluk Aralığı etkinleştirilmiştir .

Ayrıca, 0.1 konumundaki noktanın değeri 0.5 olarak ayarlanmış şekilde, Arama Rampası Kullanımı da etkinleştirilmiştir.

Sonraki adımlarda bu ayarları V-Ray Volume Grid’e nasıl aktaracağımızı göreceğiz.


Öncelikle bir V-Ray Hacim Izgarası oluşturun ve önbelleğe alınmış .vdb dizisini yükleyin.

Yüklenen sekans için bir ön ayar seçmeniz istendiğinde, ” Ön Ayar Yok” seçeneğini seçin.

Giriş açılır menüsünden → “…” düğmesinden 3. Parti Kanal Eşlemeleri iletişim kutusunu açarak eşlemenin doğru olduğundan emin olun.

Hacim Izgarasını doğru yöne çevirmek için Giriş açılır menüsündeki ” Ekseni Yukarı Çevir” seçeneğini etkinleştirin .


Önizleme menüsünü açın ve GPU Önizlemesini etkinleştirin . Bu, parametre değişikliklerinizin etkisini önizlemek için son derece faydalı olacaktır.


Rendering → Volumetric Options… düğmesinden Volumetric Render Settings penceresini açın .

Ateş efektinin oluşturulmasını devre dışı bırakmak için Ateş açılır menüsündeki “Temel alınan” parametresini ” Devre dışı ” olarak ayarlayın . Bu kesinlikle gerekli değildir, ancak aksi takdirde Ateş Şeffaflık Modu “Tamamen Görünür” (varsayılan değer) olarak ayarlandığında Olasılıksal oluşturma ile ilgili bir mesajla karşılaşacaksınız.


Duman Rengi açılır menüsünü açın ve Sabit Rengi, Pyro gölgelendiricisindeki Duman Rengi parametresiyle eşleşecek şekilde Beyaz (1, 1, 1) olarak ayarlayın .


Duman Opaklığı açılır menüsünde Temel alınan parametreyi Duman olarak ayarlayın . Bu, Opaklık diyagramını ortaya çıkaracak ve Pyro gölgelendirici kurulumuyla eşleştirmenizi sağlayacaktır.

Pyro Shader’daki “Fit to Range ” seçeneğinin Kaynak Aralığı 0-10 olarak ayarlandığı için , Opacity diyagramında da aynı ayarları kullanmalısınız; sol noktayı [X,Y: 0, 0] ve sağ noktayı [X,Y: 10, 1] olarak ayarlayın.

Pyro shader’da “Use Lookup Ramp” seçeneğinin etkinleştirildiğini ve rampada [X,Y: 0.1, 0.5] konumunda üçüncü bir nokta bulunduğunu hatırlayın . Bu nedenle, Opaklık Diyagramında [X,Y: 1, 0.5] koordinatlarında bir noktaya ihtiyacınız var .

Houdini’deki Lookup Ramp, Fit to Range işleminden gelen Remapped Range’i kullanır. Volume Grid’in Opacity diyagramıyla aynı sonucu elde etmek için, aralığının 0 ile 1 arasında değil, 0 ile 10 arasında olduğunu aklınızda tutmanız gerekir; çünkü Pyro shader’ının yeniden eşlenmiş aralığı 0 ile 1 arasındadır. Bu nedenle noktayı [0.1, 0.5] yerine [1, 0.5] olarak belirledik.


İşte, Mantra’nın çıktısıyla karşılaştırıldığında, şimdiye kadar oluşturulan görüntünün görünümü:

Dikkat edilmesi gereken birkaç nokta var:

  1. Mantra ile karşılaştırıldığında, oluşturulan görüntüde bazı bilgiler eksik. Bunun nedeni, varsayılan değeri 0,001 olan Minimum Görünür Opaklık ayarıdır. Bu seçenek, opaklığı eşik değerinin altında olan voksel’leri eleyerek hacimsel oluşturmayı hızlandıran bir optimizasyondur. Bunun bir diğer nedeni de Opaklık Diyagramındaki en soldaki noktanın varsayılan X,Y koordinatları olabilir . Varsayılan olarak, X,Y koordinatları [0,1, 0]’dır, [0, 0] değil. Bunu kontrol ettiğinizden emin olun.

  2. Oluşturulan görüntünün Alfa kanalında bozulmalar var. Bunlar, Sahne Birimlerine Göre Ölçek Opaklığı seçeneğinden kaynaklanıyor. VDB’leri oluştururken bu seçenek her zaman devre dışı bırakılmalıdır; Phoenix FD’nin .aur önbellek dosyaları için kullanılır ve Duman Opaklığı oluşturma ayarlarının farklı birim ölçeklerinde aynı sonucu vermesini sağlar.


Minimum Görünür Opaklığı olarak ayarlayın ve Opaklık diyagramındaki en soldaki noktanın X,Y: [ 0, 0 ] konumunda olduğundan emin olun . Eksik pikseller artık görüntüde görünmelidir.


“Sahne Birimlerine Göre Ölçek Opaklığı” seçeneğini devre dışı bırakın. Dumanın artık çok daha yoğun göründüğünü hemen fark edeceksiniz. Bu sadece bir Görünüm penceresi önizleme özelliği değil ; gerçekten de çok daha yoğun bir şekilde işlenecektir.

Bunu düzeltmenin yolu, her noktanın Y koordinatlarını mevcut değerinin 100’e bölünmesiyle elde edilen değere düşürmektir. Koordinatların şu şekilde değişmesi gerekir:

Nokta 0: Herhangi bir değişiklik gerekmiyor.

1. Nokta: X,Y: [ 1, 0.5 ]’ten X,Y: [ 1, 0.005 ]’e gider.

2. Nokta: X,Y: [ 10, 1 ]’den X,Y: [ 10, 0.01 ]’e gider.


İşte, Mantra’nın çıktısıyla karşılaştırıldığında, oluşturulmuş görüntünün şu anki hali:

İki görüntüyü de açıp üst üste koyun ve aralarındaki farka bakın. Alfa düzleminde ihmal edilebilir bir fark (değer olarak 0,05’ten az) olduğunu ve bu farkın belirli alanlarla sınırlı kalmayıp her yere yayıldığını fark edeceksiniz.

Her açıdan bakıldığında, bu ikisi neredeyse tamamen aynı.


Son olarak, özetlemek gerekirse:

  1. Duman Parlaklığı parametresinin karşılığı, Duman Rengi açılır menüsündeki Ana Çarpan’dır .

  2. Duman Rengi, Duman Rengi sekmesindeki Sabit Renk ile aynıdır . Lütfen, Duman kanalı/Yoğunluk alanını kullanarak da rengi değiştirebileceğinizi, bunun için Temel parametresini Duman olarak ayarlayıp Renk gradyanını ince ayar yapabileceğinizi unutmayın.

  3. Dumanın opaklığı, Duman Opaklığı sekmesinden kontrol edilir ve Yoğunluk Hacmi parametresinin eşdeğerliği, Temel Alınan seçeneğiyle belirlenir .

  4. “Aralığa Uyarla” ve “Arama Rampasını Kullan” seçeneklerinin işlevselliği, Şeffaflık diyagramında ince ayarlar yapılarak yeniden oluşturulabilir .

  5. “Sahne Birimlerine Göre Şeffaflığı Ölçeklendir” seçeneğini devre dışı bırakmanız gerekiyor ; bu seçenek Phoenix FD .aur önbellek dosyaları için kullanılır .

  6. Sahne Birimlerine Göre Ölçek Şeffaflığını devre dışı bıraktığınızda, her noktanın Y koordinatını 100 kat azaltmanız gerekecektir .

  7. Eğer Houdini kurulumunuz için de aynı durum geçerliyse, Opaklık diyagramının en soldaki noktasının 0.0 olduğundan emin olun .

  8. Oluşturulan görüntüde eksik bilgi fark ederseniz, Minimum Görünür Opaklık değerini 0 olarak ayarlayın – varsayılan değer 0,001’dir ve dumanın bir kısmını kırpabilir.

Sadece Ateş: Dumansız Alev ön ayarı #


Bu bölümde, ateşin oluşturulması için Hacim Izgarası ayarları ele alınmaktadır. Bu eğitimde verilen .hip dosyası Houdini kurulumunu içermektedir .

İşte simülasyonun oluşturulmuş görüntüsü, sağda ise Pyro ayarları yer alıyor.

Aşağıda Duman Alanı, Yangın Yoğunluğu Alanı ve Yangın Sıcaklığı Alanı sekmelerindeki ayarlar yer almaktadır.


Tıpkı duman örneğinde olduğu gibi, hedefleriniz şu sırayla olmalıdır:

  1. Alfa’yı eşitleyin

  2. Yangının şiddetini eşitleyin.

  3. Ateşin rengini eşitleyin.

İşte bu simülasyon için Pyro shader ayarları. Şunlara dikkat edin:

  1. Yoğunluk alanı ısıdır ; başka bir deyişle, duman ve alfa ışınları ısı alanına bağlı olarak üretilecektir. Bu da size Hacim Izgarasında “Duman” olarak Isı alanını kullanmanız gerektiğini hemen gösterir.

  2. Isı alanı, Yangın Sıcaklığı sekmesinde kullanılır . Bu, yangının renginin ısı alanına bağlı olduğu anlamına gelir. Ayrıca, alan (0 – 3)’ten (0 – 1)’e geçecek şekilde yeniden eşlenmiştir.

  3. Ateşin rengi bir renk geçişine bağlıdır – Ateş Sıcaklığı sekmesindeki yeniden eşlemeyi göz önünde bulundurarak renk geçişinin renklerini ve konumlarını kopyalamalısınız.

  4. Sıcaklık alanı, Yangın Yoğunluğu sekmesinde kullanılır . Bu nedenle, yangının yoğunluğu Sıcaklık alanına bağlıdır. Bu özel simülasyonda, özellikle yeniden eşleme yapılmadığı ve alana gürültü uygulanmadığı için, sadece ısı alanını kullanmanız durumunda (3ds Max ve V-Ray’de yapacağımız şey bu) çok fazla bir fark görmeyeceksiniz. Bununla birlikte, bunun sorun olabileceği durumlar da vardır ve bunlardan birine son bölümde bakacağız.


Bir V-Ray Hacim Izgarası ekleyin ve VDB sekansını yükleyin.

3. Parti Kanal Eşlemeleri iletişim kutusunu açın:

  1. Duman kanalını Isı olarak ayarlayın .

  2. Hız X / Y / Z değerini vel.x / y / z olarak ayarlayın.

Izgara yönünü düzeltmek için “Eksenleri Çevir” seçeneğini etkinleştirdiğinizden emin olun .

Volume Grid’in Önizleme sekmesinden GPU Önizlemesini etkinleştirin .


Oluşturma menüsünden Hacimsel Oluşturma Ayarları penceresini açın ve Ateş → Temel Alınan seçeneğini Devre Dışı olarak ayarlayın .

Öncelikle Mantra tarafından oluşturulan alfa sürümüne benzer bir alfa sürümü elde etmeye odaklanacağız.

Sabit Renk parametresini siyaha (0, 0, 0) ayarlayın . Bunu yapmazsanız, Duman kanalı (unutmayın, bu aslında Isı alanıdır) sabit bir renkle oluşturulacak ve ateşin üzerine eklenecektir.

“Temel Alınan ” seçeneğini “Basit Duman” olarak ayarlayın – bu seçenek, Duman kanalını 0 ile (Basit Duman Opaklık değeri) arasında basit bir 0-1 eşlemesi yapar; bu durumda: 0,004.

Olası alfa bozulmalarını önlemek için Sahne Birimlerine Göre Ölçek Opaklığını devre dışı bırakın .

Voksel’lerin işleme sırasında göz ardı edilmesini sağlamak için Minimum Görünür Opaklık değerini 0 olarak ayarlayın .

Basit Duman Opaklığını yaklaşık 0,004 olarak ayarlayın . Bu parametre, Pyro gölgelendiricisindeki Duman Yoğunluk Ölçeğine karşılık gelir . Genellikle Yoğunluk Ölçeğinden yaklaşık 100 kat daha düşük bir değere ayarlanmalıdır, ancak bu özel durumda, alfa değerlerinin eşleşmesi için ~0,004’e yükseltilmesi gerekti.

Ateşin kendisi, hem Mantra hem de V-Ray Volume Grid ile render edildiğinde (Ateş Opaklık Modu: Tamamen Görünür’de) alfa kanalı üretmez.

Bu Pyro shader kurulumunda, alfa değeri aslında ısı alanını kullanan Duman Yoğunluğu Ölçeği parametresi tarafından üretilir .

V-Ray ile benzer bir sonuç elde etmek için, “Duman Opaklığına Dayalı” seçeneğini “Basit Duman” olarak ayarlayacağız. Basit Duman seçeneği, Duman alanını (Isı alanını yeniden eşleştirdiğimiz alan) kullanır ve bu da bize Pyro gölgelendiricisindekiyle aynı kurulumu sağlar. Bu, görünür duman olmadan ateş için bir alfa kanalı oluşturacaktır.


Şu ana kadar durum şöyle:

  1. Hem Mantra hem de V-Ray render’ları Renk düzleminde siyah renktedir (Pyro → Ateş Yoğunluk Ölçeği 0’da ve Hacim Izgarası → Ateşe Dayalı seçeneği devre dışı bırakıldığında).

  2. Hem Mantra hem de V-Ray render’larında doğru alfa kanalı ayarı mevcut.

Şimdi yangınla ilgilenmemiz gerekiyor.


Hacim Izgarası’nın Ateş bölümünü açın ve Temel alınan parametreyi Duman olarak ayarlayın. Unutmayın, Duman kanalı aslında Isı alanıdır.

Şimdilik Işık Yayma özelliğini devre dışı bırakın – Işık Yayma seçenekleri Houdini’nin Hacim Işığı özelliğine benzer şekilde çalışır ve ateşin yoğunluğuna ve rengine bağlı olarak dumanın rengini etkiler.

Ateş Şeffaflık Modunun Tamamen Görünür olarak ayarlandığından emin olun . Diğer 2 seçenekten herhangi birini kullanmak, Pyro gölgelendiricisinden elde edilen sonucu tekrarlamayı çok zorlaştıracaktır . Tamamen Görünür seçeneği aslında ‘fiziksel olarak doğru’ olarak adlandırılabilir. Gerçek dünyada ateş opak değildir, bu da hem Mantra hem de V-Ray’in bu ayarlarla sizin için bir alfa kanalı üretmemesinin nedenidir. Houdini’de bunu, Isı alanını yoğunluk olarak kullanarak ve Duman Rengini siyaha ayarlayarak aşıyoruz. V-Ray Hacim Izgarası’nda da aynı şeyi Duman kanalını Duman Şeffaflığı için kullanarak ve Sabit Rengi siyaha ayarlayarak yaptık.

“Fiziksel Tabanlı” seçeneğini 0 olarak ayarlayın . Bu parametre, “Based on” parametresine beslenen kanalda Kelvin cinsinden fiziksel olarak doğru sıcaklık değerlerinin bulunmasına bağlıdır. Fiziksel olarak doğru, genellikle 800 ile 2000 arasında, yüzlerce değer anlamına gelir.

Son olarak, Pyro shader’ından Ramp renk değerlerini Renk ve Yoğunluk grafiğine kopyalamanız gerekiyor .

Grafiği, Pyro shader’ın Ateş Sıcaklığı Alanı → Aralığa Uygun Ayarlarını temel alarak ölçeklendirmeyi unutmayın . Bu örnekte, Kaynak Aralığı 0 ile 3 arasında ayarlanmıştır, bu nedenle Renk ve Yoğunluk Grafiğindeki ikinci nokta X,Y: [ 3, 1 ] konumuna taşınmıştır.

Ayrıca, renk örneklerini de doğru şekilde yerleştirdiğinizden emin olmalısınız. Pyro gölgelendiricisinin Ateş Rampası’ndaki bir renk değerinin konumu 0,33 ise, tutarlılığı sağlamak için Renk ve Yoğunluk rampasında 0,99’a yerleştirmelisiniz.

Pyro shader’ındaki Arama Rampasında herhangi bir değişiklik yaptıysanız → Ateş Sıcaklığı Alanı, Renk ve Yoğunluk rampasına da aynı değişiklikleri yapmalısınız – ve tekrar ediyorum, Aralığa Uyarlama işleminden gelen yeniden eşlemeyi aklınızda bulundurun .


İşte Mantra ve V-Ray’den elde edilen sonuçların karşılaştırması. RGB düzleminde neredeyse algılanamayacak kadar küçük bir fark var.



Ateş ve Duman – Ateş Topu ön ayarı #


Bu son bölümde, bir ateş topu simülasyonu için Pyro ve VVG arasındaki render ayarlarını eşitlemeye çalışacağız.

Bu son bölümün ilk kısmında da belirtildiği gibi, Hacim Izgarası yalnızca Sıcaklık alanını veya Isı alanını kullanabilir, ikisini birden kullanamaz. Bu durumu aşmanın olası bir yoluna göz atacağız.

Varsayılan Fireball ön ayarı, Sıcaklık alanına (varsayılan ayar Hız’dır) Bozulma uygulamak üzere kasıtlı olarak değiştirilmiştir . Bu, tüm Sıcaklık alanında rastgele gürültü oluşmasına neden olur. Bunu V-Ray Hacim Izgarasında olduğu gibi kullanmaya çalışırsanız, ateşin detaylarını korurken gürültüyü ortadan kaldırmanın oldukça zor olduğunu göreceksiniz.

Olası bir çözüme göz atıyoruz.


Elbette, en basit yöntem Hacim Izgarasında Isı alanını Sıcaklık olarak kullanmaktır.

Eğer bu durum sizin kurulumunuz için istenmeyen bir durumsa ve sıcaklık alanını kullanarak yine de ekstra ayrıntı elde etmek istiyorsanız, en iyi seçeneğiniz muhtemelen ısıyı maske olarak kullanarak sıcaklıktaki gürültüyü temizlemek olacaktır.

VDB Convert düğümünden önce bir Volume Wrangle SOP bırakın ve yakıtı, sıcaklığın ısı ile çarpımına eşitleyin. Bu, kap içindeki sıcaklığı, ısı alanının 0 olduğu yerde 0’a ayarlayacak, ısıya biraz daha rastgelelik katacak ve sonucu Yakıt alanında saklayacaktır. Dezavantajı, ısı dağıldıkça geride kalan sıcaklığın bir kısmını kaçınılmaz olarak kaybedecek olmanızdır. Olumlu tarafı ise, ısı ve sıcaklık alanlarınız hala sağlamdır; değiştirilmiş ısı Yakıt alanında saklanır.

Hacim Izgarasında dumanın rengini belirlemek için Sıcaklık alanını kullanıyorsanız, gürültü bir sorun olabilir. Geçici bir çözüm olarak, simülasyon sonrası ayarlamalara güvenmek yerine bir Cd / RGB alanı eklemeyi düşünmelisiniz.

 Karşılaştırma için lütfen sağdaki Flipbook’a göz atın.


Kurulum şu şekilde görünüyor: Bir Hacim Düzenleme SOP’u , Sıcaklık alanını 0-1 aralığına yeniden eşlemek, bunu Isı alanı ile çarpmak ve sonucu Yakıt alanına kaydetmek için kullanılır.


İşte iki Mantra render’ı arasındaki farkı gösteren bir karşılaştırma görseli:

  1. Soldaki resimde, Ateş Yoğunluğu olarak Isı ve Ateş Rengi olarak Sıcaklık kullanılan bir Pyro gölgelendirici kurulumu gösterilmektedir.

  2. Sağdaki görüntü, yalnızca ısı * sıcaklık sonucunu depolayan değiştirilmiş Yakıt alanı kullanılarak oluşturulmuştur.

İkisi arasında şüphesiz bir fark olsa da, bu kurulumun amaçlarınız için yeterli olduğunu görebilirsiniz.


İşte, “Fire Based on” parametresi için değiştirilmiş Fuel alanını kullanan bir V-Ray Volume Grid render’ı. Gördüğünüz gibi, yoğunluk ve renk için Fuel alanını kullanırken Mantra render’ı ile tamamen aynı.

Önceki bölümlerde gösterilen iş akışını özetleyelim.

  1. Ateşi devre dışı bırakın ve duman opaklığını eşitleyin – Sahne Birimlerine Göre Opaklık Ölçeklendirmesini devre dışı bıraktığınızdan, Minimum Görünür Opaklığı 0’a ayarladığınızdan ve Pyro gölgelendiricisinde gerçekleşen tüm yeniden eşlemeleri aktardığınızdan emin olun. Opaklık diyagramı noktalarının Y değerlerinin Houdini’dekilerden çok daha düşük olduğunu hatırlayın – Pyro gölgelendiricisinde 1’lik bir Duman Yoğunluğu için, Hacim Izgarasında tipik olarak 0,01 kullanırsınız.

  2. Duman rengini eşitleyin . Houdini’de renk alanı kullanıyorsanız, “Temel alınan” seçeneğini RGB olarak ayarlayın (Giriş sekmesindeki 3. Parti Kanal Eşlemelerinin doğru olduğundan emin olun).

  3. Duman efektini devre dışı bırakmak için, Duman Rengi → Temel alınan seçeneği Devre Dışı olarak ayarlayın .

  4. Ateş sekmesi altında ateş rengini ve yoğunluğunu eşitleyin . Fiziksel tabanlı seçeneğini devre dışı bırakın ve Pyro gölgelendiricisinin renk rampasından renkleri kopyalayın ve Pyro gölgelendiricisindeki Ateş Sıcaklığı alanı bir Aralığa Uyarlama veya Bir Rampa ile yeniden eşlenmişse, bunları uygun şekilde ölçeklendirmeyi unutmayın. Yoğunluk doğru görünene kadar Ateş Çarpanını azaltın – bu, Pyro gölgelendiricisinde 1’lik bir Yoğunluk Ölçeği için genellikle 0,1 olacaktır.

Bu işlem sırasında Ateş bölümündeki Işık Yayma seçeneğini devre dışı bıraktığınızdan emin olun – Işık Yayma seçenekleri Houdini’nin Hacim Işığı’na benzer şekilde çalışır ve ateşin yoğunluğuna ve rengine bağlı olarak dumanın rengini etkiler.


Görüntüler varsayılan bir far ayarıyla 

Tarafından desteklenmektedir BetterDocs

Bir yanıt yazın

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