Dobra ogarnąłem to:
GML
var maxX1 = (global.sheight-1)*global.terrainsize;
var maxY1 = (global.swidth-1)*global.terrainsize;
for(xx=0;xx<global.swidth-1;xx+=1)
{
d3d_model_primitive_begin(global.terrainmodel,pr_trianglestrip);
for (yy=0;yy<global.sheight;yy+=1)
{
z2=ds_grid_get(global.terraingrid,yy,xx+1);
d3d_model_vertex_normal_texture(global.terrainmodel,yy*global.terrainsize,(xx+1)*global.terrainsize,z2,0,0,1,
(yy*global.terrainsize)/maxX1,
((xx+1)*global.terrainsize)/maxY1);
z1=ds_grid_get(global.terraingrid,yy,xx);
d3d_model_vertex_normal_texture(global.terrainmodel,yy*global.terrainsize,xx*global.terrainsize,z1,0,0,1,
(yy*global.terrainsize)/maxX1,
(xx*global.terrainsize)/maxY1);
}
d3d_model_primitive_end(global.terrainmodel);
}
To co zrobiłem to podzieliłem pozycję każdego wierzchołka terenu przez maksymalną szerokość i wysokość terenu.
No i oczywiście wywaliłem te adraw bo już do niczego nie są potrzebne.
EDIT: Tutaj masz optymaniej
GML
var maxX = (global.sheight-1)*global.terrainsize;
var maxY = (global.swidth-1)*global.terrainsize;
for(xx=0;xx<global.swidth-1;xx+=1)
{
d3d_model_primitive_begin(global.terrainmodel,pr_trianglestrip);
for (yy=0;yy<global.sheight;yy+=1)
{
var z2 = ds_grid_get(global.terraingrid,yy,xx+1);
var xPos = yy*global.terrainsize;
var yPos = (xx+1)*global.terrainsize;
d3d_model_vertex_normal_texture(global.terrainmodel, xPos, yPos, z2, 0, 0, 1, xPos/maxX, yPos/maxY);
var z1 = ds_grid_get(global.terraingrid,yy,xx);
var xPos = yy*global.terrainsize;
var yPos = xx*global.terrainsize;
d3d_model_vertex_normal_texture(global.terrainmodel, xPos, yPos, z1, 0, 0, 1, xPos/maxX, yPos/maxY);
}
d3d_model_primitive_end(global.terrainmodel);
}