Se utilizzi i modelli invece di molte funzioni wall e floor le prestazioni non possono che migliorare, ma questo vale anche in game maker.
Se poi usi la mia DLL puoi anche evitare di prenderti la briga di preoccuparti dei poligoni, ti fai i modelli con software come sketchup e ci metti quanti vertici vuoi.
Da sketchup li salvi in 3ds e puoi importarli già texturati.
Per una lista delle funzioni ti passo direttamente un pezzo dell'header del progetto
Codice: Seleziona tutto
//GOING TO 3D MODE
export D d3d_start(D hwnd,D windowed);
export D d3d_end();
//D d3d_set_hidden(D enable);
//D d3d_set_perspective(D enable);
export D d3d_render_begin();
export D d3d_render_end();
export D d3d_set_mipmap(D enable);
//LIGHTING
export D d3d_set_lighting(D enable);
export D d3d_set_ambient(D color);
export D d3d_set_shading(D smooth);
export D d3d_light_define_direction(D ind,D dx,D dy,D dz,D col);
export D d3d_light_define_point(D ind,D x,D y,D z,D range,D col);
export D d3d_light_enable(D ind,D enable);
//VIEWING THE WORLD
export D d3d_set_projection(D xfrom,D yfrom,D zfrom,D xto,D yto,D zto,D xup,D yup,D zup);
export D d3d_set_projection_ext(D xfrom,D yfrom,D zfrom,D xto,D yto,D zto,D xup,D yup,D zup,D angle,D aspect,D znear,D zfar);
//FOG
export D d3d_set_fog(D enable,D color,D start,D end);
//DRAWING BASIC SHAPES
export D d3d_draw_block(D x1,D y1,D z1,D x2,D y2,D z2,D texid,D hrepeat,D vrepeat);
export D d3d_draw_floor(D x1,D y1,D z1,D x2,D y2,D z2,D texid,D hrepeat,D vrepeat);
//TEXTURE HANDLING
D texture_set_repeat(D repeat);
export D load_texture(S fname);
export D load_texturedir(S fname);
export D texture_destroy(D ind);
export D texture_set_directory(S dir);
//CREATING MODELS
export D d3d_model_create();
export D d3d_model_exists(D ind);
export D d3d_model_destroy(D ind);
export D d3d_model_clear(D ind);
export D d3d_model_save(D ind,S fname);
export D d3d_model_load(D ind,S fname);
export D d3d_model_load_ex(D ind,S fname,D flag);
export D d3d_material_create(D ambient,D diffuse,D diff_alpha,D emissive,D power,D specular);
export D d3d_material_destroy(D ind);
export D d3d_model_primitive_begin(D ind,D kind);
export D d3d_model_primitive_end(D ind);
//export D d3d_model_primitive_end_ex(D ind, D matID,D texID);
export D d3d_model_vertex(D ind,D x,D y,D z);
export D d3d_model_vertex_color(D ind,D x,D y,D z,D col,D alpha);
export D d3d_model_vertex_texture(D ind,D x,D y,D z,D xtex,D ytex);
export D d3d_model_vertex_texture_color(D ind,D x,D y,D z,D xtex,D ytex,D col,D alpha);
export D d3d_model_vertex_normal(D ind,D x,D y,D z,D nx,D ny,D nz);
export D d3d_model_vertex_normal_texture(D ind,D x,D y,D z,D nx,D ny,D nz,D xtex,D ytex);
export D d3d_model_vertex_normal_color(D ind,D x,D y,D z,D nx,D ny,D nz,D col,D alpha);
export D d3d_model_vertex_normal_texture_color(D ind,D x,D y,D z,D nx,D ny,D nz,D xtex,D ytex,D col,D alpha);
export D d3d_model_draw(D ind,D x,D y,D z,D texid);
export D d3d_model_calculate_normals(D ind);
//TRANSFORMATIONS
export D d3d_transform_set_identity();
export D d3d_transform_set_translation(D xt,D yt,D zt);
export D d3d_transform_set_scaling(D xs,D ys,D zs);
export D d3d_transform_set_rotation_x(D angle);
export D d3d_transform_set_rotation_y(D angle);
export D d3d_transform_set_rotation_z(D angle);
export D d3d_transform_set_rotation_axis(D xa,D ya,D za,D angle);
export D d3d_transform_add_translation(D xt,D yt,D zt);
export D d3d_transform_add_scaling(D xs,D ys,D zs);
export D d3d_transform_add_rotation_x(D angle);
export D d3d_transform_add_rotation_y(D angle);
export D d3d_transform_add_rotation_z(D angle);
export D d3d_transform_add_rotation_axis(D xa,D ya,D za,D angle);
//COLLISION DETECTION
export D d3d_collision_ray_model(D xr,D yr,D zr,D xv,D yv,D zv,D model);