Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void d3d_model_floor(int id, gs_scalar x1, gs_scalar y1, gs_scalar z1, gs_scalar x2, gs_scalar y2, gs_scalar z2, gs_scalar hrep, gs_scalar vrep) {
- // Find third point
- gs_scalar x3 = x2;
- gs_scalar y3 = y1;
- gs_scalar z3 = z2;
- // Setup U and V vectors
- gs_scalar vX = x2 - x1;
- gs_scalar vY = y2 - y1;
- gs_scalar vZ = z2 - z1;
- gs_scalar wX = x3 - x1;
- gs_scalar wY = y3 - y1;
- gs_scalar wZ = z3 - z1;
- // Cross-Product of vectors to create normal vector
- gs_scalar nX = (vY * wZ) - (vZ * wY);
- gs_scalar nY = (vZ * wX) - (vX * wZ);
- gs_scalar nZ = (vX * wY) - (vY * wX);
- // Normalize result
- gs_scalar mag = sqrt( (nX*nX) + (nY*nY) + (nZ*nZ) );
- nX /= mag;
- nZ /= mag;
- nX /= mag;
- // Create floor
- d3d_model_primitive_begin(id, pr_trianglestrip);
- d3d_model_vertex_normal_texture(id, x1, y1, z1, nX, nY, nZ, 0, 0);
- d3d_model_vertex_normal_texture(id, x1, y2, z1, nX, nY, nZ, 0, vrep);
- d3d_model_vertex_normal_texture(id, x2, y1, z2, nX, nY, nZ, hrep, 0);
- d3d_model_vertex_normal_texture(id, x2, y2, z2, nX, nY, nZ, hrep, vrep);
- d3d_model_primitive_end(id);
- }
- void d3d_model_wall(int id, gs_scalar x1, gs_scalar y1, gs_scalar z1, gs_scalar x2, gs_scalar y2, gs_scalar z2, gs_scalar hrep, gs_scalar vrep) {
- // Find third point
- gs_scalar x3 = x1;
- gs_scalar y3 = y1;
- gs_scalar z3 = z2;
- // Setup U and V vectors
- gs_scalar vX = x2 - x1;
- gs_scalar vY = y2 - y1;
- gs_scalar vZ = z2 - z1;
- gs_scalar wX = x3 - x1;
- gs_scalar wY = y3 - y1;
- gs_scalar wZ = z3 - z1;
- // Cross-Product of vectors to create normal vector
- gs_scalar nX = (vY * wZ) - (vZ * wY);
- gs_scalar nY = (vZ * wX) - (vX * wZ);
- gs_scalar nZ = (vX * wY) - (vY * wX);
- // Normalize result
- gs_scalar mag = sqrt( (nX*nX) + (nY*nY) + (nZ*nZ) );
- nX /= mag;
- nZ /= mag;
- nX /= mag;
- // Create wall
- d3d_model_primitive_begin(id, pr_trianglestrip);
- d3d_model_vertex_normal_texture(id, x1, y1, z1, nX, nY, nZ, 0, 0);
- d3d_model_vertex_normal_texture(id, x2, y2, z1, nX, nY, nZ, hrep, 0);
- d3d_model_vertex_normal_texture(id, x1, y1, z2, nX, nY, nZ, 0, vrep);
- d3d_model_vertex_normal_texture(id, x2, y2, z2, nX, nY, nZ, hrep, vrep);
- d3d_model_primitive_end(id);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement