XSI'da HDRI (High Dynamic Range Images)
-- Resim Tabanlı Aydınlanma (Image Based Lightning) --

Yazan: Oktay CİNLİ
(v1.0 - 29.09.2001)

Not: Bu dersi XSI NetView'de http://www.xsiturkiye.com/dersler/hdrinxsi_tr_otr.html adresini yazarak açabilirsiniz.

Giriş:

HDRI Nedir?

HDR, standart resim öğeleri yanında (RGB, CYMK, Alpha, vs...) ortamın aydınlanma şiddetini de kaydedebilen bir formattır. Bu sayede resmin çekildiği ortamdaki ışık şiddeti kesin olarak ölçülmüş olur (Incident Illumination). Bu resim HDRI destekleyen bir programla sahneye uygulandığında sahne gerçek dünyadaki gibi aydınlanmış olur. Bu durum "Rendering with Natural Light / RNL" ya da "Image Based Lightning" olarak adlandılır.

PC ortamında kullanılan bütün resimler LDRI (Low Dynamic Range Images)'dir. TIFF, TGA, BMP ve diğerleri... HDR için kullanılan formatlar:

.HDR red-green-blue-exponent format
.PIC red-green-blue-exponent format
.PFM portable float map
.TIF .TIFF floating point tiff
.RAW .FLOAT  raw binary floating point
.MAP memory mapped image
.CT mental ray floating point image

Konu hakkında daha fazla bilgi için http://www.debevec.org/~debevec/Research/HDR/ adresini ziyaret edin.

Ders için gerekli resimler ve programlar:

1. HDR resimler: http://www.debevec.org/~debevec/Probes/ adresindeki herhangi bir HDR resimi indirin.

2. HDR resimleri görebilmek için HDRview adlı program: http://www.xsiturkiye.com/temp/HDRView.exe

3. XSI, .HDR formatını tanımadığından HDR resimleri XSI'nin tanıdığı .MAP formatına dönüştürebilen hdrtoxsi.exe programı: http://www.xsiturkiye.com/temp/hdrtoxsi.exe

 

.HDR resimleri .MAP formatına dönüştürme:

1. http://www.xsiturkiye.com/temp/hdrtoxsi.exe adresinden indirdiğiniz HDRTOXSI.EXE programını "Command Prompt" ile çalıştırın (Program ikonunu CommandPrompt'un içine sürükleyip bırakabilirsiniz). "Enter" 'a basarak programın kullanılma şeklini görebilirsiniz.

2. Çalışma şekli :
c:\>hdritoxsi.exe HDRresim.hdr MAPresim.map

CommandPrompt'a

yazarak rnl_probe.hdr resmini rnl_probe.map formatına dönüştürün (Bütün dosyalar C:\ kök diznindedir. Başka bir klasör kullanıyorsanız o klasörü belirtmeniz gerekecektir.).

 

Uygulama:

1. Bütün sahneyi kaplayacak büyüklükte bir KÜRE/SPHERE yaratın.

 

2. Kürenin normal'lerini içe doğru çevireceğiz. Normal'leri görmek için herhangi bir viewport'tan göz'e tıklayın ve normals'ı seçin:

   
 a. Göz işretine tıklayın    b. Listeden "normals" 'ı seçin    c. Normal'lerin yönü

2a. Model \ Poly. Mesh \ Invert Poligons uygulayarak normal'leri içe çevirin.

   
 a. Model\Poly.Mesh'e tıklayın    b. Invert Polygons uygulayın.    c. Poligonların yeni yönü

 

3. Küreye "Constant" material atayın. Get\Material\Constant

 

4. Küreye "Spherical Mapping" atayın. Property\Texture Projection\Spherical

 

5. HDR resmi küreye atayacağız. Küre seçili iken RENDER TREE penceresini açın. "7" kısayol tuşu.

 
a. Constant material atanmış   b. Image Node komutu
     
 
c. Image Node d. HDR resmini Image Node'a atayın
 
 
e. Image Node'u Constant'ın RADIANCE 'ına atayın f. Image Node'un constant\radiance'a atanmış hali
   

 g. Küreye ait render tree'nin bitmiş hali

 

 

6. Kamera'yı kürenin içine yerleştirerek "textured" görüntü ile şu şekilde gözükecektir. OpenGL'de 8 BIT'lik gösterildiğinden sahne bozuk gözükecektir. Fakat MentalRay resimleri doğru şekilde kullanacaktır.

   
a. Görüntü şeklini "textured" yapın.     b. Sahnenin görünüşü

 

7. HDRI ortamımız hazır. Kürenin içine nesnelerinizi yerleştirin. İsterseniz küreyi ikiye bölen bir "grid" yaratarak (Get\Primitive\PolygonMesh\Grid) sahnenizi onun üzerinde yaratabilirsiniz.

8. FinalGathering render metodu ile sahnenizi render edin. Material olarak lambert ya da parlak yüzeyler kullanın.

9. Örnek çalışmalar:

XSI|TR & Oktay Cinli ©2001. Her hakkı saklıdır.
Hosted By: www.EdHarriss.com