#mojeraycastingowezabawy #programowanie #programista15k #grafika3d #gamedev #raytracing #raycasting #retrogaming #kodowanie #jezykc #cpp

CZĘŚĆ 10.
Ostatnio pracowałem bardziej nad frameworkiem całości. Stworzyłem taki szkielet pod engine i gameplay i wszystkie biblioteki przepisałem stricto pod język C. Jak kiedyś wspomniałem, chcę zobaczyć jak coś takiego będzie chodzić na Amidze z RTG, mam tu na myśli głownie te nowe karty V1200 albo Warp1260. Więc uporządkowanie kodu pod C będzie pomocne, bo będę cross-compilować w gcc 6.2.
ZawzietyRobaczek - #mojeraycastingowezabawy #programowanie #programista15k #grafika3d...
#mojeraycastingowezabawy #programowanie #programista15k #grafika3d #gamedev #raytracing #raycasting #retrogaming

CZĘŚĆ 9.

Czołem, ostatnio pracowałem nad samym edytorem do Raycastera, taż żeby łatwiej zarządzać mapką, bo pojawiają się nowe elementy. Na razie dorzuciłem te elementy, które mam ogarnięte w samym silniku, czyli:
- pozycja i orientacja gracza
- ściany (standardowa 1 tex, standardowa 4 tex, dowolna cienka ściana, dowolny rozmiar 1 tex, dowolny rozmiar 4 tex)
- podłogi i sufity

Chce potem dołożyć jeszcze
ZawzietyRobaczek - #mojeraycastingowezabawy #programowanie #programista15k #grafika3d...
#mojeraycastingowezabawy #programowanie #programowanie15k #gamedev

CZĘŚĆ 8.

Próbuje zrobić edytorek do raycastera, w między czasie robiłęm pare testów i udało mise zrobić cienką ścianę, która nie musi zajmować całego kwadracika, ukośną ścianę i ścianą ala drzwi.. wiec pomyślałem, że dobrym krokiem bedzie treaz robienie edytorka z jakimis podstawowymi funkcjami, moj raycaster ma juz teraz znacznie wiecej mozliwosci niż wolf3d wiec i edytor musi troche inaczej działać,
(jak zwykle edytorek robiony w suchym winapi)
ZawzietyRobaczek - #mojeraycastingowezabawy #programowanie #programowanie15k #gamedev...

źródło: comment_1608629724N8IlufeTeTchJcq2Z2Vl2e.jpg

Pobierz
#mojeraycastingowezabawy #programowanie #programista15k #gamedev #raytracing #raycasting
CZĘŚĆ 7.
Czołem, kolejna zabawa z raycasterem. Dorzuciłem "ruszanie głową" i wysokością gracza. Pierwszy będzie służył oczywiście do rozglądania się, a drugi można wykorzystać do skakania lub bujania góra/doł podczas chodzenia. W załączonym filmiku porównanie obu ruchów + oba ruchy połączone do uzyskania efektu jakby latania.

Niestety, optymalizacja z zeszłego wpisu, gdzie miałem pętlę równą tylko połowy wysokości ekranu za pomocą której mogłem rysować od razu
ZawzietyRobaczek - #mojeraycastingowezabawy #programowanie #programista15k #gamedev #...
#mojeraycastingowezabawy #programowanie #programista15k #gamedev #raytracing #raycasting
CZĘŚĆ 6.
Czołem, kolejna zabawa z raycasterem. Nowy algorytm texturowania podłogi. Nieporównywalnie szybszy wiec wszystko działa jak przedtem. Tym razem renderujemy podłogą linia po linii. Oblicza się dwie skrajne wartości punktów przecięcia z podłogą i interpoluje. Żeby teksturować sufit nie trzeba nic nowego liczyć tylko korzysta się z tych samych obliczeń tylko pixele ustawia się na gorze zamiast na dole, co znaczeni przyśpiesza wszytko. Nie wiem
ZawzietyRobaczek - #mojeraycastingowezabawy #programowanie #programista15k #gamedev #...
#mojeraycastingowezabawy #programowanie #programista15k #gamedev #raytracing
Czołem, kolejna zabawa z raycasterem. Pracuje nad texturowaniem podłogi, niestety na razie straszcie zwolniło :-/
ale tu CIEKAWOSTKA, która mi się pojawiła sama (na zasadzie niby błędu).. Multiplikując podłogę intensywnością która obliczyłam z obległosci od ściany otrzymałem jakby... Raytracing podłogi xD coś jakby ściany się idealnie odbijały w podłodze, całkiem spoko efekt.

Troche mnie martwi to wolne teksturowanie podłogi, a właściwie nie tyle teksturowanie co obliczenia robiące
ZawzietyRobaczek - #mojeraycastingowezabawy #programowanie #programista15k #gamedev #...
@robcioo1994: po różnych źródłach, są różne podejścia do niektorych aspektów, np. algorytm szukania scian lub sposób texturowania podłogi, co wpływa na wydajnosć, mi zależy na jak najlepszej wydajnosci przy czym mam tu na mysli właśnie wydajniesze algorytmy + zoptymalizowany kod..
- Taki najcześciej cytowany jest ten 4 cześciowy materiał: https://lodev.org/cgtutor/
- Ten też dobry, ale troche inne podejscie chyba troche mniej wydajne: https://permadi.com/1996/05/ray-casting-tutorial-table-of-contents/
- inne rzeczy to np. szukałem wydajnego algorytmu
#mojeraycastingowezabawy #programowanie #programista15k #gamedev Czołem, kolejna zabawa z raycasterem. Dorzuciłem sterowanie myszką i poprawiłem babole związane z texturowaniem.

Całość robię sobie w WinApi, używam tylko prostych funkcji rysowania do minimapki, a widok z FPS to juz tylko operacje na buforze RGB i wywalanie go na ekran.

W poprzednim filmiku korzystałem z integerów przy teksturowaniu w jednym miejscu glownie dla optymalizacji i przy testowej texturze dopiero zauwazyłem, że strasznie brzydko mapuje w pionie
ZawzietyRobaczek - #mojeraycastingowezabawy #programowanie #programista15k #gamedev C...
#mojeraycastingowezabawy #programowanie #programista15k #gamedev Czołem, bawię się ostatnio w Racycasting. Dziś dodałem textury, a następnie pomnozyłem wartość koloru przez obliczoną intenstywność (cieniowanie) co dało ładny efekt cieniowanych tekstur. Z racji tego że ta metoda generowania 3D to Raycasting, cały proces odbył się dość łatwo, zaledwie kilka prostych obliczeń. Widać jeszcze zniekształcenie kiedy podchodzę zbyt blisko ściany. Potem zrobię korektę.

Na razie wczeytana textura ma wielkość 256x256 przy renderowanym okienku 640x512. Jak widać
ZawzietyRobaczek - #mojeraycastingowezabawy #programowanie #programista15k #gamedev C...
#mojeraycastingowezabawy #programowanie #programowanie15k #gamedev #amiga Czołem, bawię się ostatnio w Racycasting, dziś zamieniełem metodę cieniowania z Depth Shading (czyli opartą tylko na odległości) na mixie tej techniki z techniką cieniowania zależną od kierunku w która zwrócona jest ściana.. póki co niewiele się dzieje, ale mam kilka ciekawych pomysłów które chciałem sprawdzić.. porównanie obu metod na poczatku filmiku

inna sprawa, okno po prawej stronie to docelowa rzecz (640x512) okno po prawej służy mi
ZawzietyRobaczek - #mojeraycastingowezabawy #programowanie #programowanie15k #gamedev...