Tag: rendering

Entries for tag "rendering", ordered from most recent. Entry count: 187.

Uwaga! Informacje na tej stronie mają ponad 6 lat. Nadal je udostępniam, ale prawdopodobnie nie odzwierciedlają one mojej aktualnej wiedzy ani przekonań.

Pages: > 1 ... 10 11 12 13 14 ... 24 >

# Moja praca mgr online

Tue
01
Jul 2008

Za pozwoleniem promotora udostępniam do pobrania moją pracę magisterską w formacie PDF: Architektura i implementacja silnika grafiki trójwymiarowej. Praca opisuje mój silnik graficzny The Final Quest. Zawiera przegląd literatury, opis architektury silnika (z jakch warstw, modułów, klas i pól się składa) oraz szczegóły implementacyjne (organizacja procesu renderowania, omówienie kodu shaderów, obliczenia animacji szkieletowej, realizacja efektów cząsteczkowych, format plików modeli i inne).

Jednym słowem, zbiera dużą część mojej wiedzy na tematy silnikologiczne, jaką miałem w czasie jej pisania. Ma 165 stron. Zawiera też obszerny spis literatury - ciekawych artykułów na konkretne tematy. Powinna być zrozumiała dla tych wszystkich, którzy znają już podstawy programowania, biblioteki graficznej 3D oraz shaderów.

Comments | #productions #rendering #engine #studies Share

# Metaballs

Sat
14
Jun 2008

Metaballe (inaczej bloby) to takie kulki, które zlewają się ze sobą. Matematycznie to są izopowierzchnie opisane odpowiednimi wzorami. Metod ich renderowania jest kilka. Można je wyliczać bezpośrednio przez jakiś ray-casting. Można je zamieniać z reprezentacji wokselowej na siatki trójkątów za pomocą Marching Cubes Algorithm. Do renderowania dużych ilości metaballi w czasie rzeczywistym ze wsparciem GPU wymyślono nawet technikę w Image Space.

Ja chciałem być sprytniejszy i wpadłem na pomysł, żeby renderować metaballe odkształcając siatkę kulki w kierunku drugiej kulki. Niestety nic z tego nie wyszło, bo nie udało mi się znaleźć wzoru, który by zapewnił ładne łączenie między kulkami.

Comments | #rendering #math Share

# Subsurface Scattering

Wed
11
Jun 2008

W ostatnich dniach pracowałem nad SSS - Subsurface Scattering. Zacząłem od artykułu Simon Green, "Real-Time Approximations to Subsurface Scattering" z książki "GPU Gems 1" (rozdz. 16). Metoda działa tak jak Shadow Mapping, tekstura przedstawia głębokość z punktu widzenia światła i z niej wyliczana jest w każdym miejscu grubość obiektu w kierunku źródła światła. Nie uzyskałem zadowalającego efektu. Model wygląda dziwnie i wyraźnie widać na nim "cień" od światła. Nie o to chodzi.

Wkurzony, wziąłem do ręki plastikowy przedmiot i obserwowałem go pod różnymi kątami padania światła, żeby opracować swój model SSS. Moja główna obserwacja polega na tym, że najważniejsza jest grubość modelu w kierunku patrzenia kamery, niezależnie od światła. Renderowanie głębokości z punktu widzenia przeciwnego do kamery dało dobry efekt, najlepszy jaki udało mi się uzyskać.

Ta metoda działa idealnie dla obiektów wypukłych, ale dla niewypukłych pod niektórymi kątami wyraźnie widać niestety geometrię z przeciwnej strony modelu.

Potem spróbowałem wyliczyć i zapisać w wierzchołkach grubość modelu w danym miejscu w kierunku zanegowanej normalnej. Efekt, jak można się spodziewać, jest daleki od oczekiwanego, bo pojedyncza grubość nie bierze pod uwagę kąta patrzenia kamery ani światła.

Wreszcie, spróbowałem wyliczać i zapisywać dla każdego wierzchołka po 3 grubości w 3 różnych kierunkach, zgodnie z "bazą Half-Life 2", której Valve użyło do Radiosity Normal Mapping. Gdyby się udało, to by mógł być epokowy wynalazek :) Ale się nie udało.

Comments | #rendering Share

# Oren-Nayar

Fri
06
Jun 2008

Trafiłem przypadkowo na hasło oświetlenia wg modelu Orena-Nayara i sobie go na szybko skodziłem z pomocą tego artykułu. Jest to model oświetlenia rozproszonego (Diffuse) uogólniający stosowane powszechnie prawo Lamberta na powierzchnie o współczynniku chropowatości 0..1. Nie chodzi o żadne mapowanie nierówności takie jak Normal Mapping, a raczej tylko o odpowiednie "spłaszczenie" funkcji liczącej oświetlenie. Fajnie to wygląda, ale niestety jest skomplikowane obliczeniowo. Dlatego wartoby poszukać jakiejś prostej aproksymacji tej funkcji albo zakodować ją w jakiejś teksturze przeglądowej.

Oren-Nayar

Comments | #rendering Share

# HDR i Glare

Fri
06
Jun 2008

Na czym to ja skończyłem... Miałem mapę i Deferred Shading, dopisałem HDR i miałem zrobić Tone Mapping. W ramach HDR akumuluję oświetlenie sceny kolejnymi światłami do Render Targeta o formacie zmiennoprzecinkowym. Już samo to znacznie poprawia kolorystykę sceny. Żeby było pełne HDR, wypada potem mierzyć średnią jasność sceny i zależnie od tego robić Tone Mapping. Nie udało mi się jednak znaleźć takiego wzoru, któryby dał ładny wygląd.

HDR, Glare

Kolejną rzeczą jest rozbłysk od źródeł światła. To nie jest żaden Bloom, tylko zwykłe quady zwrócone przodem do kamery, pokryte odpowiednią teksturą. One są rysowane z wyłączonym Z-buforem, ale tylko wtedy, kiedy liczony na CPU test kolizji promienia od kamery do światła nie wykaże żadnej przeszkody po drodze. Odpowiednią teksturę wyliczyłem na podstawie wzoru, który znam od Krzyśka K. i wrzuciłem ją też do pobrania:

Glare - tekstura narzędziowa

Comments | #rendering Share

# Ostatni artykuł - Zaawansowana kamera 3D

Thu
05
Jun 2008

Mój nowy artykuł nosi tytuł Zaawansowana kamera 3D. Jest bardzo długi i opisuje kilka zagadnień programistyczno-matematycznych dotyczących grafiki 3D: koncepcję kamery i jej implementację jako zestaw klas, rysowanie prostokątów zwróconych przodem do kamery (Billboard), w tym efektów cząsteczkowych, testowanie kolizji obiektów z polem widzenia kamery w celu nierysowania tego co niewidoczne (Frustum Culling) oraz testowanie kolizji promienia celem sprawdzania, który obiekt 3D gracz wskazał myszką (Picking). Dołączony kod zawiera spory kawałek mojej biblioteki matematycznej.

Na tym kończę maraton pisania artykułów i wracam do kodu :) Nie zrealizowałem nawet połowy z listy pomysłów na artykuły, ale myślę, że wybrałem te najlepsze.

Comments | #rendering #math #productions Share

# Praca magisterska o silniku 3D

Fri
30
May 2008

Wiem o istnieniu trzech prac dyplomowych poświęconych silnikowi 3D, jakie dotychczas były obronione w Polsce:

Wkrótce do tego grona dołączy moja praca magisterska:

Właśnie dotarłem do kolejnego kamienia milowego w jej przygotowaniu - praca została wydrukowana i oprawiona :)

Moja praca magisterska

Comments | #rendering #engine #studies Share

# Nowy artykuł - Preprocesor w shaderach HLSL

Thu
22
May 2008

W następnym artykule opisałem, jak używa się preprocesora w języku shaderów HLSL. Pisząc coś bardziej skomplikowanego niż pojedyncze efekty graficzne - np. silnik - na vertex shader i pixel shader trzeba czasem spojrzeć jak na zestaw ustawień, tak jak w starym dobrym Fixed Function Pipeline. Pojawia się taki problem, że każda kombinacja ustawień to powinien być osobny shader. W artykule przedstawiłem jedno z rozwiązań - kompilowanie kodu HLSL z użyciem proprocesora (#if itp.), z ustawieniami wpisanymi jako wartości makr. Zapraszam do lektury: Preprocesor w shaderach HLSL.

Comments | #rendering #productions #directx Share

Pages: > 1 ... 10 11 12 13 14 ... 24 >

[Download] [Dropbox] [pub] [Mirror] [Privacy policy]
Copyright © 2004-2026