Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Feature: Ulepszona Flara i SkyBeam
#1
Nie wiem jak to opisać więc wstawię filmik o co mi chodzi:
https://youtu.be/0bJHncLpxH0
[video=youtube]https://youtu.be/0bJHncLpxH0[/video]
Sorry for my English
[Image: 76561198127157465.png]
#2
Takie flary będą miały jedną wadę. Ciężej będzie je modować z racji obecności więcej niż jednej tekstury, choć można z powodzeniem zachować zgodność wsteczną z pojedynczą teksturą rozbłysku. Z implementacją czegoś takiego w GOLD nie powinno być chyba problemu. To chyba po prostu kolejne tekstury umieszczone na wektorze w odpowiedniej odległości od siebie, ale renderowane razem na jednej płaszczyźnie.

Byłoby łatwiej, gdybyśmy faktycznie mieli kod z BlupiManii-2. To był definitywny update silnika gier EPSITEC, większy niż którykolwiek z CeeBotów i BuzzingCars. Kilka rzeczy z niego dałoby radę wyciągnąć zapewne i byłyby one rzeczywiście przydatne w GOLD. Chyba że w OpenGL flary świetlne i inne efekty optymalniej się osiąga zupełnie innymi drogami? Co o tym sądzisz, @tomaszkax86 ?
#3
Efekt flary można by poszerzyć o więcej tekstur. Myślę, że nie było by problemu z dodaniem tego efektu z zachowaniem zgodności wstecznej. W plikach scene jest bodajże komenda do tego, można do niej dodać parametry i powielić, a silnik po prostu narysuje więcej elementów uzyskując pożądany wynik.
"After three days without programming, life becomes meaningless."
~The Tao of Programming
#4
Jest taka opcja? Nie wiedziałem. Jak ją stosować? W oficjalnym dokumencie wydanym niegdyś przez EPSITEC nic o tym nie ma.

Najwyżej zastanawiające jest to:
EPSITEC Wrote:Do not an image size of 512x256; 128x64 is
usually enough.
Really? No trudno, to w GOLD będą 2048x1024 w takim razie...
#5
(10-27-2015, 08:10 PM)RaptorParkowsky Wrote: Jest taka opcja?
Jest komenda do ustawienia grafiki flary, ale nie ma możliwości zrobienia jej z wielu tekstur - @tomaszkax86 proponuje to jako rozszerzenie dotychczasowej komendy
#6
W związku że BlupiMania 2 została OpenSource to nawet nie trzeba pisać flarę od nowa. Tylko przekopiować kod z BM2 Smile (chyba)
Sorry for my English
[Image: 76561198127157465.png]
#7
@DavivaD Wiemy i pamiętamy Smile . A przynajmniej ja pamiętam. Choć zanim zrobię issue wolałbym się nieco obyć z assetami które otrzymaliśmy i zobaczyć co będzie dla nas najbardziej optymalne i ewentualnie porównać z tym, jak to współcześnie jest renderowane. Chętnie bym wywalił z levelów stare lensflary i bazując na tych z BlupiMania-2 spróbował stworzyć nowe warianty odpowiednie dla każdej z planet. Ewentualnie zostawiłbym stare lensflary wraz z kodem ich obsługi dla wstecznej zgodności z userlevelami, choć nie sądzę by to było jakoś specjalnie konieczne.

Odnośnie kodu, teoretycznie faktycznie wystarczy tylko przekopiować i zastąpić stary kod, ale ja się nie znam. @krzys_h albo ktoś z programistów musiałby się wypowiedzieć.
#8
Kodu nie da się tak po prostu skopiować, bo w Blupimanii jest wykorzystany Direct3D. Jednakże przyjrzałem się kodu renderującemu i wygląda to na proste do przeportowania do Colobota. Nie wiem natomiast czy i w jaki sposób ten efekt jest ustawiony w scene. Jeżeli tak, to wprowadzenie będzie troszkę trudniejsze, bo trzeba by zmieniać pliki scene. Gdyby ktoś zdekodował i pokazał fragment pliku scene za to odpowiedzialny, to można by to zintegrować z Colobotem.
"After three days without programming, life becomes meaningless."
~The Tao of Programming
#9
Czyli nie tylko ja nie widzę żadnych narzędzi do dekodowania scene z BlupiManii-2? Czyli znowu jak zwykle otrzymaliśmy bardzo fragmentaryczne źródła.

Choć równie dobrze może być tak, że w BlupiManii-2 lensflara jest hardcodowana w każdym levelu niezależnie od ustawień scene, choćby z tego powodu że w wszystkich levelach jest używany zdaje się ten sam zestaw plików graficznych, których jest dziewięć sztuk lens#.tga.

Odnośnie samego powodu tego, że EPSITEC zaczął w BlupiManii-2 używać binarnego formatu leveli - zapewne uznali, że skoro gra ma już wbudowany edytor poziomów, to nie trzeba trzymać wszystkiego w tekście jak w przypadku poprzednich gier tego uniwersum by ludzie sobie mogli w ograniczonym zakresie modować i tworzyć poziomy. I przy okazji zaoszczędzili tym samym nieco na szybkości ładowania poziomów i to na tyle, że w przejściu z menu do właściwego poziomu nie ma nawet ekranu "Loading" znanego z poprzednich gier.
#10
Z kodu wynika, że każdy osobny fragment lens flare to osobne tekstury. Trochę nieoptymalne, więc możemy przy okazji coś z tym zrobić. Jak wrócę do domu to się przyjrzę wczytywaniu tych binarnych plików scene. Zobaczę, czy da się napisać jakiś prosty konwerter do formatu tekstowego.

Jeśli chcecie, to można dodać format binarny plików scene, o ile to przyspieszy wczytywanie. W repo można je trzymać w postaci tekstowej i konwertować do formatu binarnego na etapie kompilacji. Oczywiście bez żadnego dziwnego szyfrowania, bo to jest bez sensu.
"After three days without programming, life becomes meaningless."
~The Tao of Programming
#11
Przypadkiem w źródłach nie mamy tekstowych wersji plików scene od Blupi? Kodowanie i dekodowanie może też znajdzie się gdzieś w źródłach, co może być jednak uciążliwe w szukaniu z uwagi na francuskie komentarze.
Spoiler :
[Image: unknown.png]
#12
(03-01-2017, 12:59 PM)tomangelo Wrote: Przypadkiem w źródłach nie mamy tekstowych wersji plików scene od Blupi? Kodowanie i dekodowanie może też znajdzie się gdzieś w źródłach, co może być jednak uciążliwe w szukaniu z uwagi na francuskie komentarze.
Raczej nigdzie czegoś takiego nie jestem w stanie zauważyć, choć przyznaję że znaczna część źródeł jest poza moim zasięgiem z racji tego, że nie jestem programistą.

Wnioskując po datach wszystkich plików leveli BlupiMania-2 były one wszystkie wsadowo konwertowane do formatu binarnego tego samego dnia, o tej samej godzinie. Samego konwertera z kolei niestety nie widać. Bardzo możliwe, że sam silnik gry do jakiegoś momentu wspierał tekstowy format leveli do czasu ich ukończenia, a potem po prostu twórcy przestawili obsługę plików binarnych i je wszystkie hurtowo przekonwertowali.

(03-01-2017, 12:47 PM)tomaszkax86 Wrote: Jeśli chcecie, to można dodać format binarny plików scene, o ile to przyspieszy wczytywanie. W repo można je trzymać w postaci tekstowej i konwertować do formatu binarnego na etapie kompilacji. Oczywiście bez żadnego dziwnego szyfrowania, bo to jest bez sensu.
Właściwie czemu by nie. To samo z modelami. W repo trzymalibyśmy modele do wykorzystania w grze np. w formacie COLLADA, przy kompilacji przerabiałyby się do MOD lub innego binarnego formatu. Modele CGI to wciąż co innego i na razie zostawiłbym je w binarnym BLEND, tym bardziej że wciąż są w bardzo wczesnym etapie rozwoju.

Warto podyskutować o tym nieco bardziej na Slacku lub IRCu.
#13
Dobra, format plików scene w Blupimanii to format tekstowy zaszyfrowany tym dziwnym algorytmem. Nic więcej. Trochę się naszukałem, bo kod zapisu i odczytu plików scene jest w dwóch różnych plikach... Napisałem prosty skrypt Pythonowy do deszyfrowania plików, przerobię go trochę, dostosuję do różnych wersji a potem wstawię na Slacka.

Dodatkowe tekstury dla lens flare podaje się jako dodatkowe komendy LensFlare. Ważny jest tutaj parametr dist. Przykład:

Code:
LensFlare image="lens4.tga" dist=-1.20 dim=0.45 intensity=0.7 offsetH=0.00 offsetV=0.20
LensFlare image="lens6.tga" dist=-0.50 dim=0.25 intensity=0.8 offsetH=0.00 offsetV=0.00
LensFlare image="lens9.tga" dist= 0.10 dim=0.35 intensity=1.0 offsetH=0.00 offsetV=0.00
LensFlare image="lens5.tga" dist= 0.30 dim=0.40 intensity=1.0 offsetH=0.00 offsetV=0.00
LensFlare image="lens8.tga" dist= 0.55 dim=0.50 intensity=1.0 offsetH=0.00 offsetV=0.00
LensFlare image="lens7.tga" dist= 0.80 dim=0.10 intensity=0.8 offsetH=0.06 offsetV=0.06
LensFlare image="lens7.tga" dist= 1.00 dim=0.08 intensity=0.7 offsetH=0.05 offsetV=0.05
LensFlare image="lens7.tga" dist= 1.30 dim=0.14 intensity=0.5 offsetH=0.08 offsetV=0.08
"After three days without programming, life becomes meaningless."
~The Tao of Programming
#14
Żadnego specjalnego zaskoczenia tutaj nie widać w sumie. Prawie żadnej czarnej i dziwnej technologii, wszystko się mieści w kanonie EPSITEC. Dałoby się chyba zachować ForegroundName dla zgodności wstecznej i dołożyć LensFlare do obsługi w scene GOLD a potem po prostu stopniowo zrobić update w standardowych levelach w grze. Nowe pliki lensflar proponowałbym umieścić w osobnym katalogu, tak samo jak zacząłem portować i porządkować w ten sposób planety widoczne na nieboskłonach.

Z tego co widzę to:
dist - odległość poszczególnych tekstur od siebie względem jakiejś tam osi wzdłuż której są one osadzone (dajmy na to Z).
dim - skala wielkości pojedynczych tekstur.
intensity - poziom nasycenia alphy (swoją drogą przydałoby się tutaj dać support dla normalnej alphy. teraz po prostu zamienia kolor czarny na alphę + dodaje ten filtr).
offsetH/offsetV - przesunięcie względem osi H i V (co to za szwajcarskie osie?! Nie wystarczyło po prostu X i Y?).
#15
H i V = Horizontal i Vertical = poziomo i pionowo
Spoiler :
[Image: unknown.png]
#16
Myślę, że przydałaby się tutaj pomoc @krzys_h jako że lepiej zna kod ładujący poziomy i zapewne lepiej by rozwiązał problem dodania tego do obecnego kodu. Ja mogę się zająć dodaniem efektu od strony graficznej.

Gdyby ktoś znalazł kolejne ciekawe rzeczy w Buzzing Cars lub Blupimanii, to warto rozważyć przeniesienie ich do Colobota. Prawdopodobnie znajdzie się coś interesującego w ich CBocie.
"After three days without programming, life becomes meaningless."
~The Tao of Programming
#17
Zaissuowane. #928.
Sorry for my English
[Image: 76561198127157465.png]


Forum Jump:


Users browsing this thread: 4 Guest(s)