Skip to content
Snippets Groups Projects
Commit 0848aed9 authored by Stephen Swaney's avatar Stephen Swaney
Browse files

More Material settings: mirror and transparency.

Contributed by Joilnen B. Leite (pidhash)
parent 37f57288
Branches
Tags
No related merge requests found
......@@ -71,7 +71,12 @@
#define EXPP_MAT_MODE_HALOSHADE MA_HALO_SHADE
#define EXPP_MAT_MODE_HALOFLARE MA_HALO_FLARE
#define EXPP_MAT_MODE_RADIO MA_RADIO
#define EXPP_MAT_MODE_RAYMIRROR MA_RAYMIRROR
#define EXPP_MAT_MODE_ZTRA MA_ZTRA
#define EXPP_MAT_MODE_RAYTRANSP MA_RAYTRANSP
#define EXPP_MAT_MODE_ONLYSHADOW MA_ONLYSHADOW
#define EXPP_MAT_MODE_NOMIST MA_NOMIST
#define EXPP_MAT_MODE_ENV MA_ENV
/* Material MIN, MAX values */
#define EXPP_MAT_ADD_MIN 0.0
#define EXPP_MAT_ADD_MAX 1.0
......@@ -115,6 +120,35 @@
#define EXPP_MAT_NRINGS_MIN 0
#define EXPP_MAT_NRINGS_MAX 24
#define EXPP_MAT_RAYMIRR_MIN 0.0
#define EXPP_MAT_RAYMIRR_MAX 1.0
#define EXPP_MAT_MIRRDEPTH_MIN 0
#define EXPP_MAT_MIRRDEPTH_MAX 10
#define EXPP_MAT_FRESNELMIRR_MIN 0.0
#define EXPP_MAT_FRESNELMIRR_MAX 5.0
#define EXPP_MAT_FRESNELMIRRFAC_MIN 1.0
#define EXPP_MAT_FRESNELMIRRFAC_MAX 5.0
#define EXPP_MAT_ZOFFS_MIN 0.0
#define EXPP_MAT_ZOFFS_MAX 10.0
#define EXPP_MAT_IOR_MIN 1.0
#define EXPP_MAT_IOR_MAX 3.0
#define EXPP_MAT_TRANSDEPTH_MIN 0
#define EXPP_MAT_TRANSDEPTH_MAX 10
#define EXPP_MAT_FRESNELTRANS_MIN 0.0
#define EXPP_MAT_FRESNELTRANS_MAX 5.0
#define EXPP_MAT_FRESNELTRANSFAC_MIN 1.0
#define EXPP_MAT_FRESNELTRANSFAC_MAX 5.0
#define EXPP_MAT_SPECTRANS_MIN 0.0
#define EXPP_MAT_SPECTRANS_MAX 1.0
#define EXPP_MAT_MIRRTRANSADD_MIN 0.0
#define EXPP_MAT_MIRRTRANSADD_MAX 1.0
/*****************************************************************************/
/* Python API function prototypes for the Material module. */
/*****************************************************************************/
......@@ -292,6 +326,13 @@ static PyObject *Lamp_ModesDict (void)
EXPP_ADDCONST(HALOSHADE);
EXPP_ADDCONST(HALOFLARE);
EXPP_ADDCONST(RADIO);
EXPP_ADDCONST(RAYMIRROR);
EXPP_ADDCONST(ZTRA);
EXPP_ADDCONST(RAYTRANSP);
EXPP_ADDCONST(ONLYSHADOW);
EXPP_ADDCONST(NOMIST);
EXPP_ADDCONST(ENV);
}
return Modes;
......@@ -348,6 +389,14 @@ static PyObject *Material_getNFlares(BPy_Material *self);
static PyObject *Material_getNStars(BPy_Material *self);
static PyObject *Material_getNLines(BPy_Material *self);
static PyObject *Material_getNRings(BPy_Material *self);
static PyObject *Material_getRayMirr(BPy_Material *self);
static PyObject *Material_getMirrDepth(BPy_Material *self);
static PyObject *Material_getFresnelMirr(BPy_Material *self);
static PyObject *Material_getFresnelMirrFac(BPy_Material *self);
static PyObject *Material_getIOR(BPy_Material *self);
static PyObject *Material_getTransDepth(BPy_Material *self);
static PyObject *Material_getFresnelTrans(BPy_Material *self);
static PyObject *Material_getFresnelTransFac(BPy_Material *self);
static PyObject *Material_getTextures(BPy_Material *self);
static PyObject *Material_setIpo(BPy_Material *self, PyObject *args);
static PyObject *Material_clearIpo(BPy_Material *self);
......@@ -377,6 +426,16 @@ static PyObject *Material_setNFlares(BPy_Material *self, PyObject *args);
static PyObject *Material_setNStars(BPy_Material *self, PyObject *args);
static PyObject *Material_setNLines(BPy_Material *self, PyObject *args);
static PyObject *Material_setNRings(BPy_Material *self, PyObject *args);
/* ** Mirror and transp ** */
static PyObject *Material_setRayMirr(BPy_Material *self, PyObject *args);
static PyObject *Material_setMirrDepth(BPy_Material *self, PyObject *args);
static PyObject *Material_setFresnelMirr(BPy_Material *self, PyObject *args);
static PyObject *Material_setFresnelMirrFac(BPy_Material *self, PyObject *args);
static PyObject *Material_setIOR(BPy_Material *self, PyObject *args);
static PyObject *Material_setTransDepth(BPy_Material *self, PyObject *args);
static PyObject *Material_setFresnelTrans(BPy_Material *self, PyObject *args);
static PyObject *Material_setFresnelTransFac(BPy_Material *self, PyObject *args);
/* ** */
static PyObject *Material_setTexture(BPy_Material *self, PyObject *args);
static PyObject *Material_clearTexture(BPy_Material *self, PyObject *args);
......@@ -445,6 +504,22 @@ static PyMethodDef BPy_Material_methods[] = {
"() - Return Material's number of lines in halo"},
{"getNRings", (PyCFunction)Material_getNRings, METH_NOARGS,
"() - Return Material's number of rings in halo"},
{"getRayMirr", (PyCFunction)Material_getRayMirr, METH_NOARGS,
"() - Return mount mirror"},
{"getMirrDepth", (PyCFunction)Material_getMirrDepth, METH_NOARGS,
"() - Return amount mirror depth"},
{"getFresnelMirr", (PyCFunction)Material_getFresnelMirr, METH_NOARGS,
"() - Return fresnel power for refractions"},
{"getFresnelMirrFac", (PyCFunction)Material_getFresnelMirrFac, METH_NOARGS,
"() - Return fresnel power for refractions factor"},
{"getIOR", (PyCFunction)Material_getIOR, METH_NOARGS,
"() - Return IOR"},
{"getTransDepth", (PyCFunction)Material_getTransDepth, METH_NOARGS,
"() - Return amount inter-refractions"},
{"getFresnelTrans", (PyCFunction)Material_getFresnelTrans, METH_NOARGS,
"() - Return fresnel power for refractions"},
{"getFresnelTransFac", (PyCFunction)Material_getFresnelTransFac, METH_NOARGS,
"() - Return fresnel power for refractions factor"},
{"getTextures", (PyCFunction)Material_getTextures, METH_NOARGS,
"() - Return Material's texture list as a tuple"},
{"setName", (PyCFunction)Material_setName, METH_VARARGS,
......@@ -503,6 +578,22 @@ static PyMethodDef BPy_Material_methods[] = {
"(i) - Set Material's number of lines in halo - [0, 250]"},
{"setNRings", (PyCFunction)Material_setNRings, METH_VARARGS,
"(i) - Set Material's number of rings in halo - [0, 24]"},
{"setRayMirr", (PyCFunction)Material_setRayMirr, METH_VARARGS,
"(f) - Set amount mirror - [0.0, 1.0]"},
{"setMirrDepth", (PyCFunction)Material_setMirrDepth, METH_VARARGS,
"(i) - Set amount inter-reflections - [0, 10]"},
{"setFresnelMirr", (PyCFunction)Material_setFresnelMirr, METH_VARARGS,
"(f) - Set fresnel power for mirror - [0.0, 5.0]"},
{"setFresnelMirrFac", (PyCFunction)Material_setFresnelMirrFac, METH_VARARGS,
"(f) - Set blend fac for mirror fresnel - [1.0, 5.0]"},
{"setIOR", (PyCFunction)Material_setIOR, METH_VARARGS,
"(f) - Set IOR - [1.0, 3.0]"},
{"setTransDepth", (PyCFunction)Material_setTransDepth, METH_VARARGS,
"(i) - Set amount inter-refractions - [0, 10]"},
{"setFresnelTrans", (PyCFunction)Material_setFresnelTrans, METH_VARARGS,
"(f) - Set fresnel power for refractions - [0.0, 5.0]"},
{"setFresnelTransFac", (PyCFunction)Material_setFresnelTransFac, METH_VARARGS,
"(f) - Set fresnel power for refractions factot- [0.0, 5.0]"},
{"setTexture", (PyCFunction)Material_setTexture, METH_VARARGS,
"(n,tex,texco=0,mapto=0) - Set numbered texture to tex"},
{"clearTexture", (PyCFunction)Material_clearTexture, METH_VARARGS,
......@@ -606,7 +697,7 @@ PyObject *Material_CreatePyObject (struct Material *mat)
pymat->col = (BPy_rgbTuple *)rgbTuple_New(col);
pymat->amb = (BPy_rgbTuple *)rgbTuple_New(amb);
pymat->spec = (BPy_rgbTuple *)rgbTuple_New(spec);
pymat->spec = (BPy_rgbTuple *)rgbTuple_New(spec);
pymat->mir = (BPy_rgbTuple *)rgbTuple_New(mir);
return (PyObject *)pymat;
......@@ -904,6 +995,86 @@ static PyObject *Material_getNRings(BPy_Material *self)
"couldn't get Material.nRings attribute");
}
static PyObject *Material_getRayMirr(BPy_Material *self)
{
PyObject *attr = PyFloat_FromDouble((double)self->material->ray_mirror);
if (attr) return attr;
return EXPP_ReturnPyObjError (PyExc_RuntimeError,
"couldn't get Material.nRings attribute");
}
static PyObject *Material_getMirrDepth(BPy_Material *self)
{
PyObject *attr = PyInt_FromLong((long)self->material->ray_depth);
if (attr) return attr;
return EXPP_ReturnPyObjError (PyExc_RuntimeError,
"couldn't get Material.nRings attribute");
}
static PyObject *Material_getFresnelMirr(BPy_Material *self)
{
PyObject *attr = PyFloat_FromDouble((double)self->material->fresnel_mir);
if (attr) return attr;
return EXPP_ReturnPyObjError (PyExc_RuntimeError,
"couldn't get Material.nRings attribute");
}
static PyObject *Material_getFresnelMirrFac(BPy_Material *self)
{
PyObject *attr = PyFloat_FromDouble((double)self->material->fresnel_mir_i);
if (attr) return attr;
return EXPP_ReturnPyObjError (PyExc_RuntimeError,
"couldn't get Material.nRings attribute");
}
static PyObject *Material_getIOR(BPy_Material *self)
{
PyObject *attr = PyFloat_FromDouble((double)self->material->ang);
if (attr) return attr;
return EXPP_ReturnPyObjError (PyExc_RuntimeError,
"couldn't get Material.nRings attribute");
}
static PyObject *Material_getTransDepth(BPy_Material *self)
{
PyObject *attr = PyInt_FromLong((long)self->material->ray_depth_tra);
if (attr) return attr;
return EXPP_ReturnPyObjError (PyExc_RuntimeError,
"couldn't get Material.nRings attribute");
}
static PyObject *Material_getFresnelTrans(BPy_Material *self)
{
PyObject *attr = PyFloat_FromDouble((double)self->material->fresnel_tra);
if (attr) return attr;
return EXPP_ReturnPyObjError (PyExc_RuntimeError,
"couldn't get Material.nRings attribute");
}
static PyObject *Material_getFresnelTransFac(BPy_Material *self)
{
PyObject *attr = PyFloat_FromDouble((double)self->material->fresnel_tra_i);
if (attr) return attr;
return EXPP_ReturnPyObjError (PyExc_RuntimeError,
"couldn't get Material.nRings attribute");
}
static PyObject *Material_getTextures(BPy_Material *self)
{
int i;
......@@ -934,7 +1105,7 @@ static PyObject *Material_getTextures(BPy_Material *self)
return tuple;
}
static PyObject *Material_setIpo(BPy_Material *self, PyObject *args)
PyObject *Material_setIpo(BPy_Material *self, PyObject *args)
{
PyObject *pyipo = 0;
Ipo *ipo = NULL;
......@@ -1007,20 +1178,22 @@ static PyObject *Material_setName(BPy_Material *self, PyObject *args)
static PyObject *Material_setMode(BPy_Material *self, PyObject *args)
{
int i, flag = 0;
char *m[22] = {NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
if (!PyArg_ParseTuple(args, "|ssssssssssssssssssssss",
&m[0], &m[1], &m[2], &m[3], &m[4], &m[5], &m[6],
&m[7], &m[8], &m[9], &m[10], &m[11], &m[12], &m[13],
&m[14], &m[15], &m[16], &m[17], &m[18], &m[19], &m[20], &m[21]))
char *m[28] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL,NULL,NULL, NULL, NULL, NULL};
if (!PyArg_ParseTuple( args, "|ssssssssssssssssssssssssssss",
&m[0], &m[1], &m[2], &m[3], &m[4], &m[5], &m[6],
&m[7], &m[8], &m[9], &m[10], &m[11], &m[12], &m[13],
&m[14], &m[15], &m[16], &m[17], &m[18], &m[19], &m[20], &m[21],
&m[22],&m[23],&m[24], &m[25], &m[26], &m[27]))
{
return (EXPP_ReturnPyObjError (PyExc_AttributeError,
"expected from none to 22 string argument(s)"));
}
for (i = 0; i < 22; i++) {
for (i = 0; i < 28; i++) {
if (m[i] == NULL) break;
if (strcmp(m[i], "Traceable") == 0)
flag |= EXPP_MAT_MODE_TRACEABLE;
......@@ -1066,6 +1239,20 @@ static PyObject *Material_setMode(BPy_Material *self, PyObject *args)
flag |= EXPP_MAT_MODE_HALOFLARE;
else if (strcmp(m[i], "Radio") == 0)
flag |= EXPP_MAT_MODE_RADIO;
/* ** Mirror ** */
else if (strcmp(m[i], "RayMirr") == 0)
flag |= EXPP_MAT_MODE_RAYMIRROR;
else if (strcmp(m[i], "ZTransp") == 0)
flag |= EXPP_MAT_MODE_ZTRA;
else if (strcmp(m[i], "RayTransp") == 0)
flag |= EXPP_MAT_MODE_RAYTRANSP;
else if (strcmp(m[i], "OnlyShadow") == 0)
flag |= EXPP_MAT_MODE_ONLYSHADOW;
else if (strcmp(m[i], "NoMist") == 0)
flag |= EXPP_MAT_MODE_NOMIST;
else if (strcmp(m[i], "Env") == 0)
flag |= EXPP_MAT_MODE_ENV;
/* ** */
else
return (EXPP_ReturnPyObjError (PyExc_AttributeError,
"unknown Material mode argument"));
......@@ -1408,6 +1595,119 @@ static PyObject *Material_setNRings(BPy_Material *self, PyObject *args)
return EXPP_incr_ret (Py_None);
}
static PyObject *Material_setRayMirr(BPy_Material *self, PyObject *args)
{
float value;
if (!PyArg_ParseTuple(args, "f", &value))
return (EXPP_ReturnPyObjError (PyExc_TypeError,
"expected float argument in [0.0, 1.0]"));
self->material->ray_mirror = EXPP_ClampFloat (value, EXPP_MAT_RAYMIRR_MIN,
EXPP_MAT_RAYMIRR_MAX);
return EXPP_incr_ret (Py_None);
}
static PyObject *Material_setMirrDepth(BPy_Material *self, PyObject *args)
{
int value;
if (!PyArg_ParseTuple(args, "i", &value))
return (EXPP_ReturnPyObjError (PyExc_TypeError,
"expected float argument in [0, 10]"));
self->material->ray_depth = EXPP_ClampInt (value, EXPP_MAT_MIRRDEPTH_MIN,
EXPP_MAT_MIRRDEPTH_MAX);
return EXPP_incr_ret (Py_None);
}
static PyObject *Material_setFresnelMirr(BPy_Material *self, PyObject *args)
{
float value;
if (!PyArg_ParseTuple(args, "f", &value))
return (EXPP_ReturnPyObjError (PyExc_TypeError,
"expected float argument in [0.0, 5.0]"));
self->material->fresnel_mir = EXPP_ClampFloat (value, EXPP_MAT_FRESNELMIRR_MIN,
EXPP_MAT_FRESNELMIRR_MAX);
return EXPP_incr_ret (Py_None);
}
static PyObject *Material_setFresnelMirrFac(BPy_Material *self, PyObject *args)
{
float value;
if (!PyArg_ParseTuple(args, "f", &value))
return (EXPP_ReturnPyObjError (PyExc_TypeError,
"expected float argument in [0.0, 5.0]"));
self->material->fresnel_mir_i = EXPP_ClampFloat (value, EXPP_MAT_FRESNELMIRRFAC_MIN,
EXPP_MAT_FRESNELMIRRFAC_MAX);
return EXPP_incr_ret (Py_None);
}
static PyObject *Material_setIOR(BPy_Material *self, PyObject *args)
{
float value;
if (!PyArg_ParseTuple(args, "f", &value))
return (EXPP_ReturnPyObjError (PyExc_TypeError,
"expected float argument in [0.0, 5.0]"));
self->material->ang = EXPP_ClampFloat (value, EXPP_MAT_IOR_MIN,
EXPP_MAT_IOR_MAX);
return EXPP_incr_ret (Py_None);
}
static PyObject *Material_setTransDepth(BPy_Material *self, PyObject *args)
{
int value;
if (!PyArg_ParseTuple(args, "i", &value))
return (EXPP_ReturnPyObjError (PyExc_TypeError,
"expected float argument in [0, 10]"));
self->material->ray_depth_tra = EXPP_ClampInt (value, EXPP_MAT_TRANSDEPTH_MIN,
EXPP_MAT_TRANSDEPTH_MAX);
return EXPP_incr_ret (Py_None);
}
static PyObject *Material_setFresnelTrans(BPy_Material *self, PyObject *args)
{
float value;
if (!PyArg_ParseTuple(args, "f", &value))
return (EXPP_ReturnPyObjError (PyExc_TypeError,
"expected float argument in [0.0, 5.0]"));
self->material->fresnel_tra = EXPP_ClampFloat (value, EXPP_MAT_FRESNELTRANS_MIN,
EXPP_MAT_FRESNELTRANS_MAX);
return EXPP_incr_ret (Py_None);
}
static PyObject *Material_setFresnelTransFac(BPy_Material *self, PyObject *args)
{
float value;
if (!PyArg_ParseTuple(args, "f", &value))
return (EXPP_ReturnPyObjError (PyExc_TypeError,
"expected float argument in [0.0, 5.0]"));
self->material->fresnel_tra_i = EXPP_ClampFloat (value, EXPP_MAT_FRESNELTRANSFAC_MIN,
EXPP_MAT_FRESNELTRANSFAC_MAX);
return EXPP_incr_ret (Py_None);
}
static PyObject *Material_setTexture(BPy_Material *self, PyObject *args)
{
int texnum;
......@@ -1578,6 +1878,22 @@ static PyObject *Material_getAttr (BPy_Material *self, char *name)
attr = PyInt_FromLong((long)self->material->linec);
else if (strcmp(name, "nRings") == 0)
attr = PyInt_FromLong((long)self->material->ringc);
else if (strcmp (name, "rayMirr") == 0)
attr = PyFloat_FromDouble((double)self->material->ray_mirror);
else if (strcmp (name, "rayMirrDepth") == 0)
attr = PyInt_FromLong((long)self->material->ray_depth);
else if (strcmp (name, "fresnelDepth") == 0)
attr = PyFloat_FromDouble((double)self->material->fresnel_mir);
else if (strcmp (name, "fresnelDepthFac") == 0)
attr = PyFloat_FromDouble((double)self->material->fresnel_mir_i);
else if (strcmp (name, "IOR") == 0)
attr = PyFloat_FromDouble((double)self->material->ang);
else if (strcmp (name, "transDepth") == 0)
attr = PyInt_FromLong((double)self->material->ray_depth_tra);
else if (strcmp (name, "fresnelTrans") == 0)
attr = PyFloat_FromDouble((double)self->material->fresnel_tra);
else if (strcmp (name, "fresnelTransFac") == 0)
attr = PyFloat_FromDouble((double)self->material->fresnel_tra_i);
else if (strcmp(name, "__members__") == 0) {
attr = /* 27 items */
......@@ -1586,7 +1902,9 @@ static PyObject *Material_getAttr (BPy_Material *self, char *name)
"R", "G", "B", "alpha", "amb", "emit", "ref", "spec",
"specTransp", "add", "zOffset", "haloSize", "haloSeed",
"flareSize", "flareBoost", "flareSeed", "subSize", "hard",
"nFlares", "nStars", "nLines", "nRings");
"nFlares", "nStars", "nLines", "nRings", "rayMirr", "rayMirrDepth",
"fresnelDepth", "fresnelDepthFac", "IOR", "transDepth", "fresnelTrans",
"fresnelTransFac");
}
if (!attr)
......@@ -1686,6 +2004,22 @@ static int Material_setAttr (BPy_Material *self, char *name, PyObject *value)
error = Material_setNLines (self, valtuple);
else if (strcmp (name, "nRings") == 0)
error = Material_setNRings (self, valtuple);
else if (strcmp (name, "rayMirr") == 0)
error = Material_setRayMirr(self, valtuple);
else if (strcmp (name, "rayMirrDepth") == 0)
error = Material_setMirrDepth(self, valtuple);
else if (strcmp (name, "fresnelDepth") == 0)
error = Material_setFresnelMirr(self, valtuple);
else if (strcmp (name, "fresnelDepthFac") == 0)
error = Material_setFresnelMirrFac(self, valtuple);
else if (strcmp (name, "IOR") == 0)
error = Material_setIOR(self, valtuple);
else if (strcmp (name, "transDepth") == 0)
error = Material_setTransDepth(self, valtuple);
else if (strcmp (name, "fresnelTrans") == 0)
error = Material_setFresnelTrans(self, valtuple);
else if (strcmp (name, "fresnelTransFac") == 0)
error = Material_setFresnelTransFac(self, valtuple);
else { /* Error */
Py_DECREF(valtuple);
......@@ -1707,7 +2041,7 @@ static int Material_setAttr (BPy_Material *self, char *name, PyObject *value)
/*****************************************************************************/
/* Function: Material_repr */
/* Description: This is a callback function for the BPy_Material type. It */
/* builds a meaninful string to represent material objects. */
/* builds a meaninful string to represent material objects. */
/*****************************************************************************/
static PyObject *Material_repr (BPy_Material *self)
{
......
......@@ -47,7 +47,8 @@ Example::
- HALOTEX - Give halo a texture.
- HALOPUNO - Use the vertex normal to specify the dimension of the halo.
- HALOFLARE - Render halo as a lens flare.
- RAYMIRROR - Enables raytracing for mirror reflection rendering.
- RAYTRANSP - Enables raytracing for transparency rendering.
@warn: Some Modes are only available when the 'Halo' mode is I{off} and
others only when it is I{on}. But these two subsets of modes share the same
numerical values in their Blender C #defines. So, for example, if 'Halo' is
......@@ -114,6 +115,15 @@ class Material:
@cvar nRings: Number of halo rings - [0, 24].
@type ipo: Blender Ipo
@cvar ipo: This Material's ipo.
@cvar rayMirr: Amount mirror reflection for raytrace.
@cvar rayMirrDepth: Amount of inter-reflections calculated maximal.
@cvar fresnelDepth: Power of Fresnel for mirror reflection.
@cvar fresnelDepthFac: Blending factor for Fresnel.
@cvar IOR: Sets the angular index of refraction for raytrace.
@cvar transDepth: Amount of refractions calculated maximal.
@cvar fresnelTrans: Power of Fresnel for transparency.
@cvar fresnelTransFac: Blending factor for Fresnel.
@cvar specTrans: Makes specular areas opaque on transparent materials.
@warning: Most member variables assume values in some [Min, Max] interval.
When trying to set them, the given parameter will be clamped to lie in
that range: if val < Min, then val = Min, if val > Max, then val = Max.
......@@ -474,6 +484,110 @@ class Material:
@param nrings: The new value in [0, 24].
"""
def getRayMirr():
"""
Get amount mirror reflection for raytrace.
@rtype: float
"""
def setRayMirr(nrmirr):
"""
Set amount mirror reflection for raytrace.
@type nrmirr: float
@param nrmirr: The new value in [0.0, 1.0].
"""
def getRayMirrDepth():
"""
Get amount of inter-reflections calculated maximal.
@rtype: int
"""
def setRayMirrDepth(nrmirr):
"""
Set amount mirror reflection for raytrace.
@type nrmirr: int
@param nrmirr: The new value in [0.0, 1.0].
"""
def getFresnelMirr():
"""
Get power of Fresnel for mirror reflection.
@rtype: float
"""
def setFresnelMirr(nrmirr):
"""
Set power of Fresnel for mirror reflection.
@type nrmirr: float
@param nrmirr: The new value in [0.0, 1.0].
"""
def getFresnelMirrFac():
"""
Get the number of Ray Mirror.
@rtype: float
"""
def setFresnelMirrFac(nrmirr):
"""
Set the number of ray mirror
@type nrmirr: float
@param nrmirr: The new value in [0.0, 1.0].
"""
def getIOR():
"""
Get the angular index of refraction for raytrace.
@rtype: float
"""
def setIOR(nrmirr):
"""
Set the angular index of refraction for raytrace.
@type nrmirr: float
@param nrmirr: The new value in [0.0, 1.0].
"""
def getTransDepth():
"""
Get amount of refractions calculated maximal.
@rtype: int
"""
def setTransDepth(nrmirr):
"""
Set amount of refractions calculated maximal.
@type nrmirr: int
@param nrmirr: The new value in [0.0, 1.0].
"""
def getFresnelTrans():
"""
Get power of Fresnel for transparency.
@rtype: float
"""
def setFresnelTrans(nrmirr):
"""
Set power of Fresnel for transparency.
@type nrmirr: float
@param nrmirr: The new value in [0.0, 1.0].
"""
def getFresnelTransFac():
"""
Get blending factor for Fresnel.
@rtype: float
"""
def setFresnelTransFac(nrmirr):
"""
Set blending factor for Fresnel.
@type nrmirr: float
@param nrmirr: The new value in [0.0, 1.0].
"""
def setTexture(index, texture, texco, mapto):
"""
Assign a Blender Texture object to slot number 'number'.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment