86 float fac0, fac1, fac2, fac3;
96 texres->
nor[0] = (fac0 - fac1) / 3.0f;
97 texres->
nor[1] = (fac0 - fac2) / 3.0f;
98 texres->
nor[2] = (fac0 - fac3) / 3.0f;
103 texres->
nor[0] = texres->
tin - texres->
nor[0];
104 texres->
nor[1] = texres->
tin - texres->
nor[1];
105 texres->
nor[2] = texres->
tin - texres->
nor[2];
122 texres->
tin = (1.0f +
x) / 2.0f;
125 texres->
tin = (1.0f +
x) / 2.0f;
126 if (texres->
tin < 0.0f) {
130 texres->
tin *= texres->
tin;
134 texres->
tin = (1.0f +
x) / 2.0f;
135 if (texres->
tin <= 0.0f) {
138 else if (texres->
tin >= 1.0f) {
143 texres->
tin = (3.0f *
t - 2.0f *
t * texres->
tin);
147 texres->
tin = (2.0f +
x +
y) / 4.0f;
153 texres->
tin = 1.0f -
sqrtf(
x *
x +
y *
y + texvec[2] * texvec[2]);
154 if (texres->
tin < 0.0f) {
158 texres->
tin *= texres->
tin;
215 texres->
tr = texres->
tin;
243 a = 0.5f + 0.5f *
sinf(
a);
251 const float b = 2 *
M_PI;
253 int n = (int)(
a / b);
264 const float b = 2 *
M_PI;
265 const float rmax = 1.0;
267 a = rmax - 2.0f *
fabsf(
floorf((
a * (1.0f / b)) + 0.5f) - (
a * (1.0f / b)));
291 wi = waveform[wf]((
x +
y +
z) * 10.0f);
294 wi = waveform[wf](
sqrtf(
x *
x +
y *
y +
z *
z) * 20.0f);
300 wi = waveform[wf]((
x +
y +
z) * 10.0f + wi);
306 wi = waveform[wf](
sqrtf(
x *
x +
y *
y +
z *
z) * 20.0f + wi);
348 n = 5.0f * (
x +
y +
z);
359 mi = waveform[wf](mi);
403 x =
sinf((texvec[0] + texvec[1] + texvec[2]) * 5.0f);
404 y =
cosf((-texvec[0] + texvec[1] - texvec[2]) * 5.0f);
405 z = -
cosf((-texvec[0] - texvec[1] + texvec[2]) * 5.0f);
456 texres->
tr = 0.5f -
x;
457 texres->
tg = 0.5f -
y;
458 texres->
tb = 0.5f -
z;
460 texres->
tin = (1.0f / 3.0f) * (texres->
tr + texres->
tg + texres->
tb);
473 float nor[3], b2, ofs;
515 texres->
nor[0] = -texres->
nor[0];
516 texres->
nor[1] = -texres->
nor[1];
517 texres->
nor[2] = -texres->
nor[2];
524 texres->
tin = 1.0f - texres->
tin;
527 if (texres->
tin < 0.0f) {
759 float sc = (aw1 + aw2 + aw3 + aw4);
770 texres->
tr = aw1 * ca[0];
771 texres->
tg = aw1 * ca[1];
772 texres->
tb = aw1 * ca[2];
774 texres->
tr += aw2 * ca[0];
775 texres->
tg += aw2 * ca[1];
776 texres->
tb += aw2 * ca[2];
778 texres->
tr += aw3 * ca[0];
779 texres->
tg += aw3 * ca[1];
780 texres->
tb += aw3 * ca[2];
782 texres->
tr += aw4 * ca[0];
783 texres->
tg += aw4 * ca[1];
784 texres->
tb += aw4 * ca[2];
786 float t1 = (da[1] - da[0]) * 10;
838 int val, ran, loop, shift = 29;
845 val = ((ran >> shift) & 3);
849 val *= ((ran >> shift) & 3);
861 static int cubemap_glob(
const float n[3],
float x,
float y,
float z,
float *adr1,
float *adr2)
863 float x1,
y1, z1,
nor[3];
879 if (z1 >= x1 && z1 >=
y1) {
880 *adr1 = (
x + 1.0f) / 2.0f;
881 *adr2 = (
y + 1.0f) / 2.0f;
884 else if (
y1 >= x1 &&
y1 >= z1) {
885 *adr1 = (
x + 1.0f) / 2.0f;
886 *adr2 = (
z + 1.0f) / 2.0f;
890 *adr1 = (
y + 1.0f) / 2.0f;
891 *adr2 = (
z + 1.0f) / 2.0f;
900 const MTex *mtex,
float texvec[3],
const float n[3],
float dxt[3],
float dyt[3])
903 float fx, fy, fac1,
area[8];
904 int ok, proj, areaflag = 0,
wrap;
913 fx = (texvec[0] + 1.0f) / 2.0f;
914 fy = (texvec[1] + 1.0f) / 2.0f;
917 map_to_tube(&fx, &fy, texvec[0], texvec[1], texvec[2]);
923 cubemap_glob(n, texvec[0], texvec[1], texvec[2], &fx, &fy);
934 else if (fx < 0.0f) {
939 int orig = (int)
floor(origf);
951 else if (fy < 0.0f) {
956 int orig = (int)
floor(origf);
979 fx = (texvec[0] + 1.0f) / 2.0f;
980 fy = (texvec[1] + 1.0f) / 2.0f;
991 if (texvec[1] <= 0.0f) {
992 fx = texvec[0] + dxt[0];
993 fy = texvec[0] + dyt[0];
994 if (fx >= 0.0f && fy >= 0.0f && texvec[0] >= 0.0f) {
997 else if (fx <= 0.0f && fy <= 0.0f && texvec[0] <= 0.0f) {
1009 area + 2,
area + 3, texvec[0] + dxt[0], texvec[1] + dxt[1], texvec[2] + dxt[2]);
1011 area + 4,
area + 5, texvec[0] + dyt[0], texvec[1] + dyt[1], texvec[2] + dyt[2]);
1016 area + 2,
area + 3, texvec[0] + dxt[0], texvec[1] + dxt[1], texvec[2] + dxt[2]);
1018 area + 4,
area + 5, texvec[0] + dyt[0], texvec[1] + dyt[1], texvec[2] + dyt[2]);
1024 map_to_tube(&fx, &fy, texvec[0], texvec[1], texvec[2]);
1037 proj =
cubemap_glob(n, texvec[0], texvec[1], texvec[2], &fx, &fy);
1040 SWAP(
float, dxt[1], dxt[2]);
1041 SWAP(
float, dyt[1], dyt[2]);
1043 else if (proj == 2) {
1044 float f1 = dxt[0], f2 = dyt[0];
1066 dxt[0] =
area[2] - fx;
1067 dxt[1] =
area[3] - fy;
1068 dyt[0] =
area[4] - fx;
1069 dyt[1] =
area[5] - fy;
1083 else if (fx < 0.0f) {
1084 fx += 1 - (int)(fx);
1088 int orig = (int)
floor(origf);
1108 else if (fy < 0.0f) {
1109 fy += 1 - (int)(fy);
1113 int orig = (int)
floor(origf);
1120 if (max < tex->yrepeat) {
1154 const float texvec[3],
1160 const short which_output,
1162 const bool skip_load_image,
1163 const bool texnode_preview,
1164 const bool use_nodes)
1172 const float cfra = 1.0f;
1195 retval =
wood(
tex, texvec, texres);
1201 retval =
magic(
tex, texvec, texres);
1204 retval =
blend(
tex, texvec, texres);
1273 texres->
tr =
col[0];
1274 texres->
tg =
col[1];
1275 texres->
tb =
col[2];
1276 texres->
ta =
col[3];
1284 const float texvec[3],
1293 const bool scene_color_manage,
1294 const bool skip_load_image,
1295 const bool texnode_preview,
1296 const bool use_nodes)
1342 float texvec_l[3], dxt_l[3], dyt_l[3];
1406 const float texvec[3],
1447 bool scene_color_manage,
1448 const bool skip_load_image)
1471 const float texvec[3],
1474 bool scene_color_manage,
1475 const bool skip_load_image)
1498 float in[3],
const float tex[3],
const float out[3],
float fact,
float facg,
int blendtype)
1502 switch (blendtype) {
1507 in[0] = (fact *
tex[0] + facm * out[0]);
1508 in[1] = (fact *
tex[1] + facm * out[1]);
1509 in[2] = (fact *
tex[2] + facm * out[2]);
1515 in[0] = (facm + fact *
tex[0]) * out[0];
1516 in[1] = (facm + fact *
tex[1]) * out[1];
1517 in[2] = (facm + fact *
tex[2]) * out[2];
1523 in[0] = 1.0f - (facm + fact * (1.0f -
tex[0])) * (1.0f - out[0]);
1524 in[1] = 1.0f - (facm + fact * (1.0f -
tex[1])) * (1.0f - out[1]);
1525 in[2] = 1.0f - (facm + fact * (1.0f -
tex[2])) * (1.0f - out[2]);
1532 if (out[0] < 0.5f) {
1533 in[0] = out[0] * (facm + 2.0f * fact *
tex[0]);
1536 in[0] = 1.0f - (facm + 2.0f * fact * (1.0f -
tex[0])) * (1.0f - out[0]);
1538 if (out[1] < 0.5f) {
1539 in[1] = out[1] * (facm + 2.0f * fact *
tex[1]);
1542 in[1] = 1.0f - (facm + 2.0f * fact * (1.0f -
tex[1])) * (1.0f - out[1]);
1544 if (out[2] < 0.5f) {
1545 in[2] = out[2] * (facm + 2.0f * fact *
tex[2]);
1548 in[2] = 1.0f - (facm + 2.0f * fact * (1.0f -
tex[2])) * (1.0f - out[2]);
1557 in[0] = (fact *
tex[0] + out[0]);
1558 in[1] = (fact *
tex[1] + out[1]);
1559 in[2] = (fact *
tex[2] + out[2]);
1566 if (
tex[0] != 0.0f) {
1567 in[0] = facm * out[0] + fact * out[0] /
tex[0];
1569 if (
tex[1] != 0.0f) {
1570 in[1] = facm * out[1] + fact * out[1] /
tex[1];
1572 if (
tex[2] != 0.0f) {
1573 in[2] = facm * out[2] + fact * out[2] /
tex[2];
1581 in[0] = facm * out[0] + fact *
fabsf(
tex[0] - out[0]);
1582 in[1] = facm * out[1] + fact *
fabsf(
tex[1] - out[1]);
1583 in[2] = facm * out[2] + fact *
fabsf(
tex[2] - out[2]);
1590 in[0] =
min_ff(out[0],
tex[0]) * fact + out[0] * facm;
1591 in[1] =
min_ff(out[1],
tex[1]) * fact + out[1] * facm;
1592 in[2] =
min_ff(out[2],
tex[2]) * fact + out[2] * facm;
1638 float in = 0.0, facm,
col, scf;
1639 int flip = (facg < 0.0f);
1646 SWAP(
float, fact, facm);
1649 switch (blendtype) {
1651 in = fact *
tex + facm * out;
1656 in = (facm + fact *
tex) * out;
1661 in = 1.0f - (facm + fact * (1.0f -
tex)) * (1.0f - out);
1667 in = out * (facm + 2.0f * fact *
tex);
1670 in = 1.0f - (facm + 2.0f * fact * (1.0f -
tex)) * (1.0f - out);
1678 in = fact *
tex + out;
1683 in = facm * out + fact * out /
tex;
1688 in = facm * out + fact *
fabsf(
tex - out);
1692 in =
min_ff(out,
tex) * fact + out * facm;
1706 scf = 1.0f - (1.0f -
tex) * (1.0f - out);
1707 in = facm * out + fact * ((1.0f - out) *
tex * out) + (out * scf);
1712 in = out + fact * (2.0f * (
tex - 0.5f));
1715 in = out + fact * (2.0f *
tex - 1.0f);
1734 const bool skip_load_image,
1735 const bool texnode_preview,
1742 float dxt[3], dyt[3], texvec[3];
1753 texvec[0] = mtex->
size[0] * (vec[mtex->
projx - 1] + mtex->
ofs[0]);
1756 texvec[0] = mtex->
size[0] * (mtex->
ofs[0]);
1760 texvec[1] = mtex->
size[1] * (vec[mtex->
projy - 1] + mtex->
ofs[1]);
1763 texvec[1] = mtex->
size[1] * (mtex->
ofs[1]);
1767 texvec[2] = mtex->
size[2] * (vec[mtex->
projz - 1] + mtex->
ofs[2]);
1770 texvec[2] = mtex->
size[2] * (mtex->
ofs[2]);
1800 *r_intensity = texr.
tin;
1801 r_rgba[0] = texr.
tr;
1802 r_rgba[1] = texr.
tg;
1803 r_rgba[2] = texr.
tb;
1804 r_rgba[3] = texr.
ta;
typedef float(TangentPoint)[2]
bool BKE_colorband_evaluate(const struct ColorBand *coba, float in, float out[4])
void BKE_image_pool_release_ibuf(struct Image *ima, struct ImBuf *ibuf, struct ImagePool *pool)
struct ImBuf * BKE_image_pool_acquire_ibuf(struct Image *ima, struct ImageUser *iuser, struct ImagePool *pool)
void BKE_image_tag_time(struct Image *ima)
General operations, lookup, etc. for materials.
void ramp_blend(int type, float r_col[3], const float fac, const float col[3])
int ntreeTexExecTree(struct bNodeTree *ntree, struct TexResult *target, const float co[3], float dxt[3], float dyt[3], int osatex, const short thread, const struct Tex *tex, short which_output, int cfra, int preview, struct MTex *mtex)
MINLINE float max_ff(float a, float b)
MINLINE float min_ff(float a, float b)
void map_to_sphere(float *r_u, float *r_v, const float x, const float y, const float z)
void map_to_tube(float *r_u, float *r_v, const float x, const float y, const float z)
MINLINE void mul_v3_fl(float r[3], float f)
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE float dot_v4v4(const float a[4], const float b[4]) ATTR_WARN_UNUSED_RESULT
MINLINE void zero_v3(float r[3])
float BLI_noise_mg_hetero_terrain(float x, float y, float z, float H, float lacunarity, float octaves, float offset, int noisebasis)
float BLI_noise_mg_multi_fractal(float x, float y, float z, float H, float lacunarity, float octaves, int noisebasis)
float BLI_noise_mg_ridged_multi_fractal(float x, float y, float z, float H, float lacunarity, float octaves, float offset, float gain, int noisebasis)
float BLI_noise_mg_variable_lacunarity(float x, float y, float z, float distortion, int nbas1, int nbas2)
float BLI_noise_generic_noise(float noisesize, float x, float y, float z, bool hard, int noisebasis)
void BLI_noise_voronoi(float x, float y, float z, float *da, float *pa, float me, int dtype)
float BLI_noise_mg_fbm(float x, float y, float z, float H, float lacunarity, float octaves, int noisebasis)
void BLI_noise_cell_v3(float x, float y, float z, float r_ca[3])
float BLI_noise_mg_hybrid_multi_fractal(float x, float y, float z, float H, float lacunarity, float octaves, float offset, float gain, int noisebasis)
float BLI_noise_generic_turbulence(float noisesize, float x, float y, float z, int oct, bool hard, int noisebasis)
void BLI_rng_threaded_free(struct RNG_THREAD_ARRAY *rngarr) ATTR_NONNULL(1)
RNG_THREAD_ARRAY * BLI_rng_threaded_new(void)
int BLI_rng_thread_rand(RNG_THREAD_ARRAY *rngarr, int thread) ATTR_WARN_UNUSED_RESULT
Object is a sort of wrapper for general info.
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble z
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble y1
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble t
BLI_INLINE float IMB_colormanagement_get_luminance(const float rgb[3])
void IMB_colormanagement_colorspace_to_scene_linear_v3(float pixel[3], struct ColorSpace *colorspace)
Contains defines and structs used throughout the imbuf module.
Read Guarded memory(de)allocation.
Group RGB to Bright Vector Camera Vector Combine Material Light Line Style Layer Add Ambient Diffuse Glossy Refraction Transparent Toon Principled Hair Volume Principled Light Particle Volume Image Sky Noise Wave Voronoi Brick Texture Vector Combine Vertex Separate Vector White RGB Map Separate Set Z Dilate Combine Combine Color Channel Split ID Combine Luminance Directional Alpha Distance Hue Movie Ellipse Bokeh View Corner Anti Mix RGB Hue Separate TEX_NODE_PROC TEX_NODE_PROC TEX_NODE_PROC TEX_NODE_PROC TEX_NODE_PROC TEX_STUCCI
Group RGB to Bright Vector Camera Vector Combine Material Light Line Style Layer Add Ambient Diffuse Glossy Refraction Transparent Toon Principled Hair Volume Principled Light Particle Volume TEX_IMAGE
Group RGB to Bright Vector Camera Vector Combine Material Light Line Style Layer Add Ambient Diffuse Glossy Refraction Transparent Toon Principled Hair Volume Principled Light Particle Volume Image Sky Noise Wave Voronoi Brick Texture Vector Combine Vertex Separate Vector White RGB Map Separate Set Z Dilate Combine Combine Color Channel Split ID Combine Luminance Directional Alpha Distance Hue Movie Ellipse Bokeh View Corner Anti Mix RGB Hue Separate TEX_NODE_PROC TEX_NODE_PROC TEX_NODE_PROC TEX_NODE_PROC TEX_MUSGRAVE
Group RGB to Bright Vector Camera Vector Combine Material Light Line Style Layer Add Ambient Diffuse Glossy Refraction Transparent Toon Principled Hair Volume Principled Light Particle Volume Image Sky Noise Wave Voronoi Brick Texture Vector Combine Vertex Separate Vector White RGB Map Separate Set Z Dilate Combine Combine Color Channel Split ID Combine Luminance Directional Alpha Distance Hue Movie Ellipse Bokeh View Corner Anti Mix RGB Hue Separate TEX_NODE_PROC TEX_NODE_PROC TEX_NODE_PROC TEX_CLOUDS
Group RGB to Bright Vector Camera Vector Combine Material Light Line Style Layer Add Ambient Diffuse Glossy Refraction Transparent Toon Principled Hair Volume Principled Light Particle Volume Image Sky TEX_NOISE
Group RGB to Bright Vector Camera Vector Combine Material Light Line Style Layer Add Ambient Diffuse Glossy Refraction Transparent Toon Principled Hair Volume Principled Light Particle Volume Image Sky Noise Wave TEX_VORONOI
Group RGB to Bright Vector Camera Vector Combine Material Light Line Style Layer Add Ambient Diffuse Glossy Refraction Transparent Toon Principled Hair Volume Principled Light Particle Volume Image Sky Noise Wave Voronoi Brick Texture Vector Combine Vertex Separate Vector White RGB Map Separate Set Z Dilate Combine Combine Color Channel Split ID Combine Luminance Directional Alpha Distance Hue Movie Ellipse Bokeh View Corner Anti Mix RGB Hue Separate TEX_NODE_PROC TEX_NODE_PROC TEX_MAGIC
static float turb(float x, float y, float z, int oct, int hard, int nb, float ampscale, float freqscale)
static void area(int d1, int d2, int e1, int e2, float weights[2])
static GPUContext * wrap(Context *ctx)
struct ColorSpace * rect_colorspace
struct bNodeTree * nodetree
int imagewrap(struct Tex *tex, struct Image *ima, const float texvec[3], struct TexResult *texres, struct ImagePool *pool, const bool skip_load_image)
int imagewraposa(struct Tex *tex, struct Image *ima, struct ImBuf *ibuf, const float texvec[3], const float dxt[2], const float dyt[2], struct TexResult *texres, struct ImagePool *pool, const bool skip_load_image)
static float tex_sin(float a)
static int mg_mFractalOrfBmTex(const Tex *tex, const float texvec[3], TexResult *texres)
static int marble(const Tex *tex, const float texvec[3], TexResult *texres)
static int multitex(Tex *tex, const float texvec[3], float dxt[3], float dyt[3], int osatex, TexResult *texres, const short thread, const short which_output, struct ImagePool *pool, const bool skip_load_image, const bool texnode_preview, const bool use_nodes)
static int stucci(const Tex *tex, const float texvec[3], TexResult *texres)
static void do_2d_mapping(const MTex *mtex, float texvec[3], const float n[3], float dxt[3], float dyt[3])
static int voronoiTex(const Tex *tex, const float texvec[3], TexResult *texres)
int multitex_ext_safe(Tex *tex, const float texvec[3], TexResult *texres, struct ImagePool *pool, bool scene_color_manage, const bool skip_load_image)
static RNG_THREAD_ARRAY * random_tex_array
int multitex_nodes(Tex *tex, const float texvec[3], float dxt[3], float dyt[3], int osatex, TexResult *texres, const short thread, short which_output, MTex *mtex, struct ImagePool *pool)
static float tex_saw(float a)
static int multitex_nodes_intern(Tex *tex, const float texvec[3], float dxt[3], float dyt[3], int osatex, TexResult *texres, const short thread, short which_output, MTex *mtex, struct ImagePool *pool, const bool scene_color_manage, const bool skip_load_image, const bool texnode_preview, const bool use_nodes)
bool RE_texture_evaluate(const MTex *mtex, const float vec[3], const int thread, struct ImagePool *pool, const bool skip_load_image, const bool texnode_preview, float *r_intensity, float r_rgba[4])
static int mg_distNoiseTex(const Tex *tex, const float texvec[3], TexResult *texres)
static float wood_int(const Tex *tex, float x, float y, float z)
static int mg_ridgedOrHybridMFTex(const Tex *tex, const float texvec[3], TexResult *texres)
static int wood(const Tex *tex, const float texvec[3], TexResult *texres)
void RE_texture_rng_init(void)
static int mg_HTerrainTex(const Tex *tex, const float texvec[3], TexResult *texres)
static int cubemap_glob(const float n[3], float x, float y, float z, float *adr1, float *adr2)
static int magic(const Tex *tex, const float texvec[3], TexResult *texres)
int multitex_ext(Tex *tex, float texvec[3], float dxt[3], float dyt[3], int osatex, TexResult *texres, const short thread, struct ImagePool *pool, bool scene_color_manage, const bool skip_load_image)
static int blend(const Tex *tex, const float texvec[3], TexResult *texres)
static float marble_int(const Tex *tex, float x, float y, float z)
static int texnoise(const Tex *tex, TexResult *texres, int thread)
void RE_texture_rng_exit(void)
float texture_value_blend(float tex, float out, float fact, float facg, int blendtype)
void texture_rgb_blend(float in[3], const float tex[3], const float out[3], float fact, float facg, int blendtype)
static void tex_normal_derivate(const Tex *tex, TexResult *texres)
static float tex_tri(float a)
static int clouds(const Tex *tex, const float texvec[3], TexResult *texres)
ccl_device_inline float2 floor(const float2 &a)