Entries for tag "rendering", ordered from most recent. Entry count: 187.
# Wydajność wczytywania tekstur w Direct3D 9
Mon
04
Feb 2008
Wydajność wczytywania tekstur w Direct3D 9 - Eksperyment - to mój nowy artykuł. Zapraszam do przeglądania. Powstał w wyniku prostego eksperymentu, jaki przeprowadziłem, żeby zbadać wydajność wczytywania tekstur przez Direct3D 9 z różnych formatów graficznych.
To część większego tematu, którym ostatnio się zainteresowałem - problemu wydajności wczytywania gry. Temat ten jest powiązany także ze stosowaniem kompresji w VFS, odpowiednią metodą realizowania wejścia-wyjścia (zobacz np. [To]), przygotowaniem wszelkich danych od razu w formacie docelowym (aby nie trzeba było niczego konwertować ani parsować podczas ładowania), czy nawet bezpośrednią serializacją danych binarnych do pamięci, łącznie z siecią obiektów powiązanych wskaźnkami (zobacz np. [To] i [To] albo cokolwiek na temat serializacji).
Zadałem też pytanie na forum.gamedev.pl, a cennych odpowiedzi udzielili mi m.in. ludzie z firmy CD Projekt :D
Comments | #productions #directx #rendering Share
# Koszmar DrawIndexedPrimitive
Sat
02
Feb 2008
Dzisiaj postanowiłem zwrócić waszą uwagę na pewną sprawę w interfejsie DirectX, która dla zaawansowanych jest oczywista, a początkującym może sprawić nie lada problem. Mnie długo zajęło zrozumienie, co dokładnie oznaczają parametry liczbowe funkcji:
HRESULT SetStreamSource( UINT StreamNumber, IDirect3DVertexBuffer9 * pStreamData, UINT OffsetInBytes, UINT Stride ); HRESULT DrawIndexedPrimitive( D3DPRIMITIVETYPE Type, INT BaseVertexIndex, UINT MinIndex, UINT NumVertices, UINT StartIndex, UINT PrimitiveCount );
Warto zgłębić ten temat, by uniknąć potem wrednych błędów (na czele z klasycznym "Nic nie widać" :) Pisząc w największym skrócie:
Comments | #directx #rendering Share
# DirectX 10 jest fajny
Wed
09
Jan 2008
Zająłem się ostatnio Direct3D 10 i bardzo mi się podoba. API jest piękne, a karta GeForce 8800 GT ma ogromną moc obliczeniową. Zrzucenie balastu wstecznej kompatybilności zawsze wychodzi na dobre. Szkoda tylko, że wymaga tak nowoczesnego sprzętu i co gorsza, Windowsa Vista. Moje pierwsze eksperymenty:
A to jest 750000 wierzchołków na klatkę generowane w pełni na GPU (bez żadnego bufora, tekstury czy innych danych podawanych do shadera), z użyciem instancingu i obliczeń na liczbach całkowitych:
Comments | #rendering #directx Share
# TFQ7 src - update 01
Mon
07
Jan 2008
Udostępniając kod źródłowy mojego silnika - The Final Quest - nie zauważyłem, że do dokumentacji trafił opis starego shadera z poprzedniej wersji. Specyfikacja tego aktualnego pozostała w nieudostęnionym katalogu z projektami. Chyba nikt tego nie zauważył :) ale i tak przepakowałem archiwum. Można już pobrać plik TFQ7_1-1_src_update_01.zip (1007.67 KB). Dokumentację shadera głównego znajdziecie w pliku doc\Engine\MainShader.txt.
Comments | #productions #engine #rendering Share
# The Final Quest 7 - Kod źródłowy na GNU GPL
Fri
28
Dec 2007
Oto spóźniony prezent świąteczny - upubliczniam kod źródłowy mojego silnika na licencji GNU GPL. Nic mi przecież od tego nie ubędzie :)
To nie jest kompletny kod i nie skompiluje się tak po prostu, ale są tam prawie wszystkie klasy silnika, a także źródło i binarka konsolowego narzędzia do przetwarzania tekstur, map i modeli, pełna dokumentacja wszystkich formatów plików i inne rzeczy.
Mam nadzieję, że nikt nie będzie używał tego kodu nielegalnie w zamkniętej produkcji ani tym bardziej twierdził, że sam jest jego autorem. Tym nie mniej nie pogniewam się, jeśli ktoś "pożyczy" sobie z niego jakieś drobne funkcje albo podpadtrzy jakieś sprytne rozwiązania. Chociaż tyle będzie z niego pożytku :)
Pobierz plik: TFQ7_1-1_src.zip (1005.78 KB)
Pełna lista tego co zawiera pakiet: TUTAJ
Comments | #productions #rendering #engine Share
# Komórki, J2ME, M3G
Tue
25
Dec 2007
Dobra, poddaję się. Nie chce mi się już zajmować programowaniem na komórki. To jest fajne, ale mam też inne rzeczy w planach. Poznałem MIDP 2.0 i M3G dość dokładnie, zwłaszcza od strony teoretycznej. W praktyce dobił mnie problem z siatką o aktualizowanej dynamicznie geometrii (początkowo ma wszystkie wierzchołki w (0,0,0)), która na emulatorze działa dobrze, a na moim telefonie znika, kiedy tylko punkt (0,0,0) przestaje być w polu widzenia.
Z tego mojego "zajmowania się" pozostaną dwie pożyteczne rzeczy. Pierwsza to CapsViewer - mały midlet do pokazywania możliwości sprzętowych telefonu, na którym działa (parametry wyświetlacza, ilość pamięci, możliwości grafiki 3D itd.).
Druga to diagramy klas, który pomogły mi wyobrazić sobie organizację API M3G. Ta biblioteka jest przemyślana, przyjemna, obiektowa i wysokopoziomowa, ale co za tym idzie składa się z bardzo wielu drobnych, powiązanych ze sobą klas. Może komuś kiedyś przydadzą się te diagramy...
Comments | #rendering #java #mobile Share
# Nauka M3G
Fri
21
Dec 2007
Uczę się ostatnio M3G (Mobile 3D Graphics API). To jest biblioteka do mobilnej grafiki 3D wspierana przez niektóre komórki. Oprócz możliwości rysowania wprost oteksturowanych trójkątów posiada również API wysokopoziomowe z grafem sceny zawierającym siatki, kamery i światła. Wspiera animację na klatkach kluczowych oraz szkieletową. Ogólnie jest bardzo przyjemna.
Ma własny format pliku potrafiący przechowywać cały graf sceny wraz z teksturami. Długo szukałem sposobu na wyeksportowanie do niego czegoś z Blendera. Byłem nawet gotów napisać własny eksporter. Na szczęście dzisiaj po rozmowie na IRC-u z ludźmi z kanału #blendercoders przejrzałem źródło istniejącego eksportera M3G do Blendera i udało mi się go wreszcie nakłonić do prawidłowego działania. Tajemnicą nakłonienia go do eksportowania koordynatów tekstur jest, jak się okazuje, zaznaczenie w ustawieniach materiału niepozornego przycisku TexFace.
Co do samego midletu, na razie napisałem tyle :)

Comments | #rendering #java #mobile Share
# Bloom jest wszędzie
Mon
17
Dec 2007
Efekt zwany Bloom jest wszędzie, nie tylko w nowoczesnych grach komputerowych. Ostatnio widziałem go nawet na tle jakiejś prezentacji PowerPoint. Nic dziwnego - jest fajny, bo pozwala pokazać, że coś jest "jaśniejsze niż białe". To trochę rekompensuje wąski zakres jasności możliwy do odwzorowania na monitorze w porównaniu z zakresem, jaki widzimy w realnym świecie (HDR). Tak jak w tym moim prostym eksperymencie:
