OVR: Render sights and interstellar sun at correct distance
authorAndreas Eversberg <jolly@eversberg.eu>
Sat, 14 Apr 2018 13:39:20 +0000 (15:39 +0200)
committerAndreas Eversberg <jolly@eversberg.eu>
Sun, 22 Apr 2018 10:02:45 +0000 (12:02 +0200)
src/mercenary/render.c

index 3b2bf11..abb9668 100644 (file)
@@ -62,6 +62,7 @@
 #define PLANET_ELIPSE          1.17
 #define EXPLOSION_VERTICES     16
 #define EXPLOSION_ELIPSE       1.17
+#define SIGHT_DIST             78.74   /* distanc of sights in inch */
 
 /*
  *  render item definition and structures
@@ -2361,7 +2362,7 @@ void render_one_item(render_item_t *render_item, int vr)
                gamecolor2gl(&red, &green, &blue, 0x777);
                opengl_render_color(red, green, blue, debug_opacity);
                /* render point */
-               opengl_render_point(0.0, 0.0, 100.0, 0.0);
+               opengl_render_point(0.0, 0.0, 1000000.0, 0.0);
                break;
        }
        case RENDER_ITEM_SIGHTS:
@@ -2373,19 +2374,19 @@ void render_one_item(render_item_t *render_item, int vr)
                printf("RENDER_ITEM_SIGHTS\n");
 #endif
                /* use default fov of 64 to calculate z distance */
-               z[0] = z[1] = z[2] = z[3] = 160.0 / frustum_slope_64;
+               z[0] = z[1] = z[2] = z[3] = SIGHT_DIST;
 
                /* white */
                gamecolor2gl(&red, &green, &blue, 0x777);
                opengl_render_color(red, green, blue, debug_opacity);
 
-               y[0] = y[3] = -1.0;
-               y[1] = y[2] = 1.0;
-               x[0] = x[1] = -16.0;
-               x[2] = x[3] = -8.0;
+               y[0] = y[3] = -1.0 / 160.0 * SIGHT_DIST * frustum_slope_64;
+               y[1] = y[2] = 1.0 / 160.0 * SIGHT_DIST * frustum_slope_64;
+               x[0] = x[1] = -16.0 / 160.0 * SIGHT_DIST * frustum_slope_64;
+               x[2] = x[3] = -8.0 / 160.0 * SIGHT_DIST * frustum_slope_64;
                opengl_render_polygon(x, y, z, 4, 0); /* no culling, because sights are always visible! */
-               x[0] = x[1] = 8.0;
-               x[2] = x[3] = 16.0;
+               x[0] = x[1] = 8.0 / 160.0 * SIGHT_DIST * frustum_slope_64;
+               x[2] = x[3] = 16.0 / 160.0 * SIGHT_DIST * frustum_slope_64;
                opengl_render_polygon(x, y, z, 4, 0); /* no culling, because sights are always visible! */
                break;
        }