Home | Aanpassen | Blog | Extra's | Log In | Info
Handleiding | D&D iconen | GML Parser | Archief | Iso City
Gebruikersnaam: Wachtwoord:  
Over ons | Features | Directory | Banners | Contact

Het ontwerpen van spellen met Game Maker
Het ontwerpen van spellen met Game Maker

Belichting

Scènes die je wilt tekenen met bovenstaande functies zien er nogal plat uit omdat er geen licht is. De kleur van de oppervlakken is gelijk, onafhankelijk van hun oriëntatie. Om scènes er realistischer te maken moet je belichting inschakelen en lichten op de correcte plaatsen plaatsen. Goede lichtscènes maken is niet eenvoudig maar het effect is erg goed.

Om belichting in te schakelen kun je de volgende functie gebruiken;

d3d_set_lighting(inschakelen) Schakelt het gebruik van belichting in (true) of uit (false).

Wanneer je belichting gebruikt wordt voor elke vertex van een polygon de kleur vastgesteld. Vervolgens wordt de kleur van interne pixels gebaseerd op de kleur van deze vertices. Er zijn twee manieren waarop dit kan worden gedaan: of de hele polygon krijgt dezelfde kleur, of de kleur is vloeiend geïnterpoleerd over de polygon. Standaard wordt smooth shading gebruikt. Dit kan worden veranderd gebruikmakend van de volgende functie:

d3d_set_shading(smooth) Schakelt het gebruik van smooth shading in (true) of uit (false).

Om belichting te gebruiken moet je natuurlijk lichten definiëren. Twee verschillende lichten bestaan: directionele lichten (zoals de zon), en positionele lichten. Lichten hebben een kleur. (We ondersteunen alleen diffuus licht, geen spectaculaire reflectie.) De volgende functies bestaan om lichten te definiëren en te gebruiken:

d3d_light_define_direction(ind, rx, ry, rz, klr) Definieert een directioneel licht. ind is de index van het licht (gebruik een klein positief getal). (rx,ry,rz) is de richting van het licht. klr is de kleur van het licht (vaak wil je c_white gebruiken). Deze functie zet het licht niet aan.
d3d_light_define_point(ind, x, y, z, bereik, klr) Definiëert een positioneel licht. ind is de index van het licht (gebruik een klein positief getal). (x,y,z) is de positie van het licht. bereik geeft aan tot hoever het licht schijnt. De intensiteit van het licht zal over dit bereik afnemen. klr is de kleur van het licht. Deze functie zet het licht niet aan.
d3d_light_enable(ind, aan) Zet licht nummer ind aan (true) of uit (false).

De manier waarop een object het licht reflecteert hangt af van de rotatie tussen de lichtrichting en de normaal (loodlijn) van de oppervlakte, dat is de vector die loodrecht op de oppervlakte staat. Om belichte objecten te maken moet je niet alleen de positie van de vertices verschaffen, maar ook hun loodlijnen. Hiervoor zijn vier extra functies beschikbaar om de vertices van primitieven te definiëren:

d3d_vertex_normal(x, y, z, nx, ny, nz) Voeg vertex (x,y,z) toe aan de primitive, met normaal vector (nx,ny,nz).
d3d_vertex_normal_color(x, y, z, nx, ny, nz, klr, doorzichtigheid) Voeg vertex (x,y,z) toe aan de primitive, met normaal vector (nx,ny,nz), en met zijn eigen kleur en doorzichtigheid.
d3d_vertex_normal_texture(x, y, z, nx, ny, nz, xtex, ytex) Voeg vertex (x,y,z) toe aan de primitive, met normaal vector (nx,ny,nz), en met positie (xtex,ytex) in de texture, verkleurd met vooraf ingestelde kleur en doorzichtigheid.
d3d_vertex_normal_texture_color(x, y, z, nx, ny, nz, xtex, ytex, klr, doorzichtigheid) Voeg vertex (x,y,z) toe aan de primitive, met normaal vector (nx,ny,nz), en met positie (xtex,ytex) in de texture, verkleurd met zijn eigen kleur en doorzichtigheid.

Merk op dat voor basisvormen die je kunt tekenen de loodlijnen automatisch goed worden ingesteld.

Zoeken Zoeken


Alternatieve versies Alternatieve versies

Je kan de handleiding ook lezen op een lange pagina (± 1.5 mb)

Ook beschikbaar in: Engels Frans Duits

ZIP Download helpfile

Advertentie Advertentie

GameMaker Handleiding