[#10529] -p command line option fix
[#8844] Glossy controls Python API
This commit is contained in:
Campbell Barton 2008-05-06 18:57:24 +00:00
parent 4255f3c7ab
commit c0d981f6db
3 changed files with 101 additions and 0 deletions

@ -128,6 +128,14 @@
#define EXPP_MAT_FRESNELMIRR_MAX 5.0 #define EXPP_MAT_FRESNELMIRR_MAX 5.0
#define EXPP_MAT_FRESNELMIRRFAC_MIN 1.0 #define EXPP_MAT_FRESNELMIRRFAC_MIN 1.0
#define EXPP_MAT_FRESNELMIRRFAC_MAX 5.0 #define EXPP_MAT_FRESNELMIRRFAC_MAX 5.0
#define EXPP_MAT_RAYMIRRGLOSS_MIN 0.0
#define EXPP_MAT_RAYMIRRGLOSS_MAX 1.0
#define EXPP_MAT_RAYMIRRGLOSSSAMPLES_MIN 0
#define EXPP_MAT_RAYMIRRGLOSSSAMPLES_MAX 255
#define EXPP_MAT_RAYTRANSPGLOSS_MIN 0.0
#define EXPP_MAT_RAYTRANSPGLOSS_MAX 1.0
#define EXPP_MAT_RAYTRANSPGLOSSSAMPLES_MIN 0
#define EXPP_MAT_RAYTRANSPGLOSSSAMPLES_MAX 255
#define EXPP_MAT_FILTER_MIN 0.0 #define EXPP_MAT_FILTER_MIN 0.0
#define EXPP_MAT_FILTER_MAX 1.0 #define EXPP_MAT_FILTER_MAX 1.0
#define EXPP_MAT_TRANSLUCENCY_MIN 0.0 #define EXPP_MAT_TRANSLUCENCY_MIN 0.0
@ -516,6 +524,10 @@ static int Material_setIOR( BPy_Material * self, PyObject * value );
static int Material_setTransDepth( BPy_Material * self, PyObject * value ); static int Material_setTransDepth( BPy_Material * self, PyObject * value );
static int Material_setFresnelTrans( BPy_Material * self, PyObject * value ); static int Material_setFresnelTrans( BPy_Material * self, PyObject * value );
static int Material_setFresnelTransFac( BPy_Material * self, PyObject * value ); static int Material_setFresnelTransFac( BPy_Material * self, PyObject * value );
static int Material_setGlossMirr( BPy_Material * self, PyObject * value );
static int Material_setGlossMirrSamples( BPy_Material * self, PyObject * value );
static int Material_setGlossTrans( BPy_Material * self, PyObject * value );
static int Material_setGlossTransSamples( BPy_Material * self, PyObject * value );
static int Material_setRigidBodyFriction( BPy_Material * self, PyObject * value ); static int Material_setRigidBodyFriction( BPy_Material * self, PyObject * value );
static int Material_setRigidBodyRestitution( BPy_Material * self, PyObject * value ); static int Material_setRigidBodyRestitution( BPy_Material * self, PyObject * value );
@ -600,6 +612,10 @@ static PyObject *Material_getIOR( BPy_Material * self );
static PyObject *Material_getTransDepth( BPy_Material * self ); static PyObject *Material_getTransDepth( BPy_Material * self );
static PyObject *Material_getFresnelTrans( BPy_Material * self ); static PyObject *Material_getFresnelTrans( BPy_Material * self );
static PyObject *Material_getFresnelTransFac( BPy_Material * self ); static PyObject *Material_getFresnelTransFac( BPy_Material * self );
static PyObject *Material_getGlossMirr( BPy_Material * self );
static PyObject *Material_getGlossMirrSamples( BPy_Material * self );
static PyObject *Material_getGlossTrans( BPy_Material * self );
static PyObject *Material_getGlossTransSamples( BPy_Material * self );
static PyObject *Material_getRigidBodyFriction( BPy_Material * self ); static PyObject *Material_getRigidBodyFriction( BPy_Material * self );
static PyObject *Material_getRigidBodyRestitution( BPy_Material * self ); static PyObject *Material_getRigidBodyRestitution( BPy_Material * self );
@ -720,6 +736,10 @@ static PyMethodDef BPy_Material_methods[] = {
"() - Return fresnel power for refractions"}, "() - Return fresnel power for refractions"},
{"getFresnelMirrFac", ( PyCFunction ) Material_getFresnelMirrFac, METH_NOARGS, {"getFresnelMirrFac", ( PyCFunction ) Material_getFresnelMirrFac, METH_NOARGS,
"() - Return fresnel power for refractions factor"}, "() - Return fresnel power for refractions factor"},
{"getRayTransGloss", ( PyCFunction ) Material_getGlossTrans, METH_NOARGS,
"() - Return amount refraction glossiness"},
{"getRayMirrGlossSamples", ( PyCFunction ) Material_getGlossMirrSamples, METH_NOARGS,
"() - Return amount mirror glossiness"},
{"getFilter", ( PyCFunction ) Material_getFilter, METH_NOARGS, {"getFilter", ( PyCFunction ) Material_getFilter, METH_NOARGS,
"() - Return the amount of filtering when transparent raytrace is enabled"}, "() - Return the amount of filtering when transparent raytrace is enabled"},
{"getTranslucency", ( PyCFunction ) Material_getTranslucency, METH_NOARGS, {"getTranslucency", ( PyCFunction ) Material_getTranslucency, METH_NOARGS,
@ -825,6 +845,10 @@ static PyMethodDef BPy_Material_methods[] = {
"(f) - Set fresnel power for mirror - [0.0, 5.0]"}, "(f) - Set fresnel power for mirror - [0.0, 5.0]"},
{"setFresnelMirrFac", ( PyCFunction ) Matr_oldsetFresnelMirrFac, METH_VARARGS, {"setFresnelMirrFac", ( PyCFunction ) Matr_oldsetFresnelMirrFac, METH_VARARGS,
"(f) - Set blend fac for mirror fresnel - [1.0, 5.0]"}, "(f) - Set blend fac for mirror fresnel - [1.0, 5.0]"},
{"setRayTransGloss", ( PyCFunction ) Material_setGlossTrans, METH_VARARGS,
"(f) - Set amount refraction glossiness - [0.0, 1.0]"},
{"setRayMirrGlossSamples", ( PyCFunction ) Material_setGlossMirrSamples, METH_VARARGS,
"(f) - Set amount mirror glossiness - [0.0, 1.0]"},
{"setFilter", ( PyCFunction ) Matr_oldsetFilter, METH_VARARGS, {"setFilter", ( PyCFunction ) Matr_oldsetFilter, METH_VARARGS,
"(f) - Set the amount of filtering when transparent raytrace is enabled"}, "(f) - Set the amount of filtering when transparent raytrace is enabled"},
{"setTranslucency", ( PyCFunction ) Matr_oldsetTranslucency, METH_VARARGS, {"setTranslucency", ( PyCFunction ) Matr_oldsetTranslucency, METH_VARARGS,
@ -1030,6 +1054,22 @@ static PyGetSetDef BPy_Material_getseters[] = {
(getter)Material_getRefracIndex, (setter)Material_setRefracIndex, (getter)Material_getRefracIndex, (setter)Material_setRefracIndex,
"Material's Index of Refraction (applies to the \"Blinn\" Specular Shader only", "Material's Index of Refraction (applies to the \"Blinn\" Specular Shader only",
NULL}, NULL},
{"glossMir",
(getter)Material_getGlossMirr, (setter)Material_setGlossMirr,
"Reflection glossiness",
NULL},
{"sampGlossMir",
(getter)Material_getGlossMirrSamples, (setter)Material_setGlossMirrSamples,
"Reflection glossiness",
NULL},
{"glossTra",
(getter)Material_getGlossTrans, (setter)Material_setGlossTrans,
"Refraction glossiness",
NULL},
{"sampGlossTra",
(getter)Material_getGlossMirrSamples, (setter)Material_setGlossMirrSamples,
"Refraction glossiness",
NULL},
{"rgbCol", {"rgbCol",
(getter)Material_getRGBCol, (setter)Material_setRGBCol, (getter)Material_getRGBCol, (setter)Material_setRGBCol,
"Diffuse RGB color triplet", "Diffuse RGB color triplet",
@ -1578,6 +1618,26 @@ static PyObject *Material_getFresnelTransFac( BPy_Material * self )
return PyFloat_FromDouble( ( double ) self->material->fresnel_tra_i ); return PyFloat_FromDouble( ( double ) self->material->fresnel_tra_i );
} }
static PyObject *Material_getGlossMirr( BPy_Material * self )
{
return PyFloat_FromDouble( ( double ) self->material->gloss_mir );
}
static PyObject *Material_getGlossMirrSamples( BPy_Material * self )
{
return PyInt_FromLong( ( long ) self->material->samp_gloss_mir );
}
static PyObject *Material_getGlossTrans( BPy_Material * self )
{
return PyFloat_FromDouble( ( double ) self->material->gloss_tra );
}
static PyObject *Material_getGlossTransSamples( BPy_Material * self )
{
return PyInt_FromLong( ( long ) self->material->samp_gloss_tra );
}
static PyObject* Material_getRigidBodyFriction( BPy_Material * self ) static PyObject* Material_getRigidBodyFriction( BPy_Material * self )
{ {
return PyFloat_FromDouble( ( double ) self->material->friction ); return PyFloat_FromDouble( ( double ) self->material->friction );
@ -2058,6 +2118,34 @@ static int Material_setFresnelTransFac( BPy_Material * self, PyObject * value )
EXPP_MAT_FRESNELTRANSFAC_MAX ); EXPP_MAT_FRESNELTRANSFAC_MAX );
} }
static int Material_setGlossMirr( BPy_Material * self, PyObject * value )
{
return EXPP_setFloatClamped ( value, &self->material->gloss_mir,
EXPP_MAT_RAYMIRRGLOSS_MIN,
EXPP_MAT_RAYMIRRGLOSS_MAX );
}
static int Material_setGlossMirrSamples( BPy_Material * self, PyObject * value )
{
return EXPP_setIValueClamped ( value, &self->material->samp_gloss_mir,
EXPP_MAT_RAYMIRRGLOSSSAMPLES_MIN,
EXPP_MAT_RAYMIRRGLOSSSAMPLES_MAX, 'h' );
}
static int Material_setGlossTrans( BPy_Material * self, PyObject * value )
{
return EXPP_setFloatClamped ( value, &self->material->gloss_tra,
EXPP_MAT_RAYTRANSPGLOSS_MIN,
EXPP_MAT_RAYTRANSPGLOSS_MAX );
}
static int Material_setGlossTransSamples( BPy_Material * self, PyObject * value )
{
return EXPP_setIValueClamped ( value, &self->material->samp_gloss_tra,
EXPP_MAT_RAYTRANSPGLOSSSAMPLES_MIN,
EXPP_MAT_RAYTRANSPGLOSSSAMPLES_MAX, 'h' );
}
static int Material_setRigidBodyFriction( BPy_Material * self, PyObject * value ) static int Material_setRigidBodyFriction( BPy_Material * self, PyObject * value )
{ {
return EXPP_setFloatClamped ( value, &self->material->friction, return EXPP_setFloatClamped ( value, &self->material->friction,

@ -237,6 +237,18 @@ class Material:
@ivar rayMirr: Mirror reflection amount for raytrace. @ivar rayMirr: Mirror reflection amount for raytrace.
Value is clamped to the range [0.0,1.0]. Value is clamped to the range [0.0,1.0].
@type rayMirr: float @type rayMirr: float
@ivar glossMir: Amount of reflection glossy.
Value is clamped to the range [0.0,1.0].
@type glossMir: float
@ivar sampGloss_mir: Reflection glossy samples.
Value is clamped to the range [1,1024].
@type sampGloss_mir: int
@ivar glossTra: Amount of refraction glossy.
Value is clamped to the range [0.0,1.0].
@type glossTra: float
@ivar sampGlossTra: Refraction glossy samples.
Value is clamped to the range [1,1024].
@type sampGlossTra: int
@ivar rayMirrDepth: Amount of raytrace inter-reflections. @ivar rayMirrDepth: Amount of raytrace inter-reflections.
Value is clamped to the range [0,10]. Value is clamped to the range [0,10].
@type rayMirrDepth: int @type rayMirrDepth: int

@ -451,6 +451,7 @@ int main(int argc, char **argv)
sizx= atoi(argv[a]); sizx= atoi(argv[a]);
a++; a++;
sizy= atoi(argv[a]); sizy= atoi(argv[a]);
G.windowstate = G_WINDOWSTATE_BORDER;
break; break;
case 'd': case 'd':