Index: blender/makesdna/DNA_scene_types.h =================================================================== --- blender/makesdna/DNA_scene_types.h (revision 12573) +++ blender/makesdna/DNA_scene_types.h (working copy) @@ -498,6 +498,7 @@ #define R_THREADS 0x80000 #define R_SPEED 0x100000 #define R_SSS 0x200000 +#define R_OSA_CLAMPHDR 0x400000 /* filtertype */ #define R_FILTER_BOX 0 @@ -528,7 +529,7 @@ #define R_EXR_TILE_FILE 0x0400 #define R_COMP_FREE 0x0800 #define R_NO_IMAGE_LOAD 0x1000 -#define R_NO_TEX 0x2000 +#define R_NO_TEX 0x2000 #define R_STAMP_INFO 0x4000 /* r->stamp */ Index: blender/render/intern/source/pixelblending.c =================================================================== --- blender/render/intern/source/pixelblending.c (revision 12573) +++ blender/render/intern/source/pixelblending.c (working copy) @@ -42,6 +42,7 @@ #include "pixelblending.h" #include "gammaCorrectionTables.h" + /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* defined in pipeline.c, is hardcopy of active dynamic allocated Render */ /* only to be used here in this file, it's for speed */ @@ -169,6 +170,12 @@ b= col[2]; al= col[3]; + if (R.r.mode & R_OSA_CLAMPHDR) { + if (r> 1.0f) r = 1.0f; + if (g> 1.0f) g = 1.0f; + if (b> 1.0f) b = 1.0f; + } + rb2= rowbuf-4; rb3= rb2-4*row_w; rb1= rb2+4*row_w; Index: blender/src/buttons_scene.c =================================================================== --- blender/src/buttons_scene.c (revision 12573) +++ blender/src/buttons_scene.c (working copy) @@ -1291,6 +1291,7 @@ uiDefButS(block, ROW,B_DIFF,"8", 400,88,29,20,&G.scene->r.osa,2.0,8.0, 0, 0, "Sets oversample level to 8 (Recommended)"); uiDefButS(block, ROW,B_DIFF,"11", 431,88,29,20,&G.scene->r.osa,2.0,11.0, 0, 0, "Sets oversample level to 11"); uiDefButS(block, ROW,B_DIFF,"16", 462,88,29,20,&G.scene->r.osa,2.0,16.0, 0, 0, "Sets oversample level to 16"); + uiDefButBitI(block, TOG, R_OSA_CLAMPHDR, B_DIFF, "Clamp HDR", 369,68,122,20,&G.scene->r.mode, 0, 0, 0, 0, "Clamp high dynamic range colour channels to 1.0 before combining samples"); uiBlockEndAlign(block); uiBlockBeginAlign(block); @@ -1299,8 +1300,8 @@ uiBlockEndAlign(block); uiBlockBeginAlign(block); - uiDefButS(block, NUM,B_DIFF,"Xparts:", 369,46,95,29,&G.scene->r.xparts,1.0, 512.0, 0, 0, "Sets the number of horizontal parts to render image in (For panorama sets number of camera slices)"); - uiDefButS(block, NUM,B_DIFF,"Yparts:", 465,46,95,29,&G.scene->r.yparts,1.0, 64.0, 0, 0, "Sets the number of vertical parts to render image in"); + uiDefButS(block, NUM,B_DIFF,"Xparts:", 369,40,95,24,&G.scene->r.xparts,1.0, 512.0, 0, 0, "Sets the number of horizontal parts to render image in (For panorama sets number of camera slices)"); + uiDefButS(block, NUM,B_DIFF,"Yparts:", 465,40,95,24,&G.scene->r.yparts,1.0, 64.0, 0, 0, "Sets the number of vertical parts to render image in"); uiBlockEndAlign(block); uiBlockBeginAlign(block);