From: Andreas Eversberg Date: Sat, 14 Apr 2018 12:22:53 +0000 (+0200) Subject: OVR: Render sky and ground correctly on VR X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=mercenary-reloaded.git;a=commitdiff_plain;h=78d699f1ba5e77c593a451f75f98140a503c9eda OVR: Render sky and ground correctly on VR --- diff --git a/src/mercenary/render.c b/src/mercenary/render.c index 8f0b140..3b2bf11 100644 --- a/src/mercenary/render.c +++ b/src/mercenary/render.c @@ -1659,12 +1659,25 @@ void render_one_item(render_item_t *render_item, int vr) #endif /* get color */ opengl_render_color(render_item->u.sky.red, render_item->u.sky.green, render_item->u.sky.blue, 1.0); - /* create plane to fill view */ - x[0] = x[1] = y[1] = y[2] = -1000000; - x[2] = x[3] = y[0] = y[3] = 1000000; - z[0] = z[1] = z[2] = z[3] = 10; - /* render */ - opengl_render_polygon(x, y, z, 4, 0); /* no culling, because sky (background) is always visible! */ + /* create box to fill view */ + x[0] = x[1] = y[1] = y[2] = -1000; + x[2] = x[3] = y[0] = y[3] = 1000; + z[0] = z[1] = z[2] = z[3] = 1000; + opengl_render_polygon_and_line(x, y, z, 4); + z[0] = z[1] = z[2] = z[3] = -1000; + opengl_render_polygon_and_line(x, y, z, 4); + x[0] = x[1] = z[1] = z[2] = -1000; + x[2] = x[3] = z[0] = z[3] = 1000; + y[0] = y[1] = y[2] = y[3] = 1000; + opengl_render_polygon_and_line(x, y, z, 4); + y[0] = y[1] = y[2] = y[3] = -1000; + opengl_render_polygon_and_line(x, y, z, 4); + y[0] = y[1] = z[1] = z[2] = -1000; + y[2] = y[3] = z[0] = z[3] = 1000; + x[0] = x[1] = x[2] = x[3] = 1000; + opengl_render_polygon_and_line(x, y, z, 4); + x[0] = x[1] = x[2] = x[3] = -1000; + opengl_render_polygon_and_line(x, y, z, 4); break; } case RENDER_ITEM_GROUND: @@ -1680,9 +1693,9 @@ void render_one_item(render_item_t *render_item, int vr) opengl_render_color(render_item->u.ground.red, render_item->u.ground.green, render_item->u.ground.blue, 1.0); yaw = 0.0; /* no need to rotate x-z plane, we don't want look at a corner of the 'ground-square' */ /* create huge square */ - x[0] = x[1] = z[1] = z[2] = -1000000; - x[2] = x[3] = z[0] = z[3] = 1000000; - y[0] = y[1] = y[2] = y[3] = -10; + x[0] = x[1] = z[1] = z[2] = -1000000000; + x[2] = x[3] = z[0] = z[3] = 1000000000; + y[0] = y[1] = y[2] = y[3] = -1000; /* rotate vertex */ for (i = 0; i < 4; i++) rotate_coordinate(roll, pitch, yaw, &x[i], &y[i], &z[i]);