draw: draw_distance for 3d spaces, proper positioning of skybox according to it, scenery demo on circle rasters

This commit is contained in:
veclavtalica
2025-02-26 15:53:59 +03:00
parent 23fbd45564
commit 8c0f43ec34
9 changed files with 123 additions and 80 deletions

View File

@ -441,66 +441,68 @@ void finally_render_skybox(DeferredCommandDrawSkybox command) {
glEnable(GL_DEPTH_CLAMP);
#endif
float const d = camera_far_z / sqrtf(3);
glBegin(GL_QUADS); {
/* up */
glTexCoord3f(50.f, 50.f, 50.f);
glVertex3f(50.f, 50.f, 50.f);
glTexCoord3f(-50.f, 50.f, 50.f);
glVertex3f(-50.f, 50.f, 50.f);
glTexCoord3f(-50.f, 50.f, -50.f);
glVertex3f(-50.f, 50.f, -50.f);
glTexCoord3f(50.f, 50.f, -50.f);
glVertex3f(50.f, 50.f, -50.f);
glTexCoord3f(d, d, d);
glVertex3f(d, d, d);
glTexCoord3f(-d, d, d);
glVertex3f(-d, d, d);
glTexCoord3f(-d, d, -d);
glVertex3f(-d, d, -d);
glTexCoord3f(d, d, -d);
glVertex3f(d, d, -d);
/* down */
glTexCoord3f(50.f, -50.f, 50.f);
glVertex3f(50.f, -50.f, 50.f);
glTexCoord3f(50.f, -50.f, -50.f);
glVertex3f(50.f, -50.f, -50.f);
glTexCoord3f(-50.f, -50.f, -50.f);
glVertex3f(-50.f, -50.f, -50.f);
glTexCoord3f(-50.f, -50.f, 50.f);
glVertex3f(-50.f, -50.f, 50.f);
glTexCoord3f(d, -d, d);
glVertex3f(d, -d, d);
glTexCoord3f(d, -d, -d);
glVertex3f(d, -d, -d);
glTexCoord3f(-d, -d, -d);
glVertex3f(-d, -d, -d);
glTexCoord3f(-d, -d, d);
glVertex3f(-d, -d, d);
/* east */
glTexCoord3f(50.f, -50.f, 50.f);
glVertex3f(50.f, -50.f, 50.f);
glTexCoord3f(50.f, 50.f, 50.f);
glVertex3f(50.f, 50.f, 50.f);
glTexCoord3f(50.f, 50.f, -50.f);
glVertex3f(50.f, 50.f, -50.f);
glTexCoord3f(50.f, -50.f, -50.f);
glVertex3f(50.f, -50.f, -50.f);
glTexCoord3f(d, -d, d);
glVertex3f(d, -d, d);
glTexCoord3f(d, d, d);
glVertex3f(d, d, d);
glTexCoord3f(d, d, -d);
glVertex3f(d, d, -d);
glTexCoord3f(d, -d, -d);
glVertex3f(d, -d, -d);
/* west */
glTexCoord3f(-50.f, -50.f, 50.f);
glVertex3f(-50.f, -50.f, 50.f);
glTexCoord3f(-50.f, -50.f, -50.f);
glVertex3f(-50.f, -50.f, -50.f);
glTexCoord3f(-50.f, 50.f, -50.f);
glVertex3f(-50.f, 50.f, -50.f);
glTexCoord3f(-50.f, 50.f, 50.f);
glVertex3f(-50.f, 50.f, 50.f);
glTexCoord3f(-d, -d, d);
glVertex3f(-d, -d, d);
glTexCoord3f(-d, -d, -d);
glVertex3f(-d, -d, -d);
glTexCoord3f(-d, d, -d);
glVertex3f(-d, d, -d);
glTexCoord3f(-d, d, d);
glVertex3f(-d, d, d);
/* north */
glTexCoord3f(-50.f, -50.f, 50.f);
glVertex3f(-50.f, -50.f, 50.f);
glTexCoord3f(-50.f, 50.f, 50.f);
glVertex3f(-50.f, 50.f, 50.f);
glTexCoord3f(50.f, 50.f, 50.f);
glVertex3f(50.f, 50.f, 50.f);
glTexCoord3f(50.f, -50.f, 50.f);
glVertex3f(50.f, -50.f, 50.f);
glTexCoord3f(-d, -d, d);
glVertex3f(-d, -d, d);
glTexCoord3f(-d, d, d);
glVertex3f(-d, d, d);
glTexCoord3f(d, d, d);
glVertex3f(d, d, d);
glTexCoord3f(d, -d, d);
glVertex3f(d, -d, d);
/* south */
glTexCoord3f(-50.f, -50.f, -50.f);
glVertex3f(-50.f, -50.f, -50.f);
glTexCoord3f(50.f, -50.f, -50.f);
glVertex3f(50.f, -50.f, -50.f);
glTexCoord3f(50.f, 50.f, -50.f);
glVertex3f(50.f, 50.f, -50.f);
glTexCoord3f(-50.f, 50.f, -50.f);
glVertex3f(-50.f, 50.f, -50.f);
glTexCoord3f(-d, -d, -d);
glVertex3f(-d, -d, -d);
glTexCoord3f(d, -d, -d);
glVertex3f(d, -d, -d);
glTexCoord3f(d, d, -d);
glVertex3f(d, d, -d);
glTexCoord3f(-d, d, -d);
glVertex3f(-d, d, -d);
} glEnd();
#ifndef __EMSCRIPTEN__