Wstęp. Potok renderowania w Unity korzysta z trzech podstawowych elementów:
|
|
- Dorota Sosnowska
- 7 lat temu
- Przeglądów:
Transkrypt
1 Shadery w Unity
2 Wstęp Potok renderowania w Unity korzysta z trzech podstawowych elementów: Trójwymiarowe modele Unity korzysta z modeli w formacie *.fbx (wspierane są też inne formaty ale są one konwertowane w tle do *.fbx) Materiały jest to interfejs pozwalający inicjalizować programy cieniowania odpowiednimi danymi (teksturami i właściwościami) Programy cieniujące skrypty przetwarzające wierzchołki i fragmenty w celu określenia koloru odpowiednich pikseli na ekranie
3 Dostępne jednostki cieniowania Surface Shader Wysokopoziomowy program cieniowania zalecany przy efektach korzystających ze świateł. Rozbijany jest później na serię jednostek cieniujących wierzchołki oraz fragmenty Vertex&Fragment Shaders Zgodnie z nazwą jednostki cieniowania odpowiedzialne za przetwarzanie wierzchołków i fragmentów Dostępne są również nowsze jednostki (geometry, hull i domain shader y) ale ich nie będziemy poruszać
4 Dostępne jednostki cieniowania cd. Fixed Function Shaders Przestarzałe rozwiązanie bazujące na stałym potoku renderowania Zbiór funkcji wykonujących podstawowe operacje (np. mieszanie kolorów, tekstur, wykorzystanie podstawowych modeli oświetlenia itp.)
5 ShaderLab wstęp Językiem wykorzystywanym w Unity do tworzenia programów cieniowania jest ShaderLab Na początku pliku zdefiniowana jest nazwa programu -> Shader MyShader Ciało programu zawiera: Sekcję z własnościami programu cieniowania -> Properties własności te można ustawiać z poziomu edytora Unity Shader "MyShader" Properties // SubShader CGPROGRAM // ENDCG SubShader Fallback "Diffuse"
6 ShaderLab wstęp cd. Zbiór sekcji z różnymi wersjami programu -> SubShader sprawdzając od góry uruchamiana jest pierwsza napotkana wersja, która może zostać wykonana na dostępnej karcie graficznej jeżeli żadna wersja nie może zostać wykonana, korzystając ze słowa kluczowego Fallback możemy wyznaczyć, inny (zastępczy) program cieniowania Kod programu (język GLSL/CG) znajduje się pomiędzy dyrektywami CGPROGRAM ENDCG Shader "MyShader" Properties // SubShader CGPROGRAM // ENDCG SubShader Fallback "Diffuse"
7 ShaderLab sekcja Properties Właściwości definiujemy w formacie: nazwa (etykieta, typ) = wartość_domyślna Podstawowe typy danych: 2D sampler2d (tekstura), domyślną wartością może być np. white, black, gray, bump (normal mapa) Cube samplercube (6 tekstur tworzących kostkę), Int, Float (Range) Color Vector (zawsze czterowymiarowy) Shader "MyShader" Properties _MyTexture ("My texture", 2D) = "white" _MyNormalMap ("My normal map", 2D) = "bump // Grey _MyInt ("My integer", Int) = 2 _MyFloat ("My float", Float) = 1.5 _MyRange ("My range", Range(0.0, 1.0)) = 0.5 _MyColor ("My colour", Color) = (1, 0, 0, 1) // (R, G, B, A) _MyVector ("My Vector4", Vector) = (0, 0, 0, 0) // (x, y, z, w)
8 ShaderLab sekcja SubShader Sekcja SubShader ma zazwyczaj następującą strukturę: Tagi i ustawienia programu cieniowania Kod programu w języku GLSL/CG (pomiędzy dyrektywami CGPROGRAM ENDCG) Dyrektywy kompilacji SubShader Tags "RenderType"="Opaque "Queue"="Geometry+1" "ForceNoShadowCasting"="True" LOD 200 Offset -1, -1 CGPROGRAM #pragma surface surf Lambert decal:blend sampler2d _MainTex; struct Input float2 uv_maintex; ; Deklaracje zmiennych globalnych Deklaracje struktur danych wejściowych i/lub wyjściowych Kod jednostek cieniowania void surf (Input IN, inout SurfaceOutput o) half4 c = tex2d (_MainTex, IN.uv_MainTex); o.albedo = c.rgb; o.alpha = c.a; ENDCG
9 ShaderLab sekcja SubShader Tagi i ustawienia programu cieniowania Dokumentacja opisuje 7 podstawowych tagów: Dwa najważniejsze: Queue, RenderType Queue - określa kolejność wyświetlania na ekranie. Parametrem jest liczba. Istnieje kilka stałych takich jak: Background, Geometry, AlphaTest, Transparent, Overlay RenderType określa sposób wyświetlania wyniku. Z najważniejszych typów wyróżnić można: Opaque nieprzezroczysty, Transparent (pół)przezroczysty, TransparentCutout (pół)przezroczyste fragmenty są obcinane
10 ShaderLab sekcja SubShader Tagi i ustawienia programu cieniowania cd. Pozostałe: DisableBatching, ForceNoShadowCasting, IngoreProjector, CanUseSpriteAtlas, PreviewType Ustawienia mogą dotyczyć między innymi: Bufora głębi: Cull [Back Front Off], ZWrite [On Off], ZTest [Less Greater Equal ], Offset [Factor Units], Świateł: Lighting [On Off] Level of Details: LOD [liczba]
11 ShaderLab sekcja SubShader Kod programu w języku GLSL/CG - Dyrektywy kompilacji Na podstawie tych dyrektyw karta graficzna określa, która sekcja SubShader powinna zostać wybrana Pozwalają określić wymaganą wersję OpenGL/DirectX Umożliwiają ograniczenie użyteczności materiału do określonych komponentów Unity (Renderer ów) Dyrektywy pozwalają wczytywać pliki biblioteczne Za pomocą dyrektyw deklaruje się jednostki cieniowania #include "UnityCG.cginc" #pragma surface surfacefunction lightmodel [optionalparams] #pragma vertex name #pragma fragment name #pragma geometry name #pragma hull name #pragma domain name #pragma target name #pragma only_renderers space_separated_names #pragma exclude_renderers space_separated_names #pragma multi_compile #pragma enable_d3d11_debug_symbols #pragma hardware_tier_variants renderer_name
12 ShaderLab sekcja SubShader Kod programu w języku GLSL/CG - Deklaracje zmiennych globalnych Aby używać właściwości nie wystarczy zadeklarowanie ich w sekcji Properties Wymagana jest deklaracja zmiennych globalnych do których zostaną przypisane wartości nazwy muszą się zgadzać z nazwami w sekcji Properties Typy mogą być bardziej restrykcyjne np. ograniczenie wektorów do dwóch lub trzech wymiarów, zmniejszenie dokładności float a do half itp. Properties _MyTexture ("My texture", 2D) = "white" _MyNormalMap ("My normal map", 2D) = "bump" _MyInt ("My integer", Int) = 2 _MyFloat ("My float", Float) = 1.5 _MyRange ("My range", Range(0.0, 1.0)) = 0.5 _MyColor ("My colour", Color) = (1, 0, 0, 1) _MyVector ("My Vector4", Vector) = (0, 0, 0, 0) SubShader CGPROGRAM sampler2d _MyTexture, _MyNormalMap; int _MyInt; float _MyFloat, _MyRange; half4 _MyColor; float4 _MyVector; ENDCG
13 ShaderLab sekcja SubShader Kod programu w języku GLSL/CG - Deklaracje struktur danych Istnieje możliwość zdefiniowania struktur danych wejściowych i wyjściowych z poszczególnych jednostek cieniujących Surface Shader y ( SurfaceShaders.html) Istnieją trzy struktury danych wyjściowych: SurfaceOutput (standard z Unity 4 - materiały Diffuse lub Specular) SurfaceOutputStandard i SurfaceOutputStandard Specular (standard z Unity 5 materiały Standard) #pragma surface surf Lambert struct Input float4 color : COLOR; ; void surf (Input IN, inout SurfaceOutput o) o.albedo = 1; // 1 = (1,1,1,1) = white
14 ShaderLab sekcja SubShader Kod programu w języku GLSL/CG - Deklaracje struktur danych cd. Dane wejściowe dla Surface Shader ów należy zdefiniować. Mogą zawierać: Koordynaty tekstury (zmienne zaczynające się na uv_ lub uv2_) Interpolowany kolor piksela (zmienna z wiązaniem : COLOR) pozycję na ekranie i w świecie Wektory odbicia i normalne #pragma surface surf Lambert struct Input float4 color : COLOR; ; void surf (Input IN, inout SurfaceOutput o) o.albedo = 1; // 1 = (1,1,1,1) = white
15 ShaderLab sekcja SubShader Kod programu w języku GLSL/CG - Deklaracje struktur danych cd. Vertex & Fragment Shader y Dla tych jednostek cieniujących trzeba zdefiniować strukturę wejściową i wyjściową (dla Vertex Shader a mogą to być parametry wywołania) Przypisywanie wartości opiera się na wiązaniach jak TEXCOORD0, SV_POSITION itp. (listę dostępnych wiązań można znaleźć w dokumentacji) Vertex Shader zwraca strukturę, która jest wejściem do Fragment Shader a Fragment Shader zwraca obliczony kolor fragmentu (typ fixed4 powiązany z SV_Target) #pragma vertex vert #pragma fragment frag struct v2f float2 uv : TEXCOORD0; float4 pos : SV_POSITION; ; v2f vert (float4 vertex : POSITION, float2 uv : TEXCOORD0) v2f o; o.pos = UnityObjectToClipPos(vertex); o.uv = uv; return o; fixed4 frag (v2f i) : SV_Target return fixed4(i.uv, 0, 0);
16 ShaderLab sekcja SubShader Kod programu w języku GLSL/CG - Kod jednostek cieniowania Przykłady (Surface Shader) Simple Diffuse tylko światło rozposzone Textured model z teksturą Bumped dodana normal mapa Rim poświata dookoła obiektu Sliced wycięta część fragmentów Cubemap dodane odbicie (z cubemap y) Details dodana druga tekstura z detalami VertexData wyświetlenie normalnych Normals Extrusion wyciągnięcie modelu wzdłuż normalnych Snow efekt pokrywy śnieżnej
17 ShaderLab sekcja SubShader Kod programu w języku GLSL/CG - Kod jednostek cieniowania cd. Przykłady (Fragment Shader) VertexLit tylko tekstura, bez świateł SolidColor jednolity kolor UV kolory koordynatów tekstury Vpos wycięcie szachownicy w modelu Vface pokolorowanie front i back face ów Vertex1d przekształcenie współrzędnej w losowe kolory WrlSpN wyświetlenie normalnych (globalnych) Triplanar tekstura naniesiona z trzech kątów
18 ShaderLab sekcja SubShader Kod programu w języku GLSL/CG - Kod jednostek cieniowania cd. Przykłady (Fragment Shader) SkyRefl odbicie nieba na powierzchni obiektu ManyTex wiele tekstur naniesionych na obiekt ChBoard wzór szachownicy wygenerowany na obiekcie Diffuse światło rozproszone Ambient światło otoczenia ShadCast rzucanie cienia ShadRecv wyświetlenie cieni innych obiektów
19 ShaderLab sekcja SubShader Zaawansowane czas w jednostkach cieniujących Przykłady Falująca podłoga Wyciąganie wierzchołków wzdłuż normalnych zależnie od czasu Dostępne zmienne: _Time[4] = t/20, t, t*2, t*3 _SinTime[4] = sin(t/8), sin(t/4), sin(t/2), sin(t) gdzie t to aktualny czas
20 ShaderLab sekcja SubShader Zaawansowane programy cieniujące wykorzystujące wiele przejść Niektórych efektów nie da się uzyskać za pomocą pojedynczej sekwencji jednostek cieniowania Z tego powodu wprowadzony został mechanizm przejść (ang. Pass) Każde kolejne przejście może korzystać z danych wyjściowych poprzedniego przejścia zapisanych w odpowiednich buforach Przykładem wykorzystania jest użycie predefiniowanego przejścia GrabPass, które zwraca fragment obrazu zasłanianego przez nasz obiekt Pozwala stworzyć takie materiały jak szkło czy woda
21 Physically based rendering Model oświetlenia oparty na właściwościach fizycznych materiałów Kosztowniejszy od wcześniejszych podejść opartych o światło rozproszone (Diffuse) i odbicia lustrzane (Specular) Dający bardziej realistyczne efekty i więcej możliwości Unity dostarcza dwie wersje materiałów: lustrzaną i metaliczną
22 Physically based rendering Wersja metaliczna (metallic) Wersja metaliczna zawiera trzy parametry: Kolor bazowy materiału Poziom gładkości Poziom metaliczności
23 Physically based rendering Wersja lustrzana (specular) Wersja lustrzana zawiera trzy parametry: Kolor bazowy materiału Poziom gładkości Kolor odbicia lustrzanego
24 Substance (by Allegorithmic) Alternatywa do pisania zaawansowanych programów cieniujących ręcznie Substance Designer Produkt firmy Allegorithmic pozwalający na tworzenie materiałów za pomocą łączenia bloczków Możliwość eksportu materiału do silników gier takich jak Unity czy Unreal Engine 4
25 Substance (by Allegorithmic) Przykład materiałów generowanych dynamicznie Na podstawie parametrów generowane są tekstury oraz prostszy materiał, który z nich korzysta Parametry można modyfikować w czasie działania aplikacji (generacja nowej tekstury może być kosztowne) Parametry definiuje się tworząc substancję w Substance Designer ze
26 Materiały
Plan wykładu. Akcelerator 3D Potok graficzny
Plan wykładu Akcelerator 3D Potok graficzny Akcelerator 3D W 1996 r. opracowana została specjalna karta rozszerzeń o nazwie marketingowej Voodoo, którą z racji wspomagania procesu generowania grafiki 3D
Bardziej szczegółowoOpenGL : Oświetlenie. mgr inż. Michał Chwesiuk mgr inż. Tomasz Sergej inż. Patryk Piotrowski. Szczecin, r 1/23
OpenGL : mgr inż. Michał Chwesiuk mgr inż. Tomasz Sergej inż. Patryk Piotrowski 1/23 Folder z plikami zewnętrznymi (resources) Po odpaleniu przykładowego projektu, nie uruchomi się on poprawnie. Powodem
Bardziej szczegółowoGry Komputerowe Laboratorium 4. Teksturowanie Kolizje obiektów z otoczeniem. mgr inż. Michał Chwesiuk 1/29. Szczecin, r
Gry Komputerowe Laboratorium 4 Teksturowanie Kolizje obiektów z otoczeniem mgr inż. Michał Chwesiuk 1/29 Klasa Stwórzmy najpierw klasę TextureManager, która będzie obsługiwała tekstury w projekcie. 2/29
Bardziej szczegółowo1 Temat: Vertex Shader
Instrukcja Architektura procesorów graficznych 1 Temat: Vertex Shader Przygotował: mgr inż. Tomasz Michno 1 Wstęp 1.1 Czym jest shader Shader jest programem (zazwyczaj krótkim), wykonywanym przez kartę
Bardziej szczegółowoGrafika Komputerowa Wykład 5. Potok Renderowania Oświetlenie. mgr inż. Michał Chwesiuk 1/38
Wykład 5 Potok Renderowania Oświetlenie mgr inż. 1/38 Podejście śledzenia promieni (ang. ray tracing) stosuje się w grafice realistycznej. Śledzone są promienie przechodzące przez piksele obrazu wynikowego
Bardziej szczegółowoRóżne rodzaje efektów
Title Subtitle Wstęp Wykorzystywanie możliwości GPU Głównie gry Także nowe wersje programów graficznych, video (Adobe Photoshop, Ahead Nero) Będę głównie opowiadał o zastosowaniach w grach (chociaż można
Bardziej szczegółowoProgramowanie gier komputerowych Tomasz Martyn Wykład 6. Materiały informacje podstawowe
Programowanie gier komputerowych Tomasz Martyn Wykład 6. Materiały informacje podstawowe Czym są tekstury? Tekstury są tablicowymi strukturami danych o wymiarze od 1 do 3, których elementami są tzw. teksele.
Bardziej szczegółowoAutodesk 3D Studio MAX Teksturowanie modeli 3D
Autodesk 3D Studio MAX Teksturowanie modeli 3D dr inż. Andrzej Czajkowski Instyt Sterowania i Systemów Informatycznych Wydział Informatyki, Elektrotechniki i Automatyki 25 kwietnia 2017 1 / 20 Plan Wykładu
Bardziej szczegółowoPoniżej pokazane są poszczególne etapy, w nawiasach kwadratowych znajdują się nazwy tekstur, które utworzymy w projekcie, a przy strzałkach nazwy
Część IV Postprocessing rozmycie gaussowskie Do tej pory obiekty renderowane były od razu do okna podglądu. Zmienimy trochę ten schemat tworzenia obrazu. Wszystkie przebiegi, które zostały utworzone do
Bardziej szczegółowoOpenGL oświetlenie. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska
OpenGL oświetlenie Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska Kurs: Copyright c 2017 Bogdan Kreczmer Niniejszy dokument zawiera
Bardziej szczegółowoModel oświetlenia. Radosław Mantiuk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie
Model oświetlenia Radosław Mantiuk Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Obliczenie koloru powierzchni (ang. Lighting) Światło biegnie od źródła światła, odbija
Bardziej szczegółowoUstawienia materiałów i tekstur w programie KD Max. MTPARTNER S.C.
Ustawienia materiałów i tekstur w programie KD Max. 1. Dwa tryby własności materiału Materiał możemy ustawić w dwóch trybach: czysty kolor tekstura 2 2. Podstawowe parametry materiału 2.1 Większość właściwości
Bardziej szczegółowoGLKit. Wykład 10. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.h>
#import "Fraction.h" #import @implementation Fraction -(Fraction*) initwithnumerator: (int) n denominator: (int) d { self = [super init]; } if ( self ) { [self setnumerator: n anddenominator:
Bardziej szczegółowoInformatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
Bardziej szczegółowoModelowanie i wstęp do druku 3D Wykład 1. Robert Banasiak
Modelowanie i wstęp do druku 3D Wykład 1 Robert Banasiak Od modelu 3D do wydruku 3D Typowa droga...czasem wyboista... Pomysł!! Modeler 3D Przygotowanie modelu do druku Konfiguracja Programu do drukowania
Bardziej szczegółowoGrafika Komputerowa Wykład 6. Teksturowanie. mgr inż. Michał Chwesiuk 1/23
Wykład 6 mgr inż. 1/23 jest to technika w grafice komputerowej, której celem jest zwiększenie szczegółowości renderowanych powierzchni za pomocą tekstur. jest to pewna funkcja (najczęściej w formie bitmapy)
Bardziej szczegółowoOpenGL Światło (cieniowanie)
OpenGL Światło (cieniowanie) 1. Oświetlenie włączanie/wyłączanie glenable(gl_lighting); - włączenie mechanizmu oświetlenia gldisable(gl_lighting); - wyłączenie mechanizmu oświetlenia glenable(gl_light0);
Bardziej szczegółowoGry komputerowe: efekty specjalne cz. 2
1/43 Gry komputerowe: efekty specjalne cz. 2 Przygotowała: Anna Tomaszewska 2/43 Mapowanie środowiska - definicja aproksymacje odbić na powierzchnie prosto- i krzywoliniowej," oświetlanie sceny." obserwator
Bardziej szczegółowoPierwsze kroki z easy Soft CoDeSys. 2009 Eaton Corporation. All rights reserved.
Pierwsze kroki z easy Soft CoDeSys Tworzenie prostego programu Rozpoczęcie pracy 2 Tworzenie prostego programu Wybór aparatu 3 Tworzenie prostego programu Wybór języka programowania Do wyboru jest sześć
Bardziej szczegółowoOpenGL Światło (cieniowanie)
OpenGL Światło (cieniowanie) 1. Oświetlenie włączanie/wyłączanie glenable(gl_lighting); - włączenie mechanizmu oświetlenia gldisable(gl_lighting); - wyłączenie mechanizmu oświetlenia glenable(gl_light0);
Bardziej szczegółowoBartłomiej Filipek www.ii.uj.edu.pl/~filipek
Bartłomiej Filipek www.ii.uj.edu.pl/~filipek Nasz Cel Prehistoria krótki wstęp Nowa era! Vertex Shaders Fragment Shaders Podstawy GLSL Obsługa GLSL z API OpenGL Dodajmy parę efektów! Podsumowanie Dodatkowe
Bardziej szczegółowoRENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski
RENDERING W CZASIE RZECZYWISTYM Michał Radziszewski Plan wykładu Programy geometrii wprowadzenie Miejsce w potoku graficznym Wejścia i wyjścia programów geometrii Wierzchołki, prymitywy, ich nowe rodzaje
Bardziej szczegółowoKarty graficzne możemy podzielić na:
KARTY GRAFICZNE Karta graficzna karta rozszerzeo odpowiedzialna generowanie sygnału graficznego dla ekranu monitora. Podstawowym zadaniem karty graficznej jest odbiór i przetwarzanie otrzymywanych od komputera
Bardziej szczegółowoWprowadzenie do QT OpenGL
Wprowadzenie do QT mgr inż. Michał Chwesiuk mgr inż. Tomasz Sergej inż. Patryk Piotrowski 1/21 - Open Graphics Library Open Graphics Library API pozwalające na wykorzystanie akceleracji sprzętowej do renderowania
Bardziej szczegółowoPrzygotowanie grafiki 3D do gier komputerowych
Grafika Komputerowa i Wizualizacja Przygotowanie grafiki 3D do gier komputerowych Rafał Piórkowski Plan wykładu 1. Ogólne wiadomości 2. Modelowanie high poly 3. Rzeźbienie 4. Modelowanie low poly 5. Model
Bardziej szczegółowoAnimowana grafika 3D. Opracowanie: J. Kęsik.
Animowana grafika 3D Opracowanie: J. Kęsik kesik@cs.pollub.pl Powierzchnia obiektu 3D jest renderowana jako czarna jeżeli nie jest oświetlana żadnym światłem (wyjątkiem są obiekty samoświecące) Oświetlenie
Bardziej szczegółowoMapowanie tekstur Mip-mapy (level of detail) Filtrowanie Multiteksturowanie
Mapowanie tekstur Mip-mapy (level of detail) Filtrowanie Multiteksturowanie Korekcja perspektywy http://en.wikipedia.org/wiki/file:perspective_correct_texture_mapping.jpg GL_TEXTURE_MIN_FILTER Zmniejszanie
Bardziej szczegółowoPodstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
Bardziej szczegółowoZjawisko widzenia obrazów
Zjawisko widzenia obrazów emisja światła przez źródła światła interakcja światła z powierzchnią absorbcja światła przez sensor Źródła światła światło energia elektromagnetyczna podróżująca w przestrzeni
Bardziej szczegółowoRENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski
RENDERING W CZASIE RZECZYWISTYM Michał Radziszewski Plan wykładu Opóźnione cieniowanie wprowadzenie Koszt obliczeniowy cieniowania Cieniowanie jedno- i wieloprzebiegowe Cieniowanie opóźnione Schemat opóźnionego
Bardziej szczegółowoSmarty PHP. Leksykon kieszonkowy
IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK
Bardziej szczegółowoPROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec
PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych
Bardziej szczegółowoGrafika 3D na przykładzie XNA 3.1
Jacek Matulewski, Tomasz Dziubak Grafika 3D na przykładzie XNA 3.1 ITA-106 Wersja 1.02 (XNA 3.1, PS 2.0) Toruo, listopad 2010 2010 Jacek Matulewski, Tomasz Dziubak. Autor udziela prawa do bezpłatnego kopiowania
Bardziej szczegółowoOświetlenie obiektów 3D
Synteza i obróbka obrazu Oświetlenie obiektów 3D Opracowanie: dr inż. Grzegorz Szwoch Politechnika Gdańska Katedra Systemów Multimedialnych Rasteryzacja Spłaszczony po rzutowaniu obraz siatek wielokątowych
Bardziej szczegółowo6 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 6 1/7 Grafika Komputerowa 3D Instrukcja laboratoryjna Temat: Materiały i oświetlenie 6 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie Specyfikacja biblioteki OpenGL rozróżnia trzy
Bardziej szczegółowoPodstawy POV-Ray a. Diana Domańska. Uniwersytet Śląski
Podstawy POV-Ray a Diana Domańska Uniwersytet Śląski Kolory i proste wzory Jednolity kolor Jest to sposób jaki do tej pory używaliśmy do podawania koloru czyli 1 pigment{rgb } Kolory i proste
Bardziej szczegółowoOświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania.
Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania. Chcąc osiągnąć realizm renderowanego obrazu, należy rozwiązać problem świetlenia. Barwy, faktury i inne właściwości przedmiotów postrzegamy
Bardziej szczegółowoPotok graficzny i shadery. Hubert Rutkowski
Potok graficzny i shadery Hubert Rutkowski 1. Coś o mnie Zakład Technologii Gier Uniwerytetu Jagiellońskiego 2. Potok graficzny jak w OpenGL Cry Engine 3 (zródło: CryTek) Vertex specification
Bardziej szczegółowoSynteza i obróbka obrazu HDR. Obrazy o rozszerzonym zakresie dynamiki
Synteza i obróbka obrazu HDR Obrazy o rozszerzonym zakresie dynamiki Dynamika obrazu Zakres dynamiki (dynamicrange) to różnica między najciemniejszymi i najjaśniejszymi elementami obrazu. W fotografii
Bardziej szczegółowoScena 3D. Cieniowanie (ang. Shading) Scena 3D - Materia" Obliczenie koloru powierzchni (ang. Lighting)
Zbiór trójwymiarowych danych wej$ciowych wykorzystywanych do wygenerowania obrazu wyj$ciowego 2D. Cieniowanie (ang. Shading) Rados"aw Mantiuk Wydzia" Informatyki Zachodniopomorski Uniwersytet Technologiczny
Bardziej szczegółowoSystemy wirtualnej rzeczywistości. Komponenty i serwisy
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Systemy wirtualnej rzeczywistości Laboratorium Komponenty i serwisy Wstęp: W trzeciej części przedstawione zostaną podstawowe techniki
Bardziej szczegółowoGRK 5. dr Wojciech Palubicki
GRK 5 dr Wojciech Palubicki Uproszczony Potok Graficzny (Rendering) Model Matrix View Matrix Projection Matrix Viewport Transform Object Space World Space View Space Clip Space Screen Space Projection
Bardziej szczegółowoTECHNOLOGIE INTERNETOWE WYKŁAD 6. JavaScript Funkcje i obiekty
1. Co to jest funkcja? Funkcja jest oddzielnym blokiem kodu, który może być wielokrotnie wykonywany w danym programie, poprzez jej wielokrotne wywoływanie. Do funkcji przekazujemy przeważnie jakieś argumenty,
Bardziej szczegółowoGRK 4. dr Wojciech Palubicki
GRK 4 dr Wojciech Palubicki Uproszczony Potok Graficzny (Rendering) Model Matrix View Matrix Projection Matrix Viewport Transform Object Space World Space View Space Clip Space Screen Space Projection
Bardziej szczegółowoGrafika komputerowa. Model oświetlenia. emisja światła przez źródła światła. interakcja światła z powierzchnią. absorbcja światła przez sensor
Model oświetlenia emisja światła przez źródła światła interakcja światła z powierzchnią absorbcja światła przez sensor Radiancja radiancja miara światła wychodzącego z powierzchni w danym kącie bryłowym
Bardziej szczegółowoKarta graficzna karta rozszerzeo odpowiedzialna generowanie sygnału graficznego dla ekranu monitora. Podstawowym zadaniem karty graficznej jest
KARTA GRAFICZNA Karta graficzna karta rozszerzeo odpowiedzialna generowanie sygnału graficznego dla ekranu monitora. Podstawowym zadaniem karty graficznej jest odbiór i przetwarzanie otrzymywanych od komputera
Bardziej szczegółowoLaboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:
Zakres laboratorium: definiowanie struktur terminologia obiektowa definiowanie klas funkcje składowe klas programy złożone z wielu plików zadania laboratoryjne Laboratorium nr 12 Temat: Struktury, klasy.
Bardziej szczegółowoUnity 2D - prosta gra
www.math.uni.lodz.pl/ radmat Cel ćwiczeń Celem bieżących ćwiczeń jest stworzenie prostej gry 2D. Prosta gra Stworzymy prostą grę, w której będziemy sterować pojazdem kosmicznym i będziemy mogli strzelać
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć
Bardziej szczegółowoPRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: moduł specjalności obowiązkowy: Inżynieria oprogramowania Rodzaj zajęć: wykład, laboratorium I KARTA PRZEDMIOTU CEL PRZEDMIOTU GRAFICZNE MODELOWANIE
Bardziej szczegółowoSYMULACJA OPADÓW ATMOSFERYCZNYCH I POKRYWY ŚNIEŻNEJ W GENERATORZE OBRAZU JASKIER IG
Szybkobieżne Pojazdy Gąsienicowe (41) nr 3, 2016 Michał Bugała SYMULACJA OPADÓW ATMOSFERYCZNYCH I POKRYWY ŚNIEŻNEJ W GENERATORZE OBRAZU JASKIER IG Streszczenie. W artykule przedstawiono metody implementacji
Bardziej szczegółowoShadery. Artur Staszczyk Bartłomiej Filipek
Shadery Artur Staszczyk www.astaszczyk.com Bartłomiej Filipek www.bartlomiejfilipek.pl Bartlomiej.filipek@gmail.com Potok graficzny Vertex shader Fragment shader GLSL Przykłady Inne shadery? Vertex shader
Bardziej szczegółowo1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.
1. Pierwszy program // mój pierwszy program w C++ #include using namespace std; cout
Bardziej szczegółowoHDR. Obrazy o rozszerzonym zakresie dynamiki
Synteza i obróbka obrazu HDR Obrazy o rozszerzonym zakresie dynamiki Dynamika obrazu Zakres dynamiki (dynamicrange) to różnica między najciemniejszymi i najjaśniejszymi elementami obrazu. W fotografice
Bardziej szczegółowoJulia 4D - raytracing
i przykładowa implementacja w asemblerze Politechnika Śląska Instytut Informatyki 27 sierpnia 2009 A teraz... 1 Fraktale Julia Przykłady Wstęp teoretyczny Rendering za pomocą śledzenia promieni 2 Implementacja
Bardziej szczegółowoGRK 5. dr Wojciech Palubicki
GRK 5 dr Wojciech Palubicki Projekty (dwu-osobowe) Napisać symulacje lotu kosmicznego w OpenGLu: Korzystając tylko z bibliotek które na ćwiczeniach zostały omówione Interaktywna symulacja Wszystkie wielokąty
Bardziej szczegółowoWykład 4. Rendering (1) Informacje podstawowe
Wykład 4. Rendering (1) Informacje podstawowe Z punktu widzenia dzisiejszego programowania gier: Direct3D jest najczęściej wykorzystywanym przez profesjonalnych deweloperów gier API graficznym na platformie
Bardziej szczegółowoKlasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C
#import "Fraction.h" #import @implementation Fraction -(Fraction*) initwithnumerator: (int) n denominator: (int) d { self = [super init]; } if ( self ) { [self setnumerator: n anddenominator:
Bardziej szczegółowoĆwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji
Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji Materiał jest zbiorem informacji o właściwościach powierzchni. Składa się na niego kolor, sposób odbijania światła i sposób nakładania
Bardziej szczegółowoJęzyk C++ zajęcia nr 2
Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator
Bardziej szczegółowoSynteza i obróbka obrazu. Tekstury. Opracowanie: dr inż. Grzegorz Szwoch Politechnika Gdańska Katedra Systemów Multimedialnych
Synteza i obróbka obrazu Tekstury Opracowanie: dr inż. Grzegorz Szwoch Politechnika Gdańska Katedra Systemów Multimedialnych Tekstura Tekstura (texture) obraz rastrowy (mapa bitowa, bitmap) nakładany na
Bardziej szczegółowoProgramowanie obiektowe, wykład nr 6. Klasy i obiekty
Dr hab. inż. Lucyna Leniowska, prof. UR, Zakład Mechatroniki, Automatyki i Optoelektroniki, IT Programowanie obiektowe, wykład nr 6 Klasy i obiekty W programowaniu strukturalnym rozwój oprogramowania oparto
Bardziej szczegółowoMateriały. Dorota Smorawa
Materiały Dorota Smorawa Materiały Materiały, podobnie jak światła, opisywane są za pomocą trzech składowych. Opisują zdolności refleksyjno-emisyjne danej powierzchni. Do tworzenia materiału służy funkcja:
Bardziej szczegółowoOświetlenie w OpenGL. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 8. Światło otaczajace. Światło rozproszone.
Oświetlenie w OpenGL Oprogramowanie i wykorzystanie stacji roboczych Wykład 8 Dr inż. Tomasz Olas olas@icis.pcz.pl W OpenGL źródło światła w scenie składa się z trzech składowych oświetlenia: otoczenia,
Bardziej szczegółowoWybrane działy Informatyki Stosowanej
Wybrane działy Informatyki Stosowanej JSP - Java Server Pages dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki 2019 Aplikacje i skrypty WWW klasyfikacja
Bardziej szczegółowoTechniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja
Bardziej szczegółowoGrafika komputerowa i wizualizacja
Grafika komputerowa i wizualizacja Radosław Mantiuk ( rmantiuk@wi.zut.edu.pl, p. 315 WI2) http://rmantiuk.zut.edu.pl Katedra Systemów Multimedialnych Wydział Informatyki, Zachodniopomorski Uniwersytet
Bardziej szczegółowoChocofur szkolenie średniozaawansowane
Chocofur szkolenie średniozaawansowane Lech Sokołowski CHOCOFUR.COM Poniższe opracowanie stanowi esencję wiedzy przekazywanej na szkoleniu. Jest to zbiór notatek zawierający najważniejsze punkty omawianych
Bardziej szczegółowoUnity. Platforma do tworzenia gier dla różnych systemów docelowych, m.in.: Windows, macos, ios, Android, Powstała w 2005 r., obecnie wersja 5.3.
Unity Unity Platforma do tworzenia gier dla różnych systemów docelowych, m.in.: Windows, macos, ios, Android, Powstała w 2005 r., obecnie wersja 5.3.5 Unity Wymagania systemowe: Windows 7SP1, 8, 10 Mac
Bardziej szczegółowoWykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Bardziej szczegółowoOpenGL przezroczystość
OpenGL przezroczystość W standardzie OpenGL efekty przezroczystości uzyskuje się poprzez zezwolenie na łączenie kolorów: Kolor piksela tworzy się na podstawie kolorów obiektu przesłanianego i przesłaniającego
Bardziej szczegółowoUnreal Engine w 24 godziny : nauka tworzenia gier / Aram Cookson, Ryan DowlingSoka, Clinton Crumpler. Gliwice, cop Spis treści.
Unreal Engine w 24 godziny : nauka tworzenia gier / Aram Cookson, Ryan DowlingSoka, Clinton Crumpler. Gliwice, cop. 2017 Spis treści O autorach 11 Dedykacja 12 Podziękowania 12 Wstęp 13 Godzina 1. Wprowadzenie
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoInformatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki
Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu
Bardziej szczegółowoSystemy wirtualnej rzeczywistości. Podstawy grafiki 3D
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Systemy wirtualnej rzeczywistości Laboratorium Podstawy grafiki 3D Wstęp: W drugiej części przedstawione zostaną podstawowe mechanizmy
Bardziej szczegółowoMateriały do laboratorium MS ACCESS BASIC
Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I
Bardziej szczegółowoKlasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np
Klasy Klasa jest nowym typem danych zdefiniowanym przez użytkownika Wartości takiego typu nazywamy obiektami Najprostsza klasa jest po prostu strukturą, np struct Zespolona { Klasy jako struktury z operacjami
Bardziej szczegółowoAda95 przetwarzanie rozproszone
Ada95 przetwarzanie rozproszone 1. Model systemu rozproszonego 2. Partycje i jednostki kompilacji 3. Glade narzędzie gnatdist język opisu konfiguracji 4. Przykład programu rozproszonego Model systemu rozproszonego
Bardziej szczegółowoAda95 przetwarzanie rozproszone
1 Ada95 przetwarzanie rozproszone 1. Model systemu rozproszonego 2. Partycje i jednostki kompilacji 3. Glade narzędzie gnatdist język opisu konfiguracji 4. Przykład programu rozproszonego 2 węzeł Model
Bardziej szczegółowoZasoby. Musimy zaimportować zasoby dla gry z Asset Store
Gra 2D w Unity Tworzymy projekt Pusty projekt Zasoby Musimy zaimportować zasoby dla gry z Asset Store Potwierdzamy import Zasoby Scena Zapisujemy naszą na razie pustą scenę, najlepiej w podkatalogu Assets/Scenes
Bardziej szczegółowoXQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery
http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod
Bardziej szczegółowoRendering sceny z modelem węzła
Rendering sceny z modelem węzła Po zdefiniowaniu materiałów i tekstur na powierzchniach elementów... rozpoczyna się żmudny proces dobierania typu i parametrów oświetlenia (w tym kierunku padania światła
Bardziej szczegółowoTektura obiektów. Ogólnie sekcja opisująca teksturę wygląda następująco:
Tektura obiektów Tekstura opisuje wygląd powierzchni obiektów. W PovRay'u do opisu tekstury wykorzystuje się trzy parametry: barwnik - pigment (ang. pigment) określa kolor powierzchni obiektu; wektory
Bardziej szczegółowoAplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium
Bardziej szczegółowoDelphi Laboratorium 3
Delphi Laboratorium 3 1. Procedury i funkcje Funkcja jest to wydzielony blok kodu, który wykonuje określoną czynność i zwraca wynik. Procedura jest to wydzielony blok kodu, który wykonuje określoną czynność,
Bardziej szczegółowoOpenGL - tekstury Mapowanie tekstur
OpenGL - tekstury Mapowanie tekstur Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki Stosowanej
Bardziej szczegółowoPROE wykład 4 pozostałe operatory, forward declaration, dziedziczenie. dr inż. Jacek Naruniec
PROE wykład 4 pozostałe operatory, forward declaration, dziedziczenie dr inż. Jacek Naruniec Kolokwium wykładowe Pierwsze kolokwium 6 kwietnia Drugie kolokwium 1 czerwca Kolokwium poprawkowe 8 czerwca
Bardziej szczegółowoWstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania
Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania Przemysław Kobylański Wprowadzenie Każdy program w C musi zawierać przynajmniej funkcję o nazwie main(): Aby możliwe
Bardziej szczegółowoIRONCAD. TriBall IRONCAD Narzędzie pozycjonujące
IRONCAD IRONCAD 2016 TriBall o Narzędzie pozycjonujące Spis treści 1. Narzędzie TriBall... 2 2. Aktywacja narzędzia TriBall... 2 3. Specyfika narzędzia TriBall... 4 3.1 Kula centralna... 4 3.2 Kule wewnętrzne...
Bardziej szczegółowoW2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :
Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : class nazwa_klasy prywatne dane i funkcje public: publiczne dane i funkcje lista_obiektów;
Bardziej szczegółowoBaltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup
Baltie 3 Podręcznik do nauki programowania dla klas I III gimnazjum Tadeusz Sołtys, Bohumír Soukup Czytanie klawisza lub przycisku myszy Czytaj klawisz lub przycisk myszy - czekaj na naciśnięcie Polecenie
Bardziej szczegółowoWyświetlanie terenu. Clipmapy geometrii
Wyświetlanie terenu Clipmapy geometrii Rendering terenu Łatwy do zaimplementowania Darmowe zestawy danych Liczne zastosowania: Wizualizacje geograficzne Symulatory Gry Ogromne ilości danych Gry Od 2x2
Bardziej szczegółowoSPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD
Dr inż. Jacek WARCHULSKI Dr inż. Marcin WARCHULSKI Mgr inż. Witold BUŻANTOWICZ Wojskowa Akademia Techniczna SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Streszczenie: W referacie przedstawiono możliwości
Bardziej szczegółowoImplementacja sieci neuronowych na karcie graficznej. Waldemar Pawlaszek
Implementacja sieci neuronowych na karcie graficznej Waldemar Pawlaszek Motywacja Czyli po co to wszystko? Motywacja Procesor graficzny GPU (Graphics Processing Unit) Wydajność Elastyczność i precyzja
Bardziej szczegółowoMateriały. Przygotowanie plików: 1. Ściągamy i otwieramy tę scene ; ściągamy też te tekstury: Small, Tiled, Small, Tiled, Small.
Materiały Przygotowanie plików: 1. Ściągamy i otwieramy tę scene ; ściągamy też te tekstury: Small, Tiled, Small, Tiled, Small. Przygotowanie sceny: Będziemy chcieli stworzyć odpowiednie materiały dla
Bardziej szczegółowoŚwiatła i rodzaje świateł. Dorota Smorawa
Światła i rodzaje świateł Dorota Smorawa Rodzaje świateł Biblioteka OpenGL posiada trzy podstawowe rodzaje świateł: światło otoczenia, światło rozproszone oraz światło odbite. Dodając oświetlenie na scenie
Bardziej szczegółowoWstęp do programowania
wykład 8 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Podprogramy Czasami wygodnie jest wyodrębnić jakiś fragment programu jako pewną odrębną całość umożliwiają to podprogramy.
Bardziej szczegółowoProgramowanie komputerowe. Zajęcia 7
Programowanie komputerowe Zajęcia 7 Klasy Klasy to typy danych, które pozwalają na zgromadzenie w jednej zmiennej (obiekcie) zarówno danych jak i operacji związanych z tymi danymi. Obiekt danej klasy może
Bardziej szczegółowoJĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona
Bardziej szczegółowoWykład 5: Klasy cz. 3
Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu
Bardziej szczegółowo