Bufor Z

Szukasz drobnej pomocy przy kodowaniu, albo chcesz przedstawić światu swoją gotową lub w trakcie realizacji produkcję? To właściwy dział.
Wiadomość
Autor
Jacek31
Posty: 230
Rejestracja: 02 maja 2009, 21:33

#21 Post autor: Jacek31 »

Zielok tu masz krótki opis pierwszej gry 3D na PC. Oczywiście C64 by brakło trochę sprzętowo (za słabe CPU i za mało RAMu), ale sama idea może być ciekawa, i jakieś proste demo podobne do labiryntu rodem z WIN95 by się dało na tym sklecić. Co do eliminacji niewidocznych ścian to mam jeszcze książkę "Grafika Mikrokomputerowa" gdzie tez jest dział o grafice 3D w BASIC, oczywiście na PC, ale programy są na tyle proste że może i na C64 dało by się to przenieść :?:.
Załączniki
Krótki opis silnika wolfenstein.
Krótki opis silnika wolfenstein.
Silnik Wolfa.jpg (255.48 KiB) Przejrzano 10198 razy
A szóstego dnia Bóg stworzył człowieka ... Aby mógł się napić.

Awatar użytkownika
Raf
Posty: 584
Rejestracja: 14 wrz 2008, 23:30
Grupa: Vulture Design

#22 Post autor: Raf »

zaimplementowalem raycasting w C na PC... po czym upraszczalem i tabelaryzowalem pod katem c64.. niestety na C64 po przekompilowaniu na CC65 nie dzialalo to jak nalezy... ;) a na asm mi sie przepisywac nie chcialo z palca ;P

Awatar użytkownika
Nitro
Posty: 1551
Rejestracja: 03 wrz 2008, 20:23
Grupa: Black Sun

#23 Post autor: Nitro »

One-Der, Living, Void - Wolfenstein jest do zrobienia na C64 i to w przyzwoitej jakości.

Awatar użytkownika
Raf
Posty: 584
Rejestracja: 14 wrz 2008, 23:30
Grupa: Vulture Design

#24 Post autor: Raf »

MOOD ;)

co nie zmienia faktu ze raycasting a tradycyjny bufor Z to dwie rozne historie.

Awatar użytkownika
Stg
Posty: 84
Rejestracja: 13 gru 2008, 22:09
Grupa: Albion Crew

#25 Post autor: Stg »

Wolfenstein to raczej takie 2.5D Doom zresztą też ( 2D + BSP ) jeden i drugi engine nie miał nic wspólnego z Z Bufferem.

Podstawowa różnica jest taka, że przy Z Bufferze można rysować wszystkie wielokąty na scenie jak leci procedura rasteryzująca trójkąt porównuje aktualne 'Z' z 'Z' w buforze i jeśli większe to stawia pixel jeśli nie to przechodzi do kolejnego pixela.

W Ray Casting'u po prostu liczymy przecięcie z najblizszą ścianą, a ponieważ ściany są w 2D kwadratowymi klockami ( Wolfenstein ) to obliczenia są szybkie ( w Doomie o ile pamiętam ściany mogą być dowolnie rozmieszczone na płaszczyźnie i przy określeniu tego co widoczne pomaga przeliczone BSP )

Na C64 klasyzny Z Buffer byłby problematyczny ze względu na pamięć. Teoretycznie pewnie dałoby się to obejść renderując screen fragmentami ale to by pewnie zabiło wydajność.

Gdybym miał zrobić coś jak efekty w Applause poszedł bym raczej w ScanLine.


Wackee:
jeśli o mnie chodzi to prosiemy o wykonanie telefonu do Browara, fajnie byłoby się dowiedzieć czego użył w Applause.
Stg/Albion Crew

Awatar użytkownika
Nitro
Posty: 1551
Rejestracja: 03 wrz 2008, 20:23
Grupa: Black Sun

#26 Post autor: Nitro »

Są i techniki mniej dokładne od Z-Buffera, za to szybsze, pamiętam jak na Riverwash rozmawiałem o jednej ze znanym amigowskim koderem kierownikiem, niestety z powodu intoksykacji napojami wyskokowymi nic nie pamiętam, nawet nazwy :)

k.

#27 Post autor: k. »

polecam wkręcenie się w stan tożsamy z upojeniem, pamięć wróci i wszyscy happy ;)

Jacek31
Posty: 230
Rejestracja: 02 maja 2009, 21:33

#28 Post autor: Jacek31 »

Hm.. niby dla czego Wolf to nie jest prawdziwe 3D :?: To ze gra jest prymitywna, tego nie zmienia, mamy tu transformacje w 3 wymiarach, jest przecież perspektywa i głębia. A że nie ma tu Z-bufora, no cóż autorzy tej gry też musieli sobie jakos poradzić z niedomaganiami uwczesnych PC. A tak na marginesie to jest fragment artykułu jak zrobić Wolfa na ARMie który ma 96KB RAM i 512KB ROM. Ale tam jest dość mocy obliczeniowej aby w locie dekompresować tekstury z LZW, no i sprzętowe DMA. Z drugiej strony fajnie by było przeniść Wolfa na komode, to by było coś.
A szóstego dnia Bóg stworzył człowieka ... Aby mógł się napić.

Awatar użytkownika
Stg
Posty: 84
Rejestracja: 13 gru 2008, 22:09
Grupa: Albion Crew

#29 Post autor: Stg »

Zależy jak na to patrzeć, moim zdaniem Wolf nie jest w pełni 3D bo engine nie pozwala na patrzenie w dowolną stronę pod dowolnym kątem, nie jest też dlatego, że w grze 3D świat gry definuje się również w 3D, a w przypadku Wolfów i Doomów świat gry definuje się w 2D.
Stg/Albion Crew

Awatar użytkownika
Raf
Posty: 584
Rejestracja: 14 wrz 2008, 23:30
Grupa: Vulture Design

#30 Post autor: Raf »

wolf nie jest prawidziwie 3d przede wszystkim z tego wzgledu, ze sciany sa zawsze "proste" oraz nie moze byc pomieszczenia nad pomieszczeniem. W Doomie sa wprawdzie sposoby zeby to obejsc z jakimis modowanymi silnikami, ale nei zmiena to faktu ze jest to niemozliwe "by design".

Podobnie jest w silniku Build stosowowanym m.in. w Duke Nukem 3d, blood, Shadow Warrior, Blake Stone... cos by sie na pewno jeszcze znalazlo ;) Silnik ten ogolnie dziala tak jak silnik dooma, tyle ze jakimis dzikimi metodami sciany moga byc ukosne oraz jest zaimplementowana w nowszych wersjach silnika iluzja room over room.
co do wolfa na c64 - > jest MOOD jak napisalem wyzej.
na stock maszynie wiecej sie nie wyciagnie, ale na ubieglorocznym forever widzialem klon wolfa na zmodowanego spectruma - wydajnoscl epsza nzi na c64, rozdizlczosc wyzsza.. ale tylko 2 kolory jesli dobrze pamietam - niech mnie ktos poprawi jesli klame ;)

ah te czasy kiedy po nocach robilem mapy do dooma ... lezka sie sie w oku kreci ;)

Awatar użytkownika
Nitro
Posty: 1551
Rejestracja: 03 wrz 2008, 20:23
Grupa: Black Sun

#31 Post autor: Nitro »

Build engine to nie jest raycaster tylko portal engine, Andropolis udowadnia, że można to i u nas zrobić, tylko bez teksturowania, które bez użycia ray castingu jest cholernie kosztowne.
Co do wolfów na Spectrumie, to mają ich troche:
http://www.youtube.com/watch?v=vzm9KkJ5lGI
http://www.youtube.com/watch?v=3v7cFGneuaw
http://www.youtube.com/watch?v=2rWooGqqQ5w
Ostatnio zmieniony 07 lut 2010, 12:33 przez Nitro, łącznie zmieniany 1 raz.

Awatar użytkownika
Raf
Posty: 584
Rejestracja: 14 wrz 2008, 23:30
Grupa: Vulture Design

#32 Post autor: Raf »

Nitro pisze:Build engine to nie jest raycaster tylko portal engine, Andropolis udowadnia, że można to i u nas zrobić, tylko bez teksturowania, które bez użycia ray castingu jest cholernie kosztowne.
nikt nie napisal chyba ze build to raycaster?

posilkujac sie tym : http://en.wikibooks.org/wiki/Build_a_3D ... _anyway.3F

moge przyznac ze moze sie to nazywac portalowy silnik czy jak kto tam chce, co nie zmienia faktu, ze i w doomie i w build idea jest taka sama - drzewa bsp, sectory, ale finalny rendering odbywa sie poprzez raycasting (przynajmniej w doomie jest to na 100% raycasting poszczegolnych sectorow).

swoja droga w Atarowskim "Numenie" zaprezentowano silnik bazowany na build.

tak przy okazji:
http://en.wikipedia.org/wiki/Build_engine
http://en.wikipedia.org/wiki/Doom_engine

Awatar użytkownika
Nitro
Posty: 1551
Rejestracja: 03 wrz 2008, 20:23
Grupa: Black Sun

#33 Post autor: Nitro »

Może źle Cię zrozumiałem, wracając do meritum sprawy Doom i Build mimo może dla niektórych podobnego wyglądu gier to dwie odrębne technologie, Doom używa spasionego ray castingu, Build to portal engine, ta technika jest wydajniejsza od Dooma dzięki czemu mamy Numen'a i Andropolis, oba silniki bez tekstur.

Jacek31
Posty: 230
Rejestracja: 02 maja 2009, 21:33

#34 Post autor: Jacek31 »

A widzieliście Pixel Shader na Zx Spectrum. Masakra.
http://www.youtube.com/watch?v=yTmmnb3K ... re=related
Ale na naszego Comcia też jest parę perełek:
http://www.youtube.com/watch?v=yRdW1FYR-a4
http://www.youtube.com/watch?v=hY7jYnW2 ... re=related
A szóstego dnia Bóg stworzył człowieka ... Aby mógł się napić.

Awatar użytkownika
Nitro
Posty: 1551
Rejestracja: 03 wrz 2008, 20:23
Grupa: Black Sun

#35 Post autor: Nitro »

A widzieliście Pixel Shader na Zx Spectrum. Masakra.
http://www.youtube.com/watch?v=yTmmnb3K ... re=related
Nie rozumiem jak można być tak mądrym, żeby pisać color clash na współczesne komputery..

Awatar użytkownika
wegi
Posty: 839
Rejestracja: 14 lip 2009, 01:17

#36 Post autor: wegi »

W Legoland 3 jest part nazwany Z-Clipper

http://noname.c64.org/csdb/release/?id=11664

Awatar użytkownika
Nitro
Posty: 1551
Rejestracja: 03 wrz 2008, 20:23
Grupa: Black Sun

#37 Post autor: Nitro »

O ile się nie myle, to nie ma to nic wspólnego z z buforem, jak sama nazwa wskazuje jest to z clipping, przycinanie wierzchołków, mniejszych/większych niż tam wybrane z.

ODPOWIEDZ