draw: draw_distance for 3d spaces, proper positioning of skybox according to it, scenery demo on circle rasters
This commit is contained in:
@ -6,7 +6,7 @@
|
||||
|
||||
|
||||
#define CAMERA_NEAR_Z 0.1f
|
||||
#define CAMERA_FAR_Z 1000.0f
|
||||
// #define CAMERA_FAR_Z 400.0f
|
||||
|
||||
|
||||
Matrix4 camera_look_at(const Camera *const camera) {
|
||||
@ -42,13 +42,13 @@ Matrix4 camera_perspective(const Camera *const camera) {
|
||||
const float aspect = ((float)ctx.base_render_width / (float)ctx.base_render_height);
|
||||
|
||||
const float f = 1.0f / tanf(camera->fov * 0.5f);
|
||||
const float fn = 1.0f / (CAMERA_NEAR_Z - CAMERA_FAR_Z);
|
||||
const float fn = 1.0f / (CAMERA_NEAR_Z - camera->far_z);
|
||||
|
||||
result.row[0].x = f / aspect;
|
||||
result.row[1].y = f;
|
||||
result.row[2].z = (CAMERA_NEAR_Z + CAMERA_FAR_Z) * fn;
|
||||
result.row[2].z = (CAMERA_NEAR_Z + camera->far_z) * fn;
|
||||
result.row[2].w = -1.0f;
|
||||
result.row[3].z = 2.0f * CAMERA_NEAR_Z * CAMERA_FAR_Z * fn;
|
||||
result.row[3].z = 2.0f * CAMERA_NEAR_Z * camera->far_z * fn;
|
||||
|
||||
return result;
|
||||
}
|
||||
@ -61,14 +61,14 @@ Matrix4 camera_orthographic(const Camera *const camera) {
|
||||
|
||||
const float rl = 1.0f / (camera->viewbox[0].y - camera->viewbox[0].x);
|
||||
const float tb = 1.0f / (camera->viewbox[1].x - camera->viewbox[1].y);
|
||||
const float fn = -1.0f / (CAMERA_FAR_Z - -CAMERA_FAR_Z);
|
||||
const float fn = -1.0f / (camera->far_z - -camera->far_z);
|
||||
|
||||
result.row[0].x = 2.0f * rl;
|
||||
result.row[1].y = 2.0f * tb;
|
||||
result.row[2].z = 2.0f * fn;
|
||||
result.row[3].x = -(camera->viewbox[0].y + camera->viewbox[0].x) * rl;
|
||||
result.row[3].y = -(camera->viewbox[1].x + camera->viewbox[1].y) * tb;
|
||||
result.row[3].z = (CAMERA_FAR_Z + -CAMERA_FAR_Z) * fn;
|
||||
result.row[3].z = (camera->far_z + -camera->far_z) * fn;
|
||||
result.row[3].w = 1.0f;
|
||||
|
||||
return result;
|
||||
|
Reference in New Issue
Block a user