Forum AmigaOne Zone

Forum użytkowników Amigi i nie tylko
Teraz jest piątek, 29 mar 2024, 14:06

Strefa czasowa: UTC + 1




Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: piątek, 16 cze 2017, 10:40 
Offline
Generał
Generał

Dołączył(a): poniedziałek, 16 sty 2012, 22:11
Posty: 1829
https://www.youtube.com/watch?v=TBlYk-_VlOA

--- Copy & Paste ---

Turbo Voxel Heightmap Raycaster:


This is my highly optimized voxel terrain raycaster engine for PPC Amigas running on a sam460ex with RadeonHD SI.
I'm still not 100% sure what type of game to use it for, so if you got any ideas, go on.

The "content" here in this tech-demo-video, namely the cockpit overlay and the terrain's height- and color-map, weren't drawn by me but were found on the web.
The tech-demo swallows any kind of maps / cockpits as long as the dimensions match and the bitmaps are provided as PNGs (with alpha-channel in case of the cockpit).

How comes I wrote this thing? Well, it somewhat fell into my lap ;)

A week ago some guy came to me with some ten-liner and asked me to optimize it so that it ran faster than less than 10 fps even on a X5000 (5 fps on my sam460). As it turned out he had found that code on some tutorial on the web.

It was a simple heightmap raycaster prototype. A very simple prototype actually. It lacked perspective stripe distortion compensation and also contained a bug that made you look somewhat to the left all the time, as if you moved forward with your head turned left a bit. And well, it was for a tutorial, so it was of course slow as hell but as trivial and short as it can be.

Alright, so I spent some hours to speed it up by about factor 2 to 3 so that it ultimately ran at about 15 fps or so on my sam460. I did so by replacing float by fixpoints, compacting and merging the height- and color-maps, optimizing the fog's color-mixer and some other things. For additional performance I also made a HiColor 16 bit variant because as we all know, uploading a fresh frame of pixels can become a bottleneck on Amigas.

So the guy was happy and since he planned to use a rather small visible area and only wanted to target higher end Amigas it was more than good enough for him. And I was happy to be credited for coding the heart of yet another game :)

However, I thought that it should be possible to make it even faster by doing some not so trivial optimizations. Some hours later the first turbo was working: from 15 fps to up to around 35. Some more hours later I was where I'm now, at up to 60 fps with visible area almost covering the whole window at 1280 x 960. Without any quality loss. Actually the contrary, because the persptive correction is correct now too ;) And all the engine's parameters can be modified during runtime instead of using hard-coded constants.

Anyway, those really manly optimizations and the final result I'll keep for myself ;)

Btw.: on an X5000 SI it runs at 110 to 130 fps.
And it has been reported to run smoothly on a Peg with a Radeon 9250 :)

Fun fact: a raycaster was pretty much my very first C(++) program. Back in 1996, right before studies, during a practicum in the robotics lab at the GMD (now Fraunhofer), I was told to write a small simulator for one of those robots. And it had to be C(++) which I didn't know at that time, so it was a crash course in that language resulting also in a raycaster (Wolfenstein-style without texturing though) to simulate and visualize the sonar sensors' input.
Loop closed ;)

--- End ---


Udostępnij dla FacebookUdostępnij dla Twitter
Góra
 Zobacz profil  
Cytuj  
PostNapisane: piątek, 16 cze 2017, 11:37 
Offline
Znamienity forumowicz
Znamienity forumowicz
Avatar użytkownika

Dołączył(a): wtorek, 17 sty 2012, 12:28
Posty: 1186
Kiepsko to wygląda. Przypomina Comanche na pierwszych Pentium (486 był ciut słaby do niego).
Tu mamy procesor 1 GHz, Radeon HD 7700 i 2 GB RAM. I 50 fps w porywach przy takiej niskiej rozdzielczości terenu, i do tego w oknie. To jest jakiś dramat a nie powód do dumy.
Uprzedzając ewentualną napaść na mnie za wyrażenie niezależnej opinii ;) - nie będę szukał żadnych linków z Comanche. I tak, oglądałem filmik w 1080p i 60 fps.
Pod filmem widzę "highly optimized"... słaby żart :(

_________________
AmigaOne 500 (AMCC 460ex 1150 MHz), 2 GB RAM, Radeon 7750 (1GB, DDR5), karta dźwiękowa Envy24HT


Góra
 Zobacz profil  
Cytuj  
PostNapisane: piątek, 16 cze 2017, 11:45 
Offline
Generał
Generał

Dołączył(a): poniedziałek, 16 sty 2012, 22:11
Posty: 1829
adam napisał(a):
Kiepsko to wygląda. Przypomina Comanche na pierwszych Pentium (486 był ciut słaby do niego).
Tu mamy procesor 1 GHz, Radeon HD 7700 i 2 GB RAM. I 50 fps w porywach przy takiej niskiej rozdzielczości terenu, i do tego w oknie. To jest jakiś dramat a nie powód do dumy.
Uprzedzając ewentualną napaść na mnie za wyrażenie niezależnej opinii ;) - nie będę szukał żadnych linków z Comanche. I tak, oglądałem filmik w 1080p i 60 fps.
Pod filmem widzę "highly optimized"... słaby żart :(


Daniel został poproszony o zoptymalizowanie "obcego kodu comanche" który oferował 2 klatki.
Dzięki swojej wiedzy udało mu się wyciągnąć 130 klatek i tyle w temacie.

A jak powstanie "amigowy Comanche" to będę się bardzo cieszył i chętnie kupię.


Góra
 Zobacz profil  
Cytuj  
PostNapisane: piątek, 16 cze 2017, 12:00 
Offline
Znamienity forumowicz
Znamienity forumowicz
Avatar użytkownika

Dołączył(a): wtorek, 17 sty 2012, 12:28
Posty: 1186
Cytuj:
Dzięki swojej wiedzy udało mu się wyciągnąć 130 klatek i tyle w temacie.

Nie, to nie jest "tyle w temacie". Jest to kunszt wyciągnąć tyle klatek, ale to nie jest koniec tematu. Chyba że tak, no to faktycznie ta gra jeśli wogóle wyjdzie będzie dla nikogo. Sztuka dla sztuki, doskonalenie wartszatu programisty, dla graczy - bardzo niska wartość.

W międzyczasie patrzyłem na YouTube za filmikami - większość była w 240p i spod DosBox-a, a te lepsze - widać było niską rozdziałkę kokpitu. Z tym że ja odnosiłem się do terenu, bo to mnie raziło.
Żeby sprecyzować swoje oczekiwania - pokażę bodaj ostatni Comanche 4 z 2001 roku - myślę że "fory" dla amigi prawie szesnastoletnie powinne wystarczyć.


Oczywiście super że dzielisz się ploteczkami i nowościami. Ale realnie to co podałem w filmiku - to powinien być taki poziom.

_________________
AmigaOne 500 (AMCC 460ex 1150 MHz), 2 GB RAM, Radeon 7750 (1GB, DDR5), karta dźwiękowa Envy24HT


Góra
 Zobacz profil  
Cytuj  
PostNapisane: piątek, 16 cze 2017, 14:19 
Offline
Generał
Generał

Dołączył(a): poniedziałek, 16 sty 2012, 22:11
Posty: 1829
adam napisał(a):
... Ale realnie to co podałem w filmiku - to powinien być taki poziom.


Nie mogę doprosić się update Heretica II dla RadeonaHD a Ty wymagasz komercyjnego Comancha w wersji 4.
Źródła zapewne nie są dostępne więc nici z tego :(


Góra
 Zobacz profil  
Cytuj  
PostNapisane: piątek, 16 cze 2017, 15:52 
Offline
Generał
Generał

Dołączył(a): poniedziałek, 16 sty 2012, 22:11
Posty: 1829
adam napisał(a):
... Ale realnie to co podałem w filmiku - to powinien być taki poziom.


Nie mogę doprosić się update Heretica II dla RadeonaHD a Ty wymagasz komercyjnego Comancha w wersji 4.
Źródła zapewne nie są dostępne więc nici z tego :([/quote]

PS.
Jest taka posucha w oprogramowaniu, że cieszy mnie cokolwiek co wykorzysta na X1000 i RaedeonHD.

Niestety aplikacji pisanych w Hollywood jakoś nie mogę strawić.
Natomiast bardzo podoba mi się to co robi Entwickler-X - wszytko ładnie napisane, systemowo z osobnym launcherem do wyboru rozdzielczości.


Góra
 Zobacz profil  
Cytuj  
PostNapisane: piątek, 16 cze 2017, 16:53 
Offline
Doborowy forumowicz
Doborowy forumowicz

Dołączył(a): wtorek, 17 sty 2012, 17:21
Posty: 934
To wygląda, tak jak ma wyglądać.
Pisze przecież Voxel Heightmap Raycaster.
Programista zrobił coś co chciał zrobić dwadzieścia lat temu, ale się nie dało.
Nie dało się z oczywistej przyczyny AGA była zbyt wolna.
Wyszło super.
Jak to wygląda na klasyku, na copperscreenie można zobaczyć w Magazynie Amiga.
Miklesz opisywał w jednym ze swoich artykułów jak zrobić ten efekt.
Comanche 4 to inny algorytm i zupełnia inna gra.


Góra
 Zobacz profil  
Cytuj  
PostNapisane: piątek, 16 cze 2017, 18:17 
Offline
Znamienity forumowicz
Znamienity forumowicz
Avatar użytkownika

Dołączył(a): wtorek, 17 sty 2012, 12:28
Posty: 1186
amig_os napisał(a):
Nie mogę doprosić się update Heretica II dla RadeonaHD a Ty wymagasz komercyjnego Comancha w wersji 4.
Źródła zapewne nie są dostępne więc nici z tego :(

Nie wymagam komercyjnego Comanche, pokazałem co jest realne do osiągnięcia - mieć po sportowaniu. To są stare rzeczy i nasze komputery to pociągną. Chodziło mi o poziom.
Comanche 4 był przykładem bo pokazałeś grę opartą o voxele a z tego właśnie Comanche jest znany. Najwięcej ciupałem w "Overkill", w "czwórkę" nie grałem.
Ten filmik który zapoczątkował wątek - przykro mi ale nie widzę w tym potencjału.

Jest bardzo dużo rzeczy fajnych które będziemy mieć - ale pewnie porty. A co do gier ze źródeł - jest tego dużo. Wiele smakowitości które wcześniej czy później Huno PPC nam poda.

Cytuj:
Niestety aplikacji pisanych w Hollywood jakoś nie mogę strawić.

Może nie tyle Hollywood co Designerze. On jest dobry do wyklikania interfejsu programu, ale jak chcieć zrobić w tym całą aplikację to będzie troszkę toporne. Wiem o co ci chodzi. Ale to właśnie Hollywood jest tym programem który ma szanse być takim współczesnym AMOS-em, czyli umożliwić programowanie każdemu.
Cytuj:
Natomiast bardzo podoba mi się to co robi Entwickler-X - wszytko ładnie napisane, systemowo z osobnym launcherem do wyboru rozdzielczości.

Tak, pełna zgoda. To jest poziom profesjonalisty.

_________________
AmigaOne 500 (AMCC 460ex 1150 MHz), 2 GB RAM, Radeon 7750 (1GB, DDR5), karta dźwiękowa Envy24HT


Góra
 Zobacz profil  
Cytuj  
PostNapisane: piątek, 16 cze 2017, 22:28 
Offline
Elitarny forumowicz
Elitarny forumowicz
Avatar użytkownika

Dołączył(a): piątek, 20 sty 2012, 22:31
Posty: 617
Czepiasz się Adam. Jak jeden człowiek może zrobić silnik i grę, która będzie wstanie konkurować
z komercyjnym programem, nawet jeśli jest z przed kilkunastu lat? To co on zrobił jest ważne
bo na naszym sprzęcie trzeba optymalizować co się da, bo nie wyskoczysz za róg i nie kupisz nowej
płyty z nowym prockiem. Dlatego powinni wyciskać co się z tego co mamy. A że to wygląda jak wygląda
to inna sprawa.

_________________
AmigaOne X5000/020, Sapphire Radeon R9 270X Toxic, 2GB RAM.
Amiga1200/060 32MB RAM
Obrazek


Góra
 Zobacz profil  
Cytuj  
PostNapisane: piątek, 16 cze 2017, 23:36 
Offline
Znamienity forumowicz
Znamienity forumowicz
Avatar użytkownika

Dołączył(a): wtorek, 17 sty 2012, 12:28
Posty: 1186
Przeczytaj drugie swoje zdanie (Jak..). No właśnie. To nie ma ani potencjału ani szans.
Ja się nie czepiam faceta, ja zwyczajnie nie widzę sensu żeby rzeźbić w tym czymś. To masz po optymalizacji, a gdzie reszta gry? Za bardzo mi to przypomina z jednej strony podziemia Crisota, z drugiej tę strzelankę od Cheerly Darling.

_________________
AmigaOne 500 (AMCC 460ex 1150 MHz), 2 GB RAM, Radeon 7750 (1GB, DDR5), karta dźwiękowa Envy24HT


Góra
 Zobacz profil  
Cytuj  
PostNapisane: sobota, 17 cze 2017, 17:40 
Offline
Aktywny forumowicz
Aktywny forumowicz
Avatar użytkownika

Dołączył(a): piątek, 7 lut 2014, 20:09
Posty: 224
Lokalizacja: Katowice
Ale optymalizacja starego Engine, to nie to samo co napisanie nowego. Zresztą to mi wygląda na grafikę fraktalową terenu, tego chyba nie wspomaga żadna grafika ? Nie wiem czy to nie ślepy kierunek, może lepiej zostać przy wektorach w których można wykorzystać moc grafiki.

_________________
Niepoprawny Optymista


Góra
 Zobacz profil  
Cytuj  
PostNapisane: poniedziałek, 19 cze 2017, 10:17 
Offline
Generał
Generał

Dołączył(a): poniedziałek, 16 sty 2012, 22:11
Posty: 1829
Wszystko jasne :)

Więcej informacji odnośnie Comanche dla AmigaOS4 w nowym wątku:

gry-f6/amigatec-i-comanche-over-the-top-t1030.html


Góra
 Zobacz profil  
Cytuj  
PostNapisane: poniedziałek, 19 cze 2017, 11:00 
Offline
Doborowy forumowicz
Doborowy forumowicz
Avatar użytkownika

Dołączył(a): wtorek, 17 sty 2012, 15:11
Posty: 913
Na pewno ruch kamery do poprawy, bo idzie zbyt jednostajnie.

_________________
Amiga Rulez / YouTube

Interes życia https://www.youtube.com/watch?v=EUkYy2YItvo


Góra
 Zobacz profil  
Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 20 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Powered by phpBB® Forum Software © phpBB Group
Przyjazne użytkownikom polskie wsparcie phpBB3 - phpBB3.PL
phpBB SEO