Commit: dd34b7a71c2e8cfc490070c68bf293fb6e1734f4
Author: Campbell Barton
Date:   Tue Nov 29 13:12:26 2016 +1100
Branches: master
https://developer.blender.org/rBdd34b7a71c2e8cfc490070c68bf293fb6e1734f4

Comment: explain viewport & render pixel-size

It wasn't all that clear why both pixel-sizes are needed.

===================================================================

M       source/blender/blenkernel/intern/camera.c
M       source/blender/editors/space_view3d/view3d_draw.c

===================================================================

diff --git a/source/blender/blenkernel/intern/camera.c 
b/source/blender/blenkernel/intern/camera.c
index 30f1758..9cb553a 100644
--- a/source/blender/blenkernel/intern/camera.c
+++ b/source/blender/blenkernel/intern/camera.c
@@ -337,6 +337,8 @@ void BKE_camera_params_compute_viewplane(CameraParams 
*params, int winx, int win
        viewplane.ymin *= pixsize;
        viewplane.ymax *= pixsize;
 
+       /* Used for rendering (offset by near-clip with perspective views), 
passed to RE_SetPixelSize.
+        * For viewport drawing 'RegionView3D.pixsize'. */
        params->viewdx = pixsize;
        params->viewdy = params->ycor * pixsize;
        params->viewplane = viewplane;
diff --git a/source/blender/editors/space_view3d/view3d_draw.c 
b/source/blender/editors/space_view3d/view3d_draw.c
index 000d1fe..f23e587 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -2658,7 +2658,6 @@ CustomDataMask ED_view3d_screen_datamask(const bScreen 
*screen)
 void ED_view3d_update_viewmat(Scene *scene, View3D *v3d, ARegion *ar, float 
viewmat[4][4], float winmat[4][4])
 {
        RegionView3D *rv3d = ar->regiondata;
-       rctf cameraborder;
 
        /* setup window matrices */
        if (winmat)
@@ -2672,7 +2671,7 @@ void ED_view3d_update_viewmat(Scene *scene, View3D *v3d, 
ARegion *ar, float view
        else
                view3d_viewmatrix_set(scene, v3d, rv3d);  /* note: calls 
BKE_object_where_is_calc for camera... */
 
-       /* update utilitity matrices */
+       /* update utility matrices */
        mul_m4_m4m4(rv3d->persmat, rv3d->winmat, rv3d->viewmat);
        invert_m4_m4(rv3d->persinv, rv3d->persmat);
        invert_m4_m4(rv3d->viewinv, rv3d->viewmat);
@@ -2681,6 +2680,7 @@ void ED_view3d_update_viewmat(Scene *scene, View3D *v3d, 
ARegion *ar, float view
 
        /* store window coordinates scaling/offset */
        if (rv3d->persp == RV3D_CAMOB && v3d->camera) {
+               rctf cameraborder;
                ED_view3d_calc_camera_border(scene, ar, v3d, rv3d, 
&cameraborder, false);
                rv3d->viewcamtexcofac[0] = (float)ar->winx / 
BLI_rctf_size_x(&cameraborder);
                rv3d->viewcamtexcofac[1] = (float)ar->winy / 
BLI_rctf_size_y(&cameraborder);
@@ -2692,8 +2692,17 @@ void ED_view3d_update_viewmat(Scene *scene, View3D *v3d, 
ARegion *ar, float view
                rv3d->viewcamtexcofac[0] = rv3d->viewcamtexcofac[1] = 1.0f;
                rv3d->viewcamtexcofac[2] = rv3d->viewcamtexcofac[3] = 0.0f;
        }
-       
-       /* calculate pixelsize factor once, is used for lamps and obcenters */
+
+       /**
+        * Calculate pixel-size factor once, is used for lamps and object 
centers.
+        * Used by #ED_view3d_pixel_size and typically not accessed directly.
+        *
+        * \note #BKE_camera_params_compute_viewplane' also calculates a 
pixel-size value,
+        * passed to #RE_SetPixelSize, in ortho mode this is compatible with 
this value,
+        * but in perspective mode its offset by the near-clip.
+        *
+        * 'RegionView3D.pixsize' is used for viewport drawing, not rendering.
+        */
        {
                /* note:  '1.0f / len_v3(v1)'  replaced  
'len_v3(rv3d->viewmat[0])'
                 * because of float point precision problems at large values 
[#23908] */

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to