PORÓWNANIE WYDAJNOŚCI JĘZYKÓW CIENIOWANIA CG I HLSL



Podobne dokumenty
Karty graficzne możemy podzielić na:

Karta graficzna karta rozszerzeo odpowiedzialna generowanie sygnału graficznego dla ekranu monitora. Podstawowym zadaniem karty graficznej jest

Algorytmy renderingu dla programowalnych jednostek graficznych. prof. dr hab. inż. Maria Pietruszka mgr inż. Dominik Szajerman

Przegląd metod renderingu czasu rzeczywistego dla fotorealistycznych wizualizacji architektonicznych

Systemy graficzne. dr inż. Mariusz Szwoch

Opis efektów kształcenia dla modułu zajęć

Karta przedmiotu. Podstawy programowania procesorów graficznych. realizowanego w ramach projektu PO WER

Analiza moż liwości i porównanie nowych ję zyków do programowania grafiki

która metoda jest najlepsza

GRAFIKA KOMPUTEROWA. Rozwiązania sprzętowe i programowe. Przyspieszanie sprzętowe. Synteza dźwięku i obrazu

GRAFIKA KOMPUTEROWA. Rozwiązania sprzętowe i programowe. Przyspieszanie sprzętowe. Synteza i obróbka obrazu

OpenGL - Open Graphics Library. Programowanie grafiki komputerowej. OpenGL 3.0. OpenGL - Architektura (1)

Przyspieszanie sprzętowe

Plan wykładu. Akcelerator 3D Potok graficzny

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

PRZEWODNIK PO PRZEDMIOCIE

Programowanie procesorów graficznych GPGPU

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014

Zaawansowane systemy programowania grafiki. Wprowadzenie. Podstawy OpenGL

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Grafika komputerowa i wizualizacja

Wykład 4. Rendering (1) Informacje podstawowe

GRAFIKA CZASU RZECZYWISTEGO Wstęp do programowania grafiki czasu rzeczywistego.

SYMULACJA OPADÓW ATMOSFERYCZNYCH I POKRYWY ŚNIEŻNEJ W GENERATORZE OBRAZU JASKIER IG

Obliczenia Wysokiej Wydajności

GRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL

Wprowadzenie do grafiki maszynowej. Wprowadzenie do historii OpenGL

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

WYKORZYSTANIE PLATFORMY FireMonkey DO AUTOMATYZACJI ZADAŃ GRAFIKI W PROGRAMIE AutoCAD

PRZEWODNIK PO PRZEDMIOCIE

1 Temat: Vertex Shader

Larrabee GPGPU. Zastosowanie, wydajność i porównanie z innymi układami

Karty graficzne: budowa, zasada działania, standardy, parametry, dodatkowe funkcje

Moc płynąca z kart graficznych

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Unity 3D - tworzenie sceny

PROGRAM DLA ROLNICTWA W WERSJI INSTALOWANEJ I INTERNETOWEJ NA PRZYKŁADZIE APLIKACJI PLANTENE I PLANTENE-2

INŻYNIERIA OPROGRAMOWANIA

BADANIA SYMULACYJNE PROCESU HAMOWANIA SAMOCHODU OSOBOWEGO W PROGRAMIE PC-CRASH

Podsystem graficzny. W skład podsystemu graficznego wchodzą: karta graficzna monitor

KATALOG MASZYN I POJAZDÓW ROLNICZYCH MASZYNY-3

Architektura systemów komputerowych Ćwiczenie 3

Gry komputerowe: efekty specjalne cz. 2

BADANIA RZECZYWISTYCH KOSZTÓW OBSŁUGI TECHNICZNEJ NOWOCZESNYCH KOMBAJNÓW ZBOŻOWYCH. Wstęp

Synteza i obróbka obrazu. Tekstury. Opracowanie: dr inż. Grzegorz Szwoch Politechnika Gdańska Katedra Systemów Multimedialnych

Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Bartłomiej Filipek

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx

Julia 4D - raytracing

Animowana grafika 3D. Opracowanie: J. Kęsik.

Grafika komputerowa. Grafika komputerowa. Grafika komputerowa

Grafika Komputerowa Wykład 6. Teksturowanie. mgr inż. Michał Chwesiuk 1/23

KOMPUTEROWY MODEL UKŁADU STEROWANIA MIKROKLIMATEM W PRZECHOWALNI JABŁEK

WPŁYW TECHNICZNEGO UZBROJENIA PROCESU PRACY NA NADWYŻKĘ BEZPOŚREDNIĄ W GOSPODARSTWACH RODZINNYCH

METODA WARTOŚCIOWANIA PARAMETRÓW PROCESU PLANOWEGO OBSŁUGIWANIA TECHNICZNEGO MASZYN ROLNICZYCH

CECHY TECHNICZNO-UŻYTKOWE A WARTOŚĆ WYBRANYCH TECHNICZNYCH ŚRODKÓW PRODUKCJI W ROLNICTWIE

SYSTEMY PROJEKCJI STEREOSKOPOWEJ W ANIMACJACH KOMPUTEROWYCH. Techniki projekcji Generowanie wizyjnego sygnału stereoskopowego Instalacje mobilne

Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1

OCENA POZIOMU PRODUKCYJNOŚCI I WYDAJNOŚCI W ROLNICTWIE NA PRZYKŁADZIE WYBRANYCH REGIONÓW POLSKI

WPŁYW AKTUALIZACJI NIEKTÓRYCH WSKAŹNIKÓW EKSPLOATACYJNO-EKONOMICZNYCH NA KOSZTY EKSPLOATACJI CIĄGNIKÓW ROLNICZYCH NOWEJ GENERACJI

PRZEWODNIK PO PRZEDMIOCIE

Elementy do grafiki komputerowej. Wprowadzenie

OPTYMALIZACJA STEROWANIA MIKROKLIMATEM W PIECZARKARNI

Wykład 5. Rendering (2) Geometria

Informatyka Studia II stopnia

Wprowadzenie do grafiki maszynowej. Wprowadzenie do wprowadzenia

SYSTEM MONITOROWANIA DECYZYJNEGO STANU OBIEKTÓW TECHNICZNYCH

Grafika Komputerowa. Wprowadzenie

ZAPOTRZEBOWANIE NA PROGRAMY KOMPUTEROWE W ROLNICTWIE NA PRZYKŁADZIE GOSPODARSTW WOJEWÓDZTWA MAŁOPOLSKIEGO

Grafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30

GRY KOMPUTEROWE 3D OpenGL DirectX Ogre3D Crystal Space ClanLib Irrlicht SDL Ardor3D jmonkey Engine GRY KOMPUTEROWE 2D ORX Troll2D

MESco. Testy skalowalności obliczeń mechanicznych w oparciu o licencje HPC oraz kartę GPU nvidia Tesla c2075. Stanisław Wowra

Architektura Procesorów Graficznych

System 32-Bit 1: Microsoft Windows 7 Home Premium 2;, Professional, Ultimate, Enterprise Microsoft Windows 8/8.1, Pro, Enterprise 2;

Gry Komputerowe - laboratorium 0

WYKORZYSTANIE ŹRÓDEŁ INFORMACJI W GOSPODARSTWACH ROLNICZYCH MAŁOPOLSKI O RÓŻNYM KIERUNKU PRODUKCJI

Wprowadzenie. Artur Staszczyk Bartłomiej Filipek

Model oświetlenia. Radosław Mantiuk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wprowadzenie do grafiki komputerowej. W. Alda

PODAŻ CIĄGNIKÓW I KOMBAJNÓW ZBOŻOWYCH W POLSCE W LATACH

DROGA ROZWOJU OD PROJEKTOWANIA 2D DO 3D Z WYKORZYSTANIEM SYSTEMÓW CAD NA POTRZEBY PRZEMYSŁU SAMOCHODOWEGO

Raport Hurtownie Danych

Projekt rejestratora obiektów trójwymiarowych na bazie frezarki CNC. The project of the scanner for three-dimensional objects based on the CNC

Podręcznik użytkownika PCI-x Karta przechwytująca 4xHDMI

PRZETWARZANIE RÓWNOLEGŁE I ROZPROSZONE. Mnożenie macierzy kwadratowych metodą klasyczną oraz blokową z wykorzystaniem OpenMP.

Minimalne wymagania dotyczące systemu komputerowego do odtwarzania treści 3D w projektorze BenQ:

Algorytmy i Struktury Danych

GRK 4. dr Wojciech Palubicki

Grafika Komputerowa, Informatyka, I Rok

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

OPIS PRZEDMIOTU/MODUŁU KSZTAŁCENIA (SYLABUS)

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT.

Projektowanie i symulacja systemu pomiarowego do pomiaru temperatury

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

WYBÓR PUNKTÓW POMIAROWYCH

Obliczenia Wysokiej Wydajności

Biblioteka OpenGL: Wprowadzenie

DesignCAD 3D Max 24.0 PL

Transkrypt:

Inżynieria Rolnicza 7(125)/2010 PORÓWNANIE WYDAJNOŚCI JĘZYKÓW CIENIOWANIA CG I HLSL Jerzy Dąbkowski Instytut Teleinformatyki, Politechnika Krakowska Instytut Inżynierii Rolniczej i Informatyki, Uniwersytet Rolniczy w Krakowie Rafał Król Instytut Teleinformatyki, Politechnika Krakowska Streszczenie. Na podstawie zaprojektowanych dziesięciu testów szybkości wykonania identycznych programów cieniujących, jednego napisanego w języku HLSL, drugiego w języku Cg porównano wydajność tych języków w środowisku Windows XP. W zależności od rodzaju testu stwierdzono albo porównywalną wydajność obu języków albo przewagę szybkości działania programów napisanych w HLSL. Słowa kluczowe: języki cieniowania, rendering, potok graficzny Rozwój technologii programowalnych kart graficznych i powstanie języków cieniowania wysokiego poziomu z początkiem obecnej dekady, doprowadził do zmiany technologii przetwarzania potoku graficznego. Można dziś programować procesor graficzny (GPU) niezależnie od zadań jakie wykonuje główny procesor komputera (CPU). W wyniku zdarzeń na rynku funkcjonują trzy równorzędne (prawie identyczne co do specyfikacji) języki cieniowania wysokiego poziomu Cg (C for graphics) [Fernando, Kilgard 2003] wspierany przez firmę NVIDIA i niezależny od platformy i stosowanego interfejsu graficznego (DirectX czy OpenGL), HLSL (High Level Shading Language) firmy Microsoft część biblioteki DirectX [Dempski 2003] począwszy od wersji 9.0 oraz GLSL (OpenGL Shading Language) będący częścią biblioteki OpenGL 2.0. W pracy niniejszej porównano szybkość działania dwóch najpopularniejszych języków cieniowania: Cg i HLSL. Język Cg może być używany w różnych systemach operacyjnych (Windows, Linuks) i przy wsparciu różnych bibliotek graficznych, zaś HLSL tylko w systemie Windows we współpracy z biblioteką DirectX. Środowisko programowo sprzętowe, w którym przeprowadzono testy jest następujące: System operacyjny: WindowsXP. Biblioteka graficzna: DirectX v. 9.0c, OpenGL v. 1.4. Procesor CPU: AMD Athlon 3000+. Karta graficzna: ATI RADEON 9600. Dla możliwie pełnego obrazu działania wymienionych języków w różnych warunkach renderingu, opracowano dziesięć testów wyszczególnionych w poniższej tabeli [NVIDIA 2006]. Osiem pierwszych testów należy do grupy testów statycznych, dwa ostatnie sprawdzają szybkość wykonania animacji i są testami dynamicznymi. Kształty renderowanych brył i rodzaje zastosowanych tekstur pokazano na rysunkach 1 i 2. Czasy wykonania testów mierzono w cyklach procesora CPU za pomocą sygnałów przerwań. Technikę mierzenia liczby cykli dopracowywano doświadczalnie przez 41

Jerzy Dąbkowski, Rafał Król wielokrotne dokonywanie pomiarów wstępnych i oczyszczanie przedziału czasowego z artefaktów związanych z czynnościami maszyny innymi niż mierzone efekty. Sposób mierzenia czasów wykonania był identyczny dla obydwu rodzajów programów cieniowania (Cg i HLSL) [Lovesey 2005, Petzold 1999]. Tabela 1. Rodzaje testów Table 1. Test types Lp. Nazwa Opis 1 Test 1 Proste przekształcenie wierzchołków bez ingerowania w jednostkę fragmentów. 2 Test 2 Nałożenie na siebie dwóch tekstur z przesunięciem. 3 Test 3A Zastosowanie techniki mapowania środowiska (tekstury kubicznej) na obiekt, przy czym główne obliczenia wykonywane są w jednostce wierzchołków. 4 Test 3B Podobnie jak powyżej, z tym że główne obliczenia wykonywane są w jednostce fragmentów. 5 Test 4A Zastosowanie techniki załamania światła ( z wykorzystaniem mapowania środowiska), przy czym główne obliczenia wykonywane są w jednostce wierzchołków. 6 Test 4B Test jak powyżej, z tym że główne obliczenia wykonywane są w jednostce fragmentów. 7 Test 5 Test efektu Fresnela oraz efektu chromatycznego rozszczepienia światła. 8 Test 6 Mapowanie środowiska wraz z zastosowaniem techniki rzucania cienia na samego siebie (na obiekt). 9 Anim. 1 Animacja położenia wierzchołków dająca w rezultacie efekt płynnego obiektu, bez ingerowania w jednostkę fragmentów. 10 Anim. 2 Zastosowanie techniki mapowania środowiska w połączeniu z animacją wierzchołków. Rys. 1. Fig. 1. Obiekt, zniekształcona kula wykorzystana do renderingu (powierzchnia i siatka wielokątów) Object, deformed sphere used for rendering (surface and lattice of polygons) 42

Porównanie wydajności... Wyniki w postaci średnich wartości z próby o liczności n=200 przebiegów dla każdego rodzaju testu przedstawione są na rysunku 3. Widać, że dla większości testów wyniki dla Cg i HLSL nie różnią się istotnie. Wyjątek stanowią testy numer 6, 7 i 10. W teście szóstym przewagę wykazuje język Cg, zaś w testach 7 i 10 język HLSL. Ponieważ testy 5 i 6 różnią się jedynie środowiskiem wykonania (5 jednostka wierzchołków, 6 jednostka fragmentów) to można wnioskować, że mimo iż język HLSL został przez Microsoft zaprojektowany do pracy w warunkach w jakich były przeprowadzane testy i powinien wykazywać przewagę nad Cg, to gorzej współpracuje z jednostką fragmentów. Ogólnie można wyniki przeprowadzonych testów podsumować w ten sposób, że oba języki są porównywalnie wydajne w renderowaniu grafiki z przewagą języka HLSL w przetwarzaniu efektów dynamicznych. W środowisku testowym (DirectX v. 9.0) język HLSL wykazuje spowolnienie w przetwarzaniu jednostki fragmentów. Rys. 2. Fig. 2. Rodzaje tekstur użytych w programie. Po lewej tekstura środowiska (kubiczna), wykorzystywana w technice odbicia i załamania światła. Po prawej stronie u góry widoczna jest tekstura ściany, natomiast po prawej stronie u dołu mapa wysokości dla tekstury ściany Types of textures used in the program. On the left-hand side, the environment (cubic) texture used in the light reflection and refraction technique. On the upper right-hand side, there is a wall texture visible, whereas on the lower right-hand side there is a height map for the wall texture 43

Jerzy Dąbkowski, Rafał Król Rys 3. Fig. 3. Wyniki testów Test results Bibliografia Fernando R., Kilgard M.J. 2003. Programowanie grafiki w czasie rzeczywistym Język Cg. Helion. ISBN: 83-7361-241-6. Dempski K. 2003. DirectX Rendering w czasie rzeczywistym, Helion, ISBN: 83-7361-120-7. Lovesey A. 2005. A Comparison of Real Time Shading Languages. CS4983 Senior Technical Report. University of New Brunswick Canada. Materiały informacyjne Firmy. Petzold Ch. 1999. Microsoft Press. November 11. ISBN: 1-57231-995-X NVIDIA. 2006. Cg Toolkit. A Developer s Guide to Programmable Graphics. Release 1.4.1, NVIDIA Corporation. Materiały informacyjne Firmy. 44

Porównanie wydajności... A COMPARISON OF CG VERSUS HLSL SHADERS EFFICIENCY Abstract. Based on ten tests especially designed for checking the execution time of two identical shading programs, one written in HLSL and the other one in Cg, there were comparisons made of the efficiency of these languages in Windows XP environment. Depending on the type of test one finds either equivalent efficiency or advantage of HLSL programs. Key words: shading languages, rendering, graphics pipeline Adres do korespondencji: Jerzy Dąbkowski; e-mail: rtdabkow@cyf-kr.edu.pl Instytut Teleinformatyki Politechnika Krakowska ul. Warszawska 24 31-155 Kraków 45