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 (14:10, 15.12.17):
o maczanach ?
Wojo (13:44, 15.12.17):
Swoją drogą jeśli jesteśmy przy temacie palenia to pamięam te wywody o maczanach, które się iskrzą
Wojo (13:43, 15.12.17):
Pierwsza rzecz jaką robię po spaleniu kuchni to napisanie o tym na gmclanie
gnysek (16:06, 14.12.17):
I już zaktualizowali GMS2 ponownie z hotfixem, bo to nowe okienko w room editorze nie działało prawidłowo...
Gibki Kaktus (12:49, 14.12.17):
Zgadnijcie kto spalił kuchnię i musial się wynieść? XD
gnysek (11:33, 14.12.17):
@Wojo - ten typek dawno sprzedał ten film i teraz robi go Disney
ANtY (9:49, 14.12.17):
szanuje
Chell (17:15, 13.12.17):
wysoka piątka
I am Lord (17:15, 13.12.17):
Nie oglądałem ani jednej części SW i jestem z tego dumny
Wojo (13:23, 13.12.17):
z resztą typek jest na tyle smutny ze musi wypuszczac co jakis czas nowa czesc swojego filmu bo nie potrafił zrobić jednego porządnego filmu
Wojo (13:22, 13.12.17):
nigdy nie ogladalem gwiezdnych wojen i jakos mnie do tego nie ciagnie
gnysek (10:32, 13.12.17):
ja wczoraj kupiłem bilet na SW na dziś, podobno 9/10
Chell (20:07, 12.12.17):
byle bez warnow
I am vader (19:52, 12.12.17):
A ja bede antychellowski i powiem, ze SW jest dobre, harry potter ok, a lotr to gówno i syf. A i SW I nie istnieje, tylko II-VI
Chell (19:51, 12.12.17):
to ja bede do bolu offstreamowy i powiem, ze SW to zawsze byla dla mnie mordega, najnudniejsze na swiecie, plus meczacy overhype. Harrego Pottera tez nie znosze, tylko LOTR
gnysek (17:06, 12.12.17):
i jeszcze zapomniałeś dodać, że zaczeło się na 4 części
Ignatus (16:49, 12.12.17):
Dałem radę wytrzymać połowę poprzedniej części, wątpie czy będzie lepiej..Będę do bólu mainstreamowy ale SW sie skoczylo na 6 episodzie tak jak obcy na 3 czeci
gnysek (16:40, 12.12.17):
na star warsy kto idzie do kina ?
gnysek (16:40, 12.12.17):
nic koleżku
ANtY (16:10, 12.12.17):
hehe co tam kolegowie
Wojo (16:49, 11.12.17):
Nie no zajebiscie jest sie starzec
Nikas (22:28, 10.12.17):
xDDDD no nieźle typy
Wojo (10:26, 10.12.17):
swoją drogą też bardzo nie lubię swoich urodzin
Wojo (10:26, 10.12.17):
Kiedyś miałem komplex dużych uszów
Wojzax (21:36, 9.12.17):
i wielkość uszu
Wojzax (21:36, 9.12.17):
wiek to tylko liczba
I am Lord (16:23, 9.12.17):
Mi o mojej osiemnastce powiedziała nauczycielka z angola
Sutikku (15:52, 9.12.17):
prosze nie straszyc za pare miesiecy mam 17
I am vader (15:17, 9.12.17):
Moje życie skończyło się po siedemnastce
exp (18:40, 8.12.17):
dwudzieste urodziny to była dla mnie trauma
Wojo (20:43, 7.12.17):
ja chyba z 9
ANtY (13:48, 6.12.17):
a ja 420 hihihihihui
gnysek (11:10, 6.12.17):
a ja 30! jestem 2x starszy niż gmclan
Morro (21:48, 5.12.17):
ja wciąż 14
I am Lord (21:29, 5.12.17):
Uzjel czemu w twoim filmie z flappy birdem przyjales taki zlo nawykowy styl pisania kodu?
PsichiX (21:15, 5.12.17):
a ja 69
Chell (20:29, 5.12.17):
(ja mam 18 jakby co)
Chell (20:29, 5.12.17):
nigdzie juz nie mozna sprawdzac wieku userow!
Adriann (22:45, 29.11.17):
Nie musisz dawać..wystarczy że postawisz serwer;3
Morro (20:52, 29.11.17):
Czyli tak jak myślałem
I am Lord (20:43, 29.11.17):
bo czat pewnie po tcp a ruch po udp :p
Sutikku (19:56, 29.11.17):
albo dopowiedz co jest nie tak, ze czat w almorce dziala spoko, ale grasz nie porusza sie po mapie?
Morro (19:41, 29.11.17):
a może zlitujesz się i wrzucisz na jakimś laptopie w tle serwer Almorki ;> ?
gnysek (19:01, 29.11.17):
mam mam, z Szczecin Games Show, aczkolwiek to nie musi być ostatnia wersja serwera.
Chell (18:44, 29.11.17):
bo nie masz
PsichiX (17:14, 29.11.17):
no to sobie pogralismy :<
gnysek (17:02, 29.11.17):
ja mam ale nie dam, bo łatwo zdekopilować
Uzjel (16:41, 29.11.17):
Nie było chyba oficjalnej apki z serwerem
Adriann (16:08, 29.11.17):
Możliwe że na...dysku starego komputera na strychu..jakieś 115km stąd
PsichiX (16:05, 29.11.17):
a masz gdzies paczke z serwerem i klientem? xD
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.01783 sekund ] [ Liczba zapytań MySQL: 13 ]