X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fclient%2FView.qc;h=d58704803a78808625a1795f8f92ad6137fc0dca;hp=2e539c32a29411cf6852444494891bb42707dee5;hb=7d690926a4dfd4086c9ecae8868d020d5869af18;hpb=eb48b0f5bd5867f05a2f03b0e513fc3f90b8ba25 diff --git a/qcsrc/client/View.qc b/qcsrc/client/View.qc index 2e539c32a2..d58704803a 100644 --- a/qcsrc/client/View.qc +++ b/qcsrc/client/View.qc @@ -565,20 +565,17 @@ void CSQC_UpdateView(float w, float h) vector ov_worldmax = '0 0 0'; if(autocvar_cl_orthoview) { - #define ORTHO_ACCURACY 512 // x^2 resolution accuracy for evaluating fov scaling and distance - #define FL2VEC(x,y,z) (('1 0 0' * x) + ('0 1 0' * y) + ('0 0 1' * z)) - ov_worldmin = mi_picmin; ov_worldmax = mi_picmax; - + float ov_width = (ov_worldmax_x - ov_worldmin_x); float ov_height = (ov_worldmax_y - ov_worldmin_y); - float ov_distance = (ORTHO_ACCURACY * max(ov_width, ov_height)); + float ov_distance = (autocvar_cl_orthoview_resolution * max(ov_width, ov_height)); ov_mid = ((ov_worldmax + ov_worldmin) * 0.5); - ov_org = FL2VEC(ov_mid_x, ov_mid_y, (ov_mid_z + ov_distance)); + ov_org = vec3(ov_mid_x, ov_mid_y, (ov_mid_z + ov_distance)); - float ov_nearest = vlen(ov_org - FL2VEC( + float ov_nearest = vlen(ov_org - vec3( bound(ov_worldmin_x, ov_org_x, ov_worldmax_x), bound(ov_worldmin_y, ov_org_y, ov_worldmax_y), bound(ov_worldmin_z, ov_org_z, ov_worldmax_z) @@ -587,18 +584,20 @@ void CSQC_UpdateView(float w, float h) float ov_furthest = 0; float dist = 0; - if((dist = vlen(FL2VEC(ov_worldmin_x, ov_worldmin_y, ov_worldmin_z) - ov_org)) > ov_furthest) { ov_furthest = dist; } - if((dist = vlen(FL2VEC(ov_worldmax_x, ov_worldmin_y, ov_worldmin_z) - ov_org)) > ov_furthest) { ov_furthest = dist; } - if((dist = vlen(FL2VEC(ov_worldmin_x, ov_worldmax_y, ov_worldmin_z) - ov_org)) > ov_furthest) { ov_furthest = dist; } - if((dist = vlen(FL2VEC(ov_worldmin_x, ov_worldmin_y, ov_worldmax_z) - ov_org)) > ov_furthest) { ov_furthest = dist; } - if((dist = vlen(FL2VEC(ov_worldmax_x, ov_worldmax_y, ov_worldmin_z) - ov_org)) > ov_furthest) { ov_furthest = dist; } - if((dist = vlen(FL2VEC(ov_worldmin_x, ov_worldmax_y, ov_worldmax_z) - ov_org)) > ov_furthest) { ov_furthest = dist; } - if((dist = vlen(FL2VEC(ov_worldmax_x, ov_worldmin_y, ov_worldmax_z) - ov_org)) > ov_furthest) { ov_furthest = dist; } - if((dist = vlen(FL2VEC(ov_worldmax_x, ov_worldmax_y, ov_worldmax_z) - ov_org)) > ov_furthest) { ov_furthest = dist; } + if((dist = vlen(vec3(ov_worldmin_x, ov_worldmin_y, ov_worldmin_z) - ov_org)) > ov_furthest) { ov_furthest = dist; } + if((dist = vlen(vec3(ov_worldmax_x, ov_worldmin_y, ov_worldmin_z) - ov_org)) > ov_furthest) { ov_furthest = dist; } + if((dist = vlen(vec3(ov_worldmin_x, ov_worldmax_y, ov_worldmin_z) - ov_org)) > ov_furthest) { ov_furthest = dist; } + if((dist = vlen(vec3(ov_worldmin_x, ov_worldmin_y, ov_worldmax_z) - ov_org)) > ov_furthest) { ov_furthest = dist; } + if((dist = vlen(vec3(ov_worldmax_x, ov_worldmax_y, ov_worldmin_z) - ov_org)) > ov_furthest) { ov_furthest = dist; } + if((dist = vlen(vec3(ov_worldmin_x, ov_worldmax_y, ov_worldmax_z) - ov_org)) > ov_furthest) { ov_furthest = dist; } + if((dist = vlen(vec3(ov_worldmax_x, ov_worldmin_y, ov_worldmax_z) - ov_org)) > ov_furthest) { ov_furthest = dist; } + if((dist = vlen(vec3(ov_worldmax_x, ov_worldmax_y, ov_worldmax_z) - ov_org)) > ov_furthest) { ov_furthest = dist; } cvar_set("r_nearclip", ftos(ov_nearest)); cvar_set("r_farclip_base", ftos(ov_furthest)); cvar_set("r_farclip_world", "0"); + cvar_set("r_novis", "1"); + cvar_set("r_useportalculling", "0"); cvar_set("r_useinfinitefarclip", "0"); setproperty(VF_ORIGIN, ov_org);