Made aspx/y into floats so we can render precise regions (for apricot terrain baking)

This commit is contained in:
2008-04-09 15:46:26 +00:00
parent 9f6080cf1b
commit 235f793f28
4 changed files with 60 additions and 51 deletions

View File

@@ -125,14 +125,14 @@ def imageFromObjectsOrtho(objects, path, width, height, smooth, alpha= True, cam
# camera is wider then image res. # camera is wider then image res.
# to make the image wider, reduce the aspy # to make the image wider, reduce the aspy
asp_diff= asp_image_res/asp_cam_mat asp_diff= asp_image_res/asp_cam_mat
min_asp= int(round(asp_diff * 200)) min_asp= asp_diff * 200
#print 'X', min_asp #print 'X', min_asp
elif asp_cam_mat < asp_image_res: # asp_cam_mat < asp_image_res elif asp_cam_mat < asp_image_res: # asp_cam_mat < asp_image_res
# camera is narrower then image res # camera is narrower then image res
# to make the image narrower, reduce the aspx # to make the image narrower, reduce the aspx
asp_diff= asp_cam_mat/asp_image_res asp_diff= asp_cam_mat/asp_image_res
min_asp= int(round(asp_diff * 200)) min_asp= asp_diff * 200
#print 'Y', min_asp #print 'Y', min_asp
else: else:
min_asp= 200 min_asp= 200

View File

@@ -201,14 +201,6 @@ typedef struct RenderData {
* The desired number of pixels in the y direction * The desired number of pixels in the y direction
*/ */
short ysch; short ysch;
/**
* Adjustment factors for the aspect ratio in the x direction
*/
short xasp;
/**
* Adjustment factors for the aspect ratio in the x direction
*/
short yasp;
/** /**
* The number of part to use in the x direction * The number of part to use in the x direction
*/ */
@@ -225,7 +217,7 @@ typedef struct RenderData {
short bufflag; short bufflag;
short quality; short quality;
short rpad; short rpad, rpad1, rpad2;
/** /**
* Flags for render settings. Use bit-masking to access the settings. * Flags for render settings. Use bit-masking to access the settings.
@@ -260,6 +252,15 @@ typedef struct RenderData {
/* information on different layers to be rendered */ /* information on different layers to be rendered */
ListBase layers; ListBase layers;
short actlay, pad; short actlay, pad;
/**
* Adjustment factors for the aspect ratio in the x direction, was a short in 2.45
*/
float xasp;
/**
* Adjustment factors for the aspect ratio in the x direction, was a short in 2.45
*/
float yasp;
float frs_sec_base; float frs_sec_base;

View File

@@ -919,6 +919,18 @@ PyObject *RenderData_GaussFilterSize( BPy_RenderData * self, PyObject * args )
0.5f, 1.5f ); 0.5f, 1.5f );
} }
PyObject *RenderData_AspectRatioX( BPy_RenderData * self, PyObject * args )
{
return M_Render_GetSetAttributeFloat( args, &self->renderContext->xasp,
1.0f, 200.0f );
}
PyObject *RenderData_AspectRatioY( BPy_RenderData * self, PyObject * args )
{
return M_Render_GetSetAttributeFloat( args, &self->renderContext->yasp,
1.0f, 200.0f );
}
PyObject *RenderData_StartFrame( BPy_RenderData * self, PyObject * args ) PyObject *RenderData_StartFrame( BPy_RenderData * self, PyObject * args )
{ {
return M_Render_GetSetAttributeInt( args, &self->renderContext->sfra, return M_Render_GetSetAttributeInt( args, &self->renderContext->sfra,
@@ -949,18 +961,6 @@ PyObject *RenderData_ImageSizeY( BPy_RenderData * self, PyObject * args )
4, 10000 ); 4, 10000 );
} }
PyObject *RenderData_AspectRatioX( BPy_RenderData * self, PyObject * args )
{
return M_Render_GetSetAttributeShort( args, &self->renderContext->xasp,
1, 200 );
}
PyObject *RenderData_AspectRatioY( BPy_RenderData * self, PyObject * args )
{
return M_Render_GetSetAttributeShort( args, &self->renderContext->yasp,
1, 200 );
}
static int RenderData_setRenderer( BPy_RenderData * self, PyObject * value ) static int RenderData_setRenderer( BPy_RenderData * self, PyObject * value )
{ {
int type; int type;
@@ -1868,6 +1868,12 @@ static PyObject *RenderData_getFloatAttr( BPy_RenderData *self, void *type )
case EXPP_RENDER_ATTR_BAKEBIAS: case EXPP_RENDER_ATTR_BAKEBIAS:
param = self->renderContext->bake_biasdist; param = self->renderContext->bake_biasdist;
break; break;
case EXPP_RENDER_ATTR_ASPECTX:
param = (long)self->renderContext->xasp;
break;
case EXPP_RENDER_ATTR_ASPECTY:
param = (long)self->renderContext->yasp;
break;
default: default:
return EXPP_ReturnPyObjError( PyExc_RuntimeError, return EXPP_ReturnPyObjError( PyExc_RuntimeError,
"undefined type constant in RenderData_getFloatAttr" ); "undefined type constant in RenderData_getFloatAttr" );
@@ -1911,6 +1917,16 @@ static int RenderData_setFloatAttrClamp( BPy_RenderData *self, PyObject *value,
max = 1000.0f; max = 1000.0f;
param = &self->renderContext->bake_biasdist; param = &self->renderContext->bake_biasdist;
break; break;
case EXPP_RENDER_ATTR_ASPECTX:
min = 1.0f;
max = 200.0f;
param = &self->renderContext->xasp;
break;
case EXPP_RENDER_ATTR_ASPECTY:
min = 1.0f;
max = 200.0f;
param = &self->renderContext->yasp;
break;
default: default:
return EXPP_ReturnIntError( PyExc_RuntimeError, return EXPP_ReturnIntError( PyExc_RuntimeError,
"undefined type constant in RenderData_setFloatAttrClamp" ); "undefined type constant in RenderData_setFloatAttrClamp" );
@@ -1933,12 +1949,6 @@ static PyObject *RenderData_getIValueAttr( BPy_RenderData *self, void *type )
case EXPP_RENDER_ATTR_YPARTS: case EXPP_RENDER_ATTR_YPARTS:
param = (long)self->renderContext->yparts; param = (long)self->renderContext->yparts;
break; break;
case EXPP_RENDER_ATTR_ASPECTX:
param = (long)self->renderContext->xasp;
break;
case EXPP_RENDER_ATTR_ASPECTY:
param = (long)self->renderContext->yasp;
break;
case EXPP_RENDER_ATTR_CFRAME: case EXPP_RENDER_ATTR_CFRAME:
param = (long)self->renderContext->cfra; param = (long)self->renderContext->cfra;
break; break;
@@ -1996,18 +2006,6 @@ static int RenderData_setIValueAttrClamp( BPy_RenderData *self, PyObject *value,
size = 'h'; size = 'h';
param = &self->renderContext->yparts; param = &self->renderContext->yparts;
break; break;
case EXPP_RENDER_ATTR_ASPECTX:
min = 1;
max = 200;
size = 'h';
param = &self->renderContext->xasp;
break;
case EXPP_RENDER_ATTR_ASPECTY:
min = 1;
max = 200;
size = 'h';
param = &self->renderContext->yasp;
break;
case EXPP_RENDER_ATTR_CFRAME: case EXPP_RENDER_ATTR_CFRAME:
min = 1; min = 1;
max = MAXFRAME; max = MAXFRAME;
@@ -2726,14 +2724,6 @@ static PyGetSetDef BPy_RenderData_getseters[] = {
(getter)RenderData_getIValueAttr, (setter)RenderData_setIValueAttrClamp, (getter)RenderData_getIValueAttr, (setter)RenderData_setIValueAttrClamp,
"Number of vertical parts for image render", "Number of vertical parts for image render",
(void *)EXPP_RENDER_ATTR_YPARTS}, (void *)EXPP_RENDER_ATTR_YPARTS},
{"aspectX",
(getter)RenderData_getIValueAttr, (setter)RenderData_setIValueAttrClamp,
"Horizontal aspect ratio",
(void *)EXPP_RENDER_ATTR_ASPECTX},
{"aspectY",
(getter)RenderData_getIValueAttr, (setter)RenderData_setIValueAttrClamp,
"Vertical aspect ratio",
(void *)EXPP_RENDER_ATTR_ASPECTY},
{"cFrame", {"cFrame",
(getter)RenderData_getIValueAttr, (setter)RenderData_setIValueAttrClamp, (getter)RenderData_getIValueAttr, (setter)RenderData_setIValueAttrClamp,
"The current frame for rendering", "The current frame for rendering",
@@ -2771,6 +2761,14 @@ static PyGetSetDef BPy_RenderData_getseters[] = {
(getter)RenderData_getFloatAttr, (setter)RenderData_setFloatAttrClamp, (getter)RenderData_getFloatAttr, (setter)RenderData_setFloatAttrClamp,
"Motion blur factor", "Motion blur factor",
(void *)EXPP_RENDER_ATTR_MBLURFACTOR}, (void *)EXPP_RENDER_ATTR_MBLURFACTOR},
{"aspectX",
(getter)RenderData_getFloatAttr, (setter)RenderData_setFloatAttrClamp,
"Horizontal aspect ratio",
(void *)EXPP_RENDER_ATTR_ASPECTX},
{"aspectY",
(getter)RenderData_getFloatAttr, (setter)RenderData_setFloatAttrClamp,
"Vertical aspect ratio",
(void *)EXPP_RENDER_ATTR_ASPECTY},
{"mapOld", {"mapOld",
(getter)RenderData_getMapOld, (setter)RenderData_setMapOld, (getter)RenderData_getMapOld, (setter)RenderData_setMapOld,
"Number of frames the Map Old will last", "Number of frames the Map Old will last",

View File

@@ -2497,8 +2497,18 @@ static void render_panel_format(void)
uiBlockBeginAlign(block); uiBlockBeginAlign(block);
uiDefButS(block, NUM,REDRAWVIEWCAM,"SizeX:", 892 ,136,112,27, &G.scene->r.xsch, 4.0, 10000.0, 0, 0, "The image width in pixels"); uiDefButS(block, NUM,REDRAWVIEWCAM,"SizeX:", 892 ,136,112,27, &G.scene->r.xsch, 4.0, 10000.0, 0, 0, "The image width in pixels");
uiDefButS(block, NUM,REDRAWVIEWCAM,"SizeY:", 1007,136,112,27, &G.scene->r.ysch, 4.0,10000.0, 0, 0, "The image height in scanlines"); uiDefButS(block, NUM,REDRAWVIEWCAM,"SizeY:", 1007,136,112,27, &G.scene->r.ysch, 4.0,10000.0, 0, 0, "The image height in scanlines");
uiDefButS(block, NUM,REDRAWVIEWCAM,"AspX:", 892 ,114,112,20, &G.scene->r.xasp, 1.0,200.0, 0, 0, "The horizontal aspect ratio");
uiDefButS(block, NUM,REDRAWVIEWCAM,"AspY:", 1007,114,112,20, &G.scene->r.yasp, 1.0,200.0, 0, 0, "The vertical aspect ratio"); uiDefButF(block, NUM, REDRAWVIEWCAM, "AspX:",
892 ,114,112,20,
&G.scene->r.xasp,
1, 200, 100, 2,
"Horizontal Aspect Ratio");
uiDefButF(block, NUM, REDRAWVIEWCAM, "AspY:",
1007,114,112,20,
&G.scene->r.yasp,
1, 200, 100, 2,
"Vertical Aspect Ratio");
uiBlockEndAlign(block); uiBlockEndAlign(block);
yofs = 54; yofs = 54;