Bilgisayar grafikleri için fpga tabanlı üçgen doldurma modül dizaynı
An fpga based triangle rendering module design for computer graphics
Yazar: EMEL OK
Danışman: YRD. DOÇ. DR. İBRAHİM ŞAHİN
Düzce Üniversitesi / Fen Bilimleri Enstitüsü / Elektrik Eğitimi Ana Bilim Dalı
Derece: Yüksek Lisans, 2011
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Bilgisayar grafikleri = Computer graphics ; FPGA = FPGA

Özet:
Bilgisayar grafiklerinde poligon rendering (giydirme-kaplama) işlemi yüzeyleri matematiksel olarak poligonlarla tanımlanmış animasyon objelerinin renklendirilme işlemidir. Grafik sahnesindeki nesne sayısı ve bu nesneleri tanımlama kullanılan poligon sayısı arttıkça render işlemi içini gerekli olan CPU zamanıda katlanarak artmaktadır ve genel amaçlı bilgisayarlar rendering işleminde yetersiz kalmaktadırlar. Bu durum karşısında gelişmiş grafik kartlarının, grafik işlemler için tasarlanmış özel amaçlı bilgisayarların, daha hızlı işlemcilerin ya da paralel işlemcilerin kullanılması gibi farklı yaklaşımlar geliştirilmiştir. Ancak bu yöntemlerde yüksek maliyetler gerektirmekte ve her zaman istenen performans elde edilememektedir. Bu çalışmada yukarıda bahsi geçen yaklaşımlara bir alternatif olarak rendering işlemini gerçekleştimek üzere Alanda Programlanabilir Kapı Dizileri (Field Programmable Gate Array (FPGA)) yongaları üzerinde çalışabilecek tam sayı tabanlı iki farklı donanım modülü tasarlanmıştır. Birinci modül Yarı Alan denkleminden yararlanılarak oluşturulmuştur ve koordinatları verilen verilen üçgeni tek renk ile doldurmaktadır. İkinci modül ise Doğru Denkleminden yararlanılarak oluşturmuştur ve üçgenin içini köşe noktaların renk bilgisine göre tonlama yaparak doldurmaktadır. Tasarlanan modüller, rastgele oluşturulmuş test üçgenleri kullanılarak test edilmiştir. Modüllerin verilen üçgenleri render etme süreleri genel amaçlı bilgisayralar üzerinde çalışan ve C++'da oluşturulan yazılım versiyonları ile karşılaştırılmıştır. Sonuçta genel amaçlı bilgisayarlara göre birinci modülün 31 kata kadar, ikinci modülün ise 17 kata kadar değişen oranlarda daha hızlı rendering yaptığı görülmüştür.

Abstract:
In computer graphics, rendering is the process of coloring the animation objects whose sufaces are mathematically defined with poloygons. As the number of objects on a scene and the number of poligons used to define these objects increase, the CPU time requirement of the rendering process grows exponentially and general purpose computers become insufficient. Several approaches such as using exhanced graphics cards, specially degined computers, or parellel computers were developed. But these approaches are not cost effective and sometimes do not yield the desired performance. In this research work, as alternatives to the above mentioned approaches, two separate hadware modules were designed. The modules were designed to be used with Field Programmable Gate Array (FPGA) and can process fixed-point data. The first module uses the half-space property of the line equation. This module is able to fill a given triangle with a solid color. The second module uses the line equation itself. This module is able to fill inside a given triangle using the given intensity values at the corners of the triangle. Each pixel?s color value is calculated according to pixel?s distance to the corners. The modules were tested using randomly generated test triangles. Modules? rendering times were compared to redering softwares? CPU times. The rendering softwares were coded in C++ and were running on general purpose computers. The results showed that the first module renders the test triangles up to 31 times faster and the second module renders the test triangles up to 17 times faster.