Fastbar
Powrót do strony głównej
Trzymaj pliki na gmclan.org!
Game Maker w pytaniach i odpowiedziach!
Polska dokumentacja
Tabela wyników ligi 24
Pobierz GM
Akademia GMCLANu
Kategorie bazy artykułów
Artykuły -> Game Maker -> Kursy GML
Treść artykułu
Obsługa 3D w GM6
autor: Marmot (18.09.04)
Ten artykuł jest bardziej przeznaczony dla osób którym nie chce się tłumaczyć helpa, albo nie znają angielskiego. Pomoże on napewno nie tylko tym :) . Komentarze umieszczam w /* */ czyli w nowym standardzie GMa.

Wejście w tryb grafiki 3D
d3d_start() /* włącza tryb grafiki 3D */
d3d_end() /* wyłącza tryb grafiki 3D */
d3d_set_hidden(enable) /* ukrywanie powierzchni (true włącza, false wyłącza) */
d3d_set_perspective(enable) /* tryb projekcji perspektyw (true włącza, false wyłącza) */

Łatwe rysowanie
d3d_set_depth(depth) /* ustawia głębokość dla rysowania */

Rysowanie polygonów w 3D
d3d_primitive_begin(kind) /* zaczyna 3D prymitywa poprzez określenie rodzaju: pr_pointlist, pr_linelist, pr_linestrip,pr_trianglelist,pr_trianglestrip albo pr_trianglefan. */
d3d_vertex(x,y,z) /* dodaje vertexa (x,y,z) na prymitywa, używającego kolor i wartość alpha ustawianą wcześniej */
d3d_vertex_color(x,y,z,col,alpha) /* dodaje vertexa (x,y,z) do prymitywa, z własnym kolorem i wartością alpha */
d3d_primitive_begin_texture(kind,texid) /* zaczyna 3D prymitywa poprzez określenie rodzaju i nadanie tekstury */
d3d_vertex_texture(x,y,z,xtex,ytex) /* dodaje vertexa (x,y,z) do prymitywa wraz z pozycją (xtex,ytex) na teksturze, wraz z kolorem i alpha blendingiem ustawianymi wcześniej */
d3d_vertex_texture_color(x,y,z,xtex,ytex,col,alpha) /* dodaje vertexa (x,y,z) do prymitywa wraz z pozycją (xtex,ytex) na teksturze, wraz z kolorem i alpha blendingiem ustawianymi wraz z tym vertexem */
d3d_primitive_end() /* kończy prymitywa */
d3d_set_culling(cull) /* culling startujący przez tylną stronę objektu (true włącza, false wyłącza) */

Rysowanie podstawowych kształtów
d3d_draw_block(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat) /* Rysuje graniastosłup z aktywnym kolorem wraz z pokazaniem przeciwległych rogów używając wskazanej tekstury. Wpisz -1 jeżeli nie korzystasz z tekstur. hrepeat wskazuje ile razy musi być powtórzona tekstura w poziomie. vrepeat robi to samo ale w pionie. */
d3d_draw_cylinder(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat,closed,steps) /* Rysuje pionowy walec z aktywnym kolorem. Wartości hrepeat i vrepeat oznaczają to co powyżej. closed wskazuje kiedy ma być zamknięty owy walec. steps oznacza ile kroków ma zrobić. Domyślnie jest to 24. */
d3d_draw_ellipsoid(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat,steps) /* Rysuje ellipsoid w aktywnym kolorze. Wszystko jest takie same jak w poprzednich przypadkach */
d3d_draw_wall(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat) /* Rysuje pionową ścianę w aktywnym kolorze. Znów wszystko jest takie jak powyżej */
d3d_draw_floor(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat) /* Rysuje (ukośną) podłogę w aktywnym kolorze. Jeszcze raz macie wszystko powyżej */

Patrzenie na świat :)
d3d_set_projection(xfrom,yfrom,zfrom,xto,yto,zto,xup,yup,zup) /* definiuje ono patrzenie na świat */
d3d_set_projection_ext(xfrom,yfrom,zfrom,xto,yto,zto,xup,yup,zup,angle,aspect,znear,zfar) /* Jest to polepszona wersja poprzedniego. Można ustawić w nim kąt, pole widzenia, z aspect ratio przy widzeniu pionowym i poziomym */
d3d_set_projection_ortho(x,y,w,h,angle) /* Zwykłe wyświetlanie w stylu ortograficznym :D . */

Transformacje
d3d_transform_set_identity() /* Ustawienie identyczności (bez transformacji) */
d3d_transform_set_translation(xt,yt,zt) /* Ustawia transformację w przejście */
d3d_transform_set_scaling(xs,ys,zs) /* Ustawia scalowanie */
d3d_transform_set_rotation_x(angle) /* Ustawia rotację do pozycji X */
d3d_transform_set_rotation_y(angle) /* Ustawia rotację do pozycji Y */
d3d_transform_set_rotation_z(angle) /* Ustawia rotację do pozycji Z */
d3d_transform_set_rotation_axis(xa,ya,za,angle) /* Ustawia rotację wokół ustawionego axisa */
d3d_transform_add_translation(xt,yt,zt) /* Dodaje przejście */
d3d_transform_add_scaling(xs,ys,zs) /* Dodaje scalowanie */
d3d_transform_add_rotation_x(angle) /* Dodaje rotację do pozycji X */
d3d_transform_add_rotation_y(angle) /* Dodaje rotację do pozycji Y */
d3d_transform_add_rotation_z(angle) /* Dodaje rotację do pozycji Z */
d3d_transform_add_rotation_axis(xa,ya,za,angle) /* Dodaje rotację wokół ustawionego axisa */
/* UWAGA! Pomijam komendy ze STACKami, ze względu na to, że nie są aż tak potrzebne, a w każdej chwili można zajrzeć do helpa */

Mgła
d3d_set_fog(enable,color,start,end) /* Włącza lub wyłącza mgłę. color ustawia kolor mgły. start ustawia gdzie się mgła zaczyna. end ustawia gdzie się mgła kończy. */

Oświetlenie
d3d_set_lighting(enable) /* Włącza lub wyłącza oświetlenie */
d3d_set_shading(smooth) /* Ustawia nasycenie cieni lub ich brak */
d3d_light_define_direction(ind,dx,dy,dz,col) /* Ustawia kierunek światła. ind to indeks światła (użyj małej liczby pozytywnej). (dx,dy,dz) to kierunek światła. col to kolor światła. */
d3d_light_define_point(ind,x,y,z,range,col) /* Ustawia punkt który ma być oświetlony. ind oznacza to co powyżej. (x,y,z) to pozycja punktu który ma być oświetlony. range ustawia jak daleko ma być to oświetlenie. col to kolor światła. */
d3d_light_enable(ind,enable) /* Włącza (true) lub wyłącza (false) światło o podanym indeksie (wartość ind). */

To chyba na tyle. Chciałem wam pokazać przez to, jak duże możliwości ma GM 6. Mam też nadzieję, że pomoże wam to w zrobieniu jakiejś gry 3D. Napewno nie zrobicie DOOMa 3, ale ta zabawa napewno przyniesie sporo satysfakcji.
głosów: 5 | ocena: 9.00 oceń zasób | dodał: Marmot
Komentarze
stron: 21

2


av

adamek2323 (17:43, 17.11.2008)

ej żeby muc robić grę 3d nie trzeba przypadkiem pro edition mieć??? bo mi wyskakuje taki błąd:
___________________________________________
ERROR in
action number 1
of Create Event
for object cos:

Error in code at line 1:
d3d_start()

at position 1: This function is only available in the Pro Edition.

av

Yoda (17:55, 17.11.2008)

Jaki edytor, o czym ty gadasz.

;|

av

Darlix (19:28, 17.11.2008)

Yoda: nie mów że nie wiesz o co chodzi :/
Trzeba mieć zarejestrowanego gm'a

av

Lechu4444 (20:35, 17.11.2008)

A co ty myślałeś że tak poprostu ściągniesz sobie program Game Maker nie dasz autorom złamanego grosza i zrobisz grę 3D która będzie hitem na gmclanie Najgorsze w tej całej wersji lite nie jest to że nie da się robić gier 3D tylko to że zablokowali możliwość wstawiania linków.

av

Yoda (21:34, 17.11.2008)

Damian21: nie, nie wiem o co chodzi

av

Yoda (21:35, 17.11.2008)

A, i kodu nie wpisuje się w "edycji wynkcji".

av

adamek2323 (14:52, 18.11.2008)

dzieki wielkie najbardzie pomógł mi Lechu4444 ... teraz tylko muszę wycmanić od rodziców 60 zł na rejestrację bo oglądałem filmik na youtube gdzie jest wszystko opisane jak robic grę 3D w GM ;D

av

Darlix (15:45, 18.11.2008)

najlepiej poszukaj jakiegoś silnika z opisem wszystkich funkcji i łatwiej będzie Ci zrozumieć świat 3D w gm'ie

av

Yoda (16:00, 18.11.2008)

Nie. Najpierw naucz się programować.

av

I am Lord (17:52, 24.11.2008)

Nie. Najpierw rozum, podstawowy angielski potem programowanie.

av

Makary155 (14:51, 25.11.2008)

I obcykaj się z trygonometrią, bez tego ani rusz

av

Ghost (15:00, 25.11.2008)

I najpierw zrób jakąś prostą grę 2D...

av

lenin (18:54, 26.11.2008)

i... i tyle

av

XivroX (19:06, 26.11.2008)

zapomnieliście: najpierw należy uruchomić GM'a xD

av

PsichiX (23:06, 26.11.2008)

lol, skonczcie spam -.-

stron: 21

2



Dodaj komentarz:
Treść:
Menu
Panel użytkownika
Jesteś niezalogowany!

Nie masz konta? Zarejestruj się
Użytkownicy on-line
1 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 1, userów: 0, ukrytych: 0
Użytkownicy na czacie discord
gnysek (12:38, 21.11.17):
W sumie powinienem napisać że słaba.
gnysek (10:51, 21.11.17):
Pełną + moduł. Dlatego napisałem, że oferta średnia.
hgter (0:56, 21.11.17):
Odnosząc się do ogłoszenie gnyska o subscypcji za $39: Tylko jak w tej wersji w "subskrypcji" można rozwiązać moduł na androida? Da się coś taniej? Muszę kupić moduł za 1450 zł? Czy też w tej wersji nie da się z niego skorzystać i muszę kupić pełną+moduł czyli dać 1800 zł?
PsichiX (17:42, 20.11.17):
mieli DLC pod tytulem "kompilacja do kodu natywnego", a biedaki cebulaki meczyc sie z powolnym gmlem xD
Wojo (16:09, 20.11.17):
może jeszcze dlc przyspieszające ładowanie gier?
Wojo (16:08, 20.11.17):
hahaha ten news o nowym gmie pokazuje jak jego poziom upadł na ryj
gnysek (9:37, 20.11.17):
Po prostu każdy sterownik inaczej interpretuje polecenia rysowania linii z directx i ogólnie nikt tego już nie używa w profesjonalnych grach.
gnysek (9:36, 20.11.17):
To nie wina gma tylko kart graficznych. I chyba nawet w dokumentacji jest to opisane czemu tak działa i że własnie lepiej rysować sprite.
hgter (21:40, 19.11.17):
Miałem napisać długi post o skopaniu draw_line w Gm. Ale to nie ma sensu (cyrki jakie w tym wychodzą są nieziemskie). Draw_line nie działa w Gm (działało nawet kurde qbasicu pod dosem) a już pod androidem to co się wyprawia to jakaś paranoja. Jak musisz mieć linię w swoim projekcie to narysuj ją sobie jako sprite.
Adriann (19:29, 19.11.17):
Hi hi
Saus (14:15, 18.11.17):
Siema śmieszki
hgter (10:42, 17.11.17):
Pozmieniałem wszystko na pliki i mam nadzieję, że będzie ok
hgter (10:41, 17.11.17):
Coś chyba nie jest do końca tak z dodawaniem grafik do postów. Wczoraj w nocy dodawałem screeny z gry przez linkowanie (zmieniałem ich wielkość przy pomocy narzędzi edycji w poście). Było wszystko ok, ale teraz jak zajrzałem to screeny wyparowały i tylko linki zostały. Natomiast jeden screen dodany jako plik był ok.
I am Lord (20:02, 16.11.17):
scroll byłby pokrętłem, może to wyglądać spoko
I am Lord (20:01, 16.11.17):
A zobacz w sumie bo nie sprawdzałem w jaki sposób są zrobione scrolle od myszek, tam też na pewno jest enkoder
I am Lord (20:01, 16.11.17):
ale no enkoder jednak fajniejsza sprawa bo nie ma ograniczenia obrotu
I am Lord (20:00, 16.11.17):
A na potencjometrach nie możesz?
Chell (19:13, 16.11.17):
knuje jakiś sprytny zegarek na rpi zero i tak mi zaswitalo ze takie pokrętło byłoby wygodnym inputem
I am Lord (19:08, 16.11.17):
A co konstruujesz?
I am Lord (19:08, 16.11.17):
A jak byś potrzebował liniowe enkodery to takie są np w drukarkach i skanerach
Chell (19:03, 16.11.17):
zawsze coś
I am Lord (18:59, 16.11.17):
w dodatku inkrementalne są tak jak chcesz ale wiesz jaka ich precyzja była
Chell (18:59, 16.11.17):
oo, super myśl, dzięki
I am Lord (18:58, 16.11.17):
skołuj sobie myszkę kulkową, tam są 2 takie enkodery obrotowe.
Chell (18:57, 16.11.17):
coś takiego ze starych komórek kojarzę, że jak normalny rotary encoder jest pionowy i nie da się go obracac jednym palcem tak mi chodzi o taki który jest płaski, wystaje z obudowy urządzenia tylko trochę z boku i można podkręcić
I am Lord (18:57, 16.11.17):
tzn budowa może być z tarczą wewnątrz enkodera a może być tak jak w starych kulkowych myszkach gdzie była tarcza na zewnątrz enkodera
Chell (18:55, 16.11.17):
jednak nie rysuje, lapek padl
I am Lord (18:54, 16.11.17):
no nie czaję o co ci chodzi z zatapianiem
Chell (18:54, 16.11.17):
już rysuje o co mi chodzi
I am Lord (18:53, 16.11.17):
ale to nadal liniowy tylko że się zwija
I am Lord (18:52, 16.11.17):
No to nie wiem, są jeszcze takie zwijane
Chell (18:51, 16.11.17):
bez max i min wartości w sensie
Chell (18:50, 16.11.17):
ale nie, bo wciąż zależy mi na samej czynności kręcenia, i żeby nie określał absolutnej wartości tylko inkrementowal i dekrementowal
Chell (18:50, 16.11.17):
masz refleks xD
I am Lord (18:48, 16.11.17):
encoder liniowy?
Chell (18:48, 16.11.17):
taki żeby można go było zatopić w sprzęcie od boku
Chell (18:47, 16.11.17):
ej, jak się nazywa taki rotary encoder, ale płaski i szeroki?
I am Lord (18:47, 16.11.17):
Uzjel no ale jak to? Przecież instancja może zmieniać sobie sprite_index no to jak wtedy image_speed się dostosować ma?
ANtY (15:41, 16.11.17):
elo co tam
exp (23:18, 15.11.17):
w sumie fajna rzecz dla nowych użytkowników, mimo, że starzy muszą zmieniać nawyki
Uzjel (16:03, 15.11.17):
(GMS2)
PsichiX (15:56, 15.11.17):
wat D:
Uzjel (15:51, 15.11.17):
Prędkość podglądu w Sprite Editorze ma wpływ na prędkość animacji w grze. Moje życie straciło sens
hgter (2:15, 15.11.17):
Jak rzekłem tak zrobiłem. Obejście problemu wrzuciłem w: forum.gmclan.or...nowości-z-forum
hgter (0:30, 15.11.17):
Cóż rzec. Też sam nigdy o tym nie pamiętam - i potem mam jak Ty. Już nawet myślałem żeby jakiś skrypt napisać czy coś.
Sutikku (0:02, 15.11.17):
ta ale to trzeba pamiętać, a ja wejdę, naklikam ostatnie pięć nowości, a potem kappa
hgter (23:03, 14.11.17):
Można też dać f5 zaraz po wejściu. Wtedy kółeczko działa "od razu"
SimianVirus7 (22:18, 14.11.17):
ale wystarczy taki tip zrobić raz i później kółeczkiem elegancko możesz otwierać nowe karty
Sutikku (22:13, 14.11.17):
mam zwyczaj klikania kółeczkiem od myszki żeby przerzuciło na nową kartę, a teraz muszę zmieniać nawyki ;/
SimianVirus7 (21:41, 14.11.17):
cofnąć stronę i kliknąć jeszcze raz w ten sam link
Ankieta
» Jakie kursy najchętniej widziałbyś na stronie ?
GM Studio
GM Studio 2
Godot
Construct

GMCLAN to serwis o programie Game Maker i nie tylko.
Copyright © 2002-2017. GMCLAN.ORG
Wszelkie prawa zastrzeżone. Kopiowanie materiałów bez zgody redakcji zabronione!
© 2002-2017 Ranmus (ranmus.pl), © 2017 {=|=} fable_inside();

[ Czas generowania strony: 0.02074 sekund ] [ Liczba zapytań MySQL: 13 ]