88
88
if (node->type==SH_NODE_TEXTURE) {
89
89
if ((r_mode & R_OSA) && node->id) {
90
90
Tex *tex= (Tex *)node->id;
91
if (ELEM3(tex->type, TEX_IMAGE, TEX_PLUGIN, TEX_ENVMAP)) {
91
if (ELEM(tex->type, TEX_IMAGE, TEX_ENVMAP)) {
92
92
*texco |= TEXCO_OSA|NEED_UV;
137
137
for (a=0, sock= node->inputs.first; sock; sock= sock->next, a++) {
138
138
if (!nodeSocketIsHidden(sock)) {
141
141
case MAT_IN_COLOR:
142
copy_v3_v3(&ma->r, ((bNodeSocketValueRGBA*)sock->default_value)->value); break;
142
copy_v3_v3(&ma->r, ((bNodeSocketValueRGBA *)sock->default_value)->value); break;
143
143
case MAT_IN_SPEC:
144
copy_v3_v3(&ma->specr, ((bNodeSocketValueRGBA*)sock->default_value)->value); break;
144
copy_v3_v3(&ma->specr, ((bNodeSocketValueRGBA *)sock->default_value)->value); break;
145
145
case MAT_IN_REFL:
146
ma->ref= ((bNodeSocketValueFloat*)sock->default_value)->value; break;
146
ma->ref= ((bNodeSocketValueFloat *)sock->default_value)->value; break;
148
copy_v3_v3(&ma->mirr, ((bNodeSocketValueRGBA*)sock->default_value)->value); break;
148
copy_v3_v3(&ma->mirr, ((bNodeSocketValueRGBA *)sock->default_value)->value); break;
150
ma->amb= ((bNodeSocketValueFloat*)sock->default_value)->value; break;
150
ma->amb = ((bNodeSocketValueFloat *)sock->default_value)->value; break;
151
151
case MAT_IN_EMIT:
152
ma->emit= ((bNodeSocketValueFloat*)sock->default_value)->value; break;
152
ma->emit = ((bNodeSocketValueFloat *)sock->default_value)->value; break;
153
153
case MAT_IN_SPECTRA:
154
ma->spectra= ((bNodeSocketValueFloat*)sock->default_value)->value; break;
154
ma->spectra = ((bNodeSocketValueFloat *)sock->default_value)->value; break;
155
155
case MAT_IN_RAY_MIRROR:
156
ma->ray_mirror= ((bNodeSocketValueFloat*)sock->default_value)->value; break;
156
ma->ray_mirror = ((bNodeSocketValueFloat *)sock->default_value)->value; break;
157
157
case MAT_IN_ALPHA:
158
ma->alpha= ((bNodeSocketValueFloat*)sock->default_value)->value; break;
158
ma->alpha = ((bNodeSocketValueFloat *)sock->default_value)->value; break;
159
159
case MAT_IN_TRANSLUCENCY:
160
ma->translucency= ((bNodeSocketValueFloat*)sock->default_value)->value; break;
160
ma->translucency = ((bNodeSocketValueFloat *)sock->default_value)->value; break;
165
165
case MAT_IN_COLOR:
166
copy_v3_v3(((bNodeSocketValueRGBA*)sock->default_value)->value, &ma->r); break;
166
copy_v3_v3(((bNodeSocketValueRGBA *)sock->default_value)->value, &ma->r); break;
167
167
case MAT_IN_SPEC:
168
copy_v3_v3(((bNodeSocketValueRGBA*)sock->default_value)->value, &ma->specr); break;
168
copy_v3_v3(((bNodeSocketValueRGBA *)sock->default_value)->value, &ma->specr); break;
169
169
case MAT_IN_REFL:
170
((bNodeSocketValueFloat*)sock->default_value)->value= ma->ref; break;
170
((bNodeSocketValueFloat *)sock->default_value)->value= ma->ref; break;
172
copy_v3_v3(((bNodeSocketValueRGBA*)sock->default_value)->value, &ma->mirr); break;
172
copy_v3_v3(((bNodeSocketValueRGBA *)sock->default_value)->value, &ma->mirr); break;
174
((bNodeSocketValueFloat*)sock->default_value)->value= ma->amb; break;
174
((bNodeSocketValueFloat *)sock->default_value)->value = ma->amb; break;
175
175
case MAT_IN_EMIT:
176
((bNodeSocketValueFloat*)sock->default_value)->value= ma->emit; break;
176
((bNodeSocketValueFloat *)sock->default_value)->value = ma->emit; break;
177
177
case MAT_IN_SPECTRA:
178
((bNodeSocketValueFloat*)sock->default_value)->value= ma->spectra; break;
178
((bNodeSocketValueFloat *)sock->default_value)->value = ma->spectra; break;
179
179
case MAT_IN_RAY_MIRROR:
180
((bNodeSocketValueFloat*)sock->default_value)->value= ma->ray_mirror; break;
180
((bNodeSocketValueFloat *)sock->default_value)->value = ma->ray_mirror; break;
181
181
case MAT_IN_ALPHA:
182
((bNodeSocketValueFloat*)sock->default_value)->value= ma->alpha; break;
182
((bNodeSocketValueFloat *)sock->default_value)->value = ma->alpha; break;
183
183
case MAT_IN_TRANSLUCENCY:
184
((bNodeSocketValueFloat*)sock->default_value)->value= ma->translucency; break;
184
((bNodeSocketValueFloat *)sock->default_value)->value = ma->translucency; break;
276
277
bNodeStack *stack;
277
278
bNodeStack *nsin[MAX_SOCKET]; /* arbitrary... watch this */
278
279
bNodeStack *nsout[MAX_SOCKET]; /* arbitrary... watch this */
279
GPUNodeStack gpuin[MAX_SOCKET+1], gpuout[MAX_SOCKET+1];
280
GPUNodeStack gpuin[MAX_SOCKET + 1], gpuout[MAX_SOCKET + 1];
282
283
stack= exec->stack;
284
285
for (n=0, nodeexec= exec->nodeexec; n < exec->totnodes; ++n, ++nodeexec) {
285
286
node = nodeexec->node;
288
289
/* for groups, only execute outputs for edited group */
289
290
if (node->typeinfo->nclass==NODE_CLASS_OUTPUT) {
290
291
if (do_outputs && (node->flag & NODE_DO_OUTPUT))
297
298
if (node->typeinfo->gpufunc) {
298
299
node_get_stack(node, stack, nsin, nsout);
299
300
gpu_stack_from_data_list(gpuin, &node->inputs, nsin);