ak. rok 2013/2014 Michal Španěl, spanel@fit.vutbr.cz 24.2.2014

Podobné dokumenty
Fakulta informačních technologíı. IZG cvičení 6. - Zobrazování 3D scény a základy OpenGL 1 / 38

Pokud nebude na příkazové řádce uveden právě jeden argument, vypište chybové hlášení a stručný

Základy vizualizace. Výpočetní metody

Počítačová grafika 2 (POGR2)

Téma 1: Práce s Desktop. Téma 1: Práce s Desktop

Název: VY_32_INOVACE_PG3315 Umisťování textur pomocí modifikátoru UVW Map. Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max

Textura a mapovací funkce Způsoby aplikace textury Použití textury pro prostorovou modifikaci povrchu Mipmapping Literatura.

Návod k použití softwaru Solar Viewer 3D

ODBORNÝ VÝCVIK VE 3. TISÍCILETÍ

Základy 3D modelování a animace v CGI systémech Cinema 4D C4D

Středoškolská technika 2017 PROGRAMY PRO PROSTOROVÉ ZOBRAZOVÁNÍ NĚKTERÝCH TĚLES

Geekovo Minimum. Počítačové Grafiky. Nadpis 1 Nadpis 2 Nadpis 3. Božetěchova 2, Brno

Formulář pro křížový filtr

JAK PROPOJIT R-KO a EXCEL aneb Aby se uživatel nasytil a statistik zůstal celý

Connection Manager - Uživatelská příručka

Programátorská dokumentace

13 Barvy a úpravy rastrového

Reprezentace 3D modelu

MISYS. Seznam souřadnic

Uživatelská příručka Autor: Martin Fiala

Specifikace projektu Ocerus

Jednoduché stříhání videa

Obsah Přehled existujících a evidence nových klientů... 3 Přehled foto-záznamů... 4 Nahrávání foto-záznamů... 6 Analýza foto-záznamů...

Demoprojekt Damocles 2404

NADSTAVBOVÝ MODUL MOHSA V1

MHD v mobilu. Instalace a spuštění. Co to umí

3 Makra Příklad 4 Access Ve vytvořené databázi potřebuje sekretářka společnosti Naše zahrada zautomatizovat některé úkony pomocí maker.

Archiv elektronických dokumentů Zela

Hydroprojekt CZ a.s. WINPLAN systém programů pro projektování vodohospodářských liniových staveb. HYDRONet 3. Modul TERÉN

Závěrečná práce. AutoCAD Inventor (Zadání D1)

Téma: Vektorová grafika. Určete pravdivost následujícího tvrzení: "Grafická data jsou u 2D vektorové grafiky uložena ve voxelech."

Vytvoření bootovatelného média

SolidWorks. SW je parametrický 3D modelář a umožňuje. Postup práce v SW: Prostředí a ovládání

Připravil: David Procházka. Vertex Buffer Objects

Používání zásuvného modulu ApSIC Xbench pro SDL Trados Studio 2014

Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na. x 2 x 1

Operační systémy. Cvičení 3: Programování v C pod Unixem

je aplikace určená k editaci videozáznamu, funguje v operačních systémech Windows Vista a Windows7

TÉMATICKÝ OKRUH Softwarové inženýrství

Elektronické poukázky

Zpravodaj. Uživatelská příručka. Verze

Instalace Dosemu na Linux Ubuntu 12.04

Jak na klávesnici a myšku pod Linuxem

Textury v real-time grafice Josef Pelikán, MFF UK Praha Josef.Pelikan@mff.cuni.cz

Výpočet vržených stínů

Nastavení programu pro práci v síti

SEMESTRÁLNÍ PROJEKT Y38PRO

Prostředí Microstationu a jeho nastavení. Nastavení výkresu

S2. Vytvoření Windows balíku pro vývoj na STM32 architektuře

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Geometrické algoritmy pro počítačovou grafiku

Co je grafický akcelerátor

Operační systémy. Cvičení 1: Seznámení s prostředím

KIG/1GIS2. Geografické informační systémy. rozsah: 2 hod přednáška, 2 hod cvičení způsob ukončení: zápočet + zkouška

Formátování pomocí stylů

INSTALACE SOFTWARE A AKTIVACE PRODUKTU NÁVOD

Semestrální práce KIV/PC Řešení kolizí frekvencí sítě vysílačů Zdeněk Bečvář A14B0466P 10. ledna 2016

Popis. Manuál Klávesové zkratky a příkazy - 1 -

Téma 7: Konfigurace počítačů se systémem Windows 7 III. Téma 7: Konfigurace počítačů se systémem Windows 7 III

Osvětlování a stínování

INSTALACE SW PROID+ V OS LINUX

Návod pro práci s aplikací

Úloha 1. Text úlohy. Vyberte jednu z nabízených možností: NEPRAVDA. PRAVDA Úloha 2. Text úlohy

Student. Funguje: Přihlášení Výběr školy Výběr role Změna Akademického roku Změna kurzu Odhlášení Přihlášení offline

Citrix klient a OneTimePass moje.cpas.cz. Uživatelský návod pro interní uživatele České pojišťovny a.s.

Semestrální práce Mozaika aneb Co všechno umí pan Voronoi

Koncepce (větších) programů. Základy programování 2 Tomáš Kühr

Android OpenGL. Práce s texturami

Základy programování (IZP)

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Individuální nastavení počítače

E K O N O M I C K Ý S O F T W A R E PŘÍRUČKA UŽIVATELE

1 Tabulky Příklad 3 Access 2010

Manuál k programu IDP 1.0

Průvodce aplikací GTS Webový portál pro správce

Základy programování (IZP)

Dokumentace programu piskvorek

Pokyny pro uživatele programu SKLAD Odpadů 8

Konfigurátor Duo. Manuál pro konfiguraci systémů DUO Standard / Basic. Obsah + vybraná nastavení: - 1 -

Software602 FormApps Server

Doporučené nastavení prohlížeče MS Internet Explorer 7 a vyšší pro Max Homebanking PS s využitím čipové karty

7 Transformace 2D. 7.1 Transformace objektů obecně. Studijní cíl. Doba nutná k nastudování. Průvodce studiem

StatSoft Jak vyzrát na datum

Projekt Obrázek strana 135

Software pro správu barev Palette Master

Recognoil RRW Manager rychlý návod k obsluze

12 Metody snižování barevného prostoru

Rastrové digitální modely terénu

Co děti v kroužku vyzkoušely

Bootkity v teorii a praxi. Martin Dráb martin.drab@ .cz

ZMODO NVR KIT. Instalační příručka

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

3 Makra Příklad 4 Access Ve vytvořené databázi potřebuje sekretářka společnosti Naše zahrada zautomatizovat některé úkony pomocí maker.

Obsah Úvodem... 5 Co je to vlastně formulář... 6 Co je to šablona... 6 Jak se šablona uloží... 6 Jak souvisí formulář se šablonou...

SPIRIT Nové funkce. SOFTconsult spol. s r. o., Praha

METODICKÝ POKYN PŘIDÁNÍ A PŘEHRÁNÍ VIDEA V PREZENTACI

Přechod z AutoCADu na CADKON+

Vytvoření a úpravy geologického modelu

Práce s binárními soubory. Základy programování 2 Tomáš Kühr

Popis programu 3D_VIZ

Transkript:

Zadání projektu Texturování Základy počítačové grafiky (IZG) ak. rok 2013/2014 Michal Španěl, spanel@fit.vutbr.cz 24.2.2014 1 První seznámení Cílem projektu je pochopení praktických souvislostí témat přednášek a cvičení. Základem projektu je připravená funkční kostra programu, který realizuje softwarový rendering jednoduchého polygonálního modelu. Obrázek 1: Ukázka zobrazení modelu bunny.tri před vypracováním projektu (vlevo) a po vypracování projektu (vpravo). Doplněno texturování s využitím pomocného tělesa - koule. Aplikace načítá zobrazovaný model z textových souborů s příponou.tri. Pro testování máte na výběr několik modelů. 1

Standardně zobrazovaný model (bunny.tri) lze změnit zadáním jiného názvu na příkazové řádce: Příklad: izg proj skull.tri Základním zobrazovaným primitivem je trojúhelník. Aplikace řeší celý proces vykreslování včetně rasterizace trojúhelníku softwarově (bez grafické karty, bez OpenGL). Pro manipulaci se scénou je implementován primitivní manipulátor, který pouze otáčí a zvětšuje/zmenšuje zobrazovaný model. Pozice kamery je fixní. Renderer řeší veškeré transformace modelu včetně perspektivní projekce. S naprostou většinou algoritmů, které jsou v projektu použity (transformace, rasterizace, osvětlení, apod.) se postupně seznámíte na přednáškách a cvičeních. 2 Zdrojový kód Kostra programu je obdobou frameworku, který používáte ve cvičení a je napsána v čistém C. Kreslíme do vlastního alokovaného frame bufferu. Pro vykreslení frame bufferu na obrazovku a reakce na události (myšování, apod.) se používá knihovna SDL (Simple Directmedia Layer). http://www.libsdl.org/ Předkompilované balíčky knihovny SDL (testováno s verzí 1.2.15 ) najdete na webu: http://www.libsdl.org/download-1.2.php 2

Překlad ve zkratce: Windows/MinGW Na windows lze použít překladač MinGW (GCC portované na windows) a přiložený Makefile. V učebnách fakulty mi funguje: Otevřít okno s příkazovou řádkou. Nastavit cesty k MinGW překladači spuštěním: q:/mingw/set mingw.bat (alternativně: set path=q:/mingw/mingw/bin;%path%) Spustit překlad: mingw32-make V tomto případě se použije již instalovaná knihovna SDL z adresáře q:/mingw/sdl. Windows/MSVC Otevřete dodaný solution v MS Visual Studiu a nechte proběhnout případnou konverzi solution a projektu. SDL knihovnu nainstalujete takto: Stáhněte si balíček binárních knihoven pro MSVC: http://www.libsdl.org/release/sdl-devel-1.2.15-vc.zip A rozbalte jej do adresáře vedle projektu, tzn.:... SDL-1.2.15 izg proj F7 spustí překlad Linux/GCC Pro překlad na linuxu je připravený Makefile stačí tedy: make. SDL knihovna bývá součástí většiny Linuxových distribucí, pokud ne: Stáhněte si zdrojové kódy z http://www.libsdl.org/release/sdl-1.2.15.zip Zadejte typickou sekvenci./configure; make; make install Na Ubuntu funguje také: sudo apt-get install libsdl1.2-dev 3

V případě potíží s překladem (v uvedeném pořadí)... 1. hledejte chybu na vašem konci klávesnice, 2. zeptejte se kamaráda, 3. nahlédněte do diskusního fóra IZG a případně pošlete dotaz, 4. zatancujte kolem svého počítače, proneste několik magických manter a pak zkuste překlad znovu, 5. napiště mi email. 4

3 Bodovaný úkol Cílem je doplnit do připraveného studentského rendereru následující algoritmy/funkce: podporu texturování s využitím koule jako pomocného tělesa nanést na model texturu šachovnice. Studenti pracují na řešení projektu samostatně a každý odevzdá své vlastní řešení. Porad te si, ale řešení vypracujte samostatně! 3.1 Krok č.1 Generování textury šachovnice Do vašeho studentského rendereru přidejte podporu pro vytvoření a uložení 2D textury a v rámci inicializace rendereru procedurálně vygenerujte texturu imitující šachovnici. Obrázek 2: Ukázka správně připravené textury. Textura bude pole S RGBA hodnot, podobně jako frame buffer. Zachovejte rozměr textury v pixelech daný konstantou TEXTURE SIZE a počet políček NUM OF TILESxNUM OF TILES. Pro tmavá pole použijte barvu BLACK TILE a pro světlá WHITE TILE. Co bude třeba udělat? Do struktury S StudentRenderer doplnit vlastní reprezentaci 2D textury s využitím typu S RGBA - tzv. aktivní kreslící textura. Upravit fce studrencreate() a studrenrelease() - přidat vytvoření a nakonec uvolnění textury. 5

Funkce studrencreate() doplnit kód, který vytvoří texturu se vzorem šachovnice. 3.2 Krok č.2 Přiřazení texturovacích souřadnic vrcholům Pro všechny vrcholy načteného polygonálního modelu automaticky vygenerovat a přiřadit texturovací souřadnice s využitím mapovani přes pomocné těleso - kouli. Vzorce pro výpočet texturovacích souřadnic u, v jsou odvozené ze sférických souřadnic a lze najít více různých variant. Můžete předpokládat, že model je umístěn v počátku souřadného systému a posunutí středu koule není třeba řešit. Je-li (x, y, z) normalizovaný vektor ze středu souř. systému do vrcholu, pak můžete texturovací souřadnice určit takto: u = 0.5 + arctan( z x ), 2π v = 0.5 arcsin(y). π Jak je v grafice zvykem, vygenerované texturovací souřadnice budou v intervalu < 0, 1 >, který vždy odpovídá aktuálním rozměrům textury. Kód pro přiřazení texturovacích souřadnic doplňte do fce oninit(). Pro uchování texturovacích souřadnic je určeno pole texcoords ve struktuře S Model. 3.3 Krok č.3 Získání hodnoty textury s bilineární interpolací Pro získání hodnoty z textury na souřadnicích u, v využijte bilineární interpolaci čtyř nejbližších pixelů. Hodnoty u, v v intervalu < 0, 1 > odpovídájí rozměrům textury v pixelech. Pokud vám korektně funguje generování texturovacích souřadnic, není třeba řešit případné opakování textury, protože texturovací souřadnice nebudou mimo tento interval. Kód doplńte do studrentexturevalue(). Alpha složku výsledné barvy nebudeme využívat, můžete ji nastavit na 255. 6

3.4 Krok č.4 Podpora texturování při rasterizaci Posledním krokem implementace texturování je úprava samotné rasterizace trojúhelníku, kdy je nutné interpolovat texturovací souřadnice pomocí barycentrických souřadnic a následně zkombinovat barvu získanou výpočtem osvětlovacího modelu s hodnotou textury v daném bodě pomocí modulace. Modulace je princip aplikace textury, kdy textura dále strukturuje povrch objektu daný materiálem: R = R l R t, G = G l G t, B = B l B t. kde R l G l B l je barva určená osvětlovacím modelem a R t G t B t hodnota textury (R t, G t, B t < 0, 1 >). Bude tedy třeba: Obrázek 3: Výstup po implementaci texturování. Upravit fci studrenprojecttriangle() proti původní verzi přidat volání vaší upravené fce studrendrawtriangle(). 7

Upravit fci studrendrawtriangle() doplnit interpolaci texturovacích souřadnic pomocí barycentrických souřadnic podobně jako se ve stávající funkci interpoluje souřadnice z. Hodnotu textury získat pomocí vaší fce studrentexturevalue(). Doplnit modulaci barvy trojúhelníku pomocí textury. Pozn.: Není třeba řešit perspektivní korekci textury. 3.5 Poznámky k řešení Pro vaše modifikace je připravená oddělená varianta rendereru v souborech student.h a student.c. S projektem experimentujte dle libosti (měňte a modifikujte co chcete), ale pamatujte, že odevzdané soubory student.h a student.c musí být funkční s originálním frameworkem! Pro odevzdané řešení je povoleno modifikovat pouze tyto dva soubory. Jak přepnout na zobrazování pomocí studentského rendereru? Konkrétní renderer se vytváří ve fci main() v souboru main.c. Počáteční volbu lze ovlivnit definováním makra USE STUDENT RENDERER na začátku main.c a opětovným překladem. Renderer lze také přepnout za běhu pomocí kláves O a P. Obrázek 4: Ukázky dalších modelů... 8

4 Tipy pro vypracování Doporučuji prostudovat princip základního rendereru (soubory render.h a render.c), velká část projektu je o menších modifikacích již existujících funkcí... Pro kontrolu, zda máte texturu správně inicializovanou, můžete využít fci savebitmap() z bmp.h. Současná verze rendereru a reprezentace 3D modelů neumožňuje snadno a korektně vyřešit přiřazení texturovacích souřadnic trojúhelníkům, jejichž hrany přecházejí přes hranu textury 1 0. Následná interpolace u a v v rasterizaci způsobuje potíže viditelné na Obrázku 5. Toto nebude považováno za chybu! Obrázek 5: Ukázka povolená chyba. 5 Odevzdání viz. web 6 Závěrem At se dílo daří a at vás grafika alespoň trochu baví!!! 9