Skocz do zawartości

Rekomendowane odpowiedzi

witka. już od dłuższego czasu uczę się openglować i c#ować =), więć wpadłem na pewien pomysł. a mianowicie napisanie engine 3d, m.in. możliwego do zaimplementowania w gm*... w sumie conieco naskrobałem (nawet konwerter modeli sketchup->in-engine format i 3dsmax -> in-engine format), i zrobiłem Wam małe demko (pierwsze 3 klatki to pokaz jedynego na razie efektu, a nie upośledzona jakość filmu :P). znając siebie, pewnie rzucę to w połowie (miejmy nadzieję, że nie), no ale spróbuję dociągnąć.

 

https://gmclan.org/up170_3_iceengine1.html

wersja mpeg

 

klik klik

 

aha, i sry za kamerę, której eventów de facto w ogóle nie zakodowałem, tylko przesuwałem ręcznie.. tego jeszcze nie zrobiłem =p

 

pozdro,

 

* tego jeszcze nie zakodowałem ;p

 

#version log

 

0.0001

  • renderowanie prostopadłościanów
  • teksturowanie prostopadłościanów(max. rozmiar 4096x4096px, 4 mld. kolorów, BMP, PNG, GIF, JPG)
  • przezroczystości(dokładność 0,01%) tekstur
0.0001b
  • poprawienie renderowania prostopadłościanów (jednopikslowe przerwy między ściankami wyeliminowane)
  • dynamiczne przesuwanie puktów (obracanie, rozciąganie prostopadłościanów)
0.0002
  • dowolne kształty
  • teksturowanie dowolnych kształtów
  • półprzezroczystości chwilowo wyeliminowane
0.0002b
  • poprawione teksturowanie
  • możliwość regulowania rozmiaru tekstur, regulowania rozciągania w szerz i wzdłuż etc.
0.0003
  • półprzezroczystości wracają dla wszystkich kształtów, poprawione uśrednianie kolorów przy półprzeźroczyści tekstur
  • zaczątki antialiasingu (rozmazywanie zetknięć tekstur)
  • rozjaśnianie, przyciemnianie tekstur
0.0004
  • możliwość ustawienia kamery w dowolnym miejscu, dowolne obracanie kamery etc.
0.001
  • dodane rzucanie cieni
0.0016
  • poprawione rzucanie cieni
  • rozmazywanie cieni
  • konsola skryptów w *.exe
  • przeniesienie engine również pod linuxa, również z konsolą skryptów (i586)
  • falowane powierzchnie generowane przez funkcję wave(); z sześcioma atrybutami
  • pokrywanie wielokątków kolorem (z półprzeźroczystościami) funkcją color_overlay();
0.002
  • system efektów (zapisywanie i odczytywanie, kompatybilność zachowywana wstecz)
  • generowanie kształtów 2d (późniejsza możliwość przekształcenia je w bryły 3d) funkcją shape();, 29 gotowych wzorów+czytanie wzorów z BMP, PNG i GIF
  • generowanie kul(regularnych i nieregularnych, tzn "jajek" ;)
  • kolorowanie świateł
0.005
  • niektóre funkcje mogą oddziaływać na cały ekran
  • możliwość ustawienia tła
  • możliwość wyłączenia paralaksy dla danego obiektu
  • możliwość wstawienia dwuwymiarowego obrazka nie używając shape();, dodatkowo możliwość przeźroczystych elementów obrazka
  • niektóre funkcje mogą oddziaływać na obrazki
  • skalowanie obiektów bez potrzeby "ręcznej" zmiany położenia wierzchołków
  • zaznaczanie wierzchołków kolorowymi punktami 3x3px; możliwość przesuwania wierzchołków myszką(!)
0.01
  • importowanie modeli z Google SketchUp (pierwszy amatorski konwerter :)
  • importowanie modeli z 3D Studio Max 7 (każda klatka animacji może być importowana osobno, nie da się importować animacji jako animacje)
  • wygładzanie, usuwanie niepotrzebnych wielokątków (za zgodą użytkownika) przy przejściach modeli
  • funckje generujące grafikę dwuwymiarową: 2d_gradient(); [12 atrybutów], 2d_clouds(); [max. 16 kolorów głównych, z których miesza się chmury, 4 atrybuty poza kolorami, ustalanie częstotliwości jednego koloru etc.], 2d_wave(); [2 atrybuty], 2d_mosaic(); 2d_blur(); i 3 inne, których nie mam siły wymieniać :)
  • wyginanie figur
  • większość czynności wymagających precyzji może być wykonywana myszką
  • możliwość ustalenia puktu oświetlenia (max. 4096 źródeł światła)
  • powiększenie maksymalnego obszaru edycji (~40km2, realnych !)
  • odbicia lustrzane [ mirror(); ]
0.011
  • efekt rozmazania (prędkość) speed_blur();
  • możliwość podkreślenia krawędzi [profile_edges(enable/disable); edges(enable/disable);]
0.02
  • poprawienie rzucania cieni
  • 50-procentowe zwiększenie wydajności silnika, poprzez zaimplementowanie niektórych funkcji w assemblerze, pozatym uproszczenie wielu funkcji
  • tekstury i efekty dla odbiorcy nie będą renderowane, jeżeli w makrze przez następne x sekund (do ustawienia przez użytkownika) nie będą potrzebne
  • generowanie napisów (2d, 3d, oraz teksturowanie i efekty)
  • kilka nowych efektow
  • antialiasing napisów(2d)
  • zmiana rozdzielczości jeszcze wewnątrz engine
0.021
  • parę nowych efektów
Odnośnik do komentarza
Udostępnij na innych stronach

https://gmclan.org/up170_5_city.html - bez efektu prędkości

https://gmclan.org/up170_5_city_effect.html - z efektem prędkości

 

ejnoy, nowy efekt, zakodowany przed pięcioma minutami :>

 

i tu widzimy też, że endżin radzi sobie z wieloma wielokątkami (1288076 wielokątków, półprzezroczystości i tekstury enabled. rozmiar wszystkich tekstur to 64x64, ale obsługuje nawet 4096x4096 =)

 

e: post numer 27k na gmclan <:

Odnośnik do komentarza
Udostępnij na innych stronach

dość duży upgrade silnika, generowanie efektów wolumetrycznych :)

 

przykład:

 

tekstura bez wolumetrycznego efektu kropli: https://gmclan.org/up170_5_230px_Lisc_lipy.html

 

tekstura z wolumetrycznym efektem kropli:

https://gmclan.org/up170_5_wolumetryczne_krople.html

 

e:

 

https://gmclan.org/up170_5_c6ed09145c.html - z kolorem :)

 

w version logu skompletuję wszystkie dodane przez ostatnie dni efekekty.. głównie wolumetryczne. możliwe, że po wakacjach wyrzucę jakąś prealphatechdemobetę silnika xP

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 miesiące temu...

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...