diff options
author | Dontsov Valentin <@blend4web.com> | 2014-11-09 17:22:44 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2014-11-09 17:35:08 +0300 |
commit | 8c712eaa297162669fc0be849da115dd8db400d5 (patch) | |
tree | a1cc56d8250943caafbe9dc53caed19c49d373ca /source/blender/gpu/intern | |
parent | aac2db33df448f87431629b794c47c7ad1da044e (diff) |
GLSL: specular transparency support for Blender internal materials
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D781
Diffstat (limited to 'source/blender/gpu/intern')
-rw-r--r-- | source/blender/gpu/intern/gpu_material.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c index 32d7e04aeea..fa22783ba2a 100644 --- a/source/blender/gpu/intern/gpu_material.c +++ b/source/blender/gpu/intern/gpu_material.c @@ -1426,6 +1426,7 @@ void GPU_shadeinput_set(GPUMaterial *mat, Material *ma, GPUShadeInput *shi) GPU_link(mat, "set_value", GPU_uniform(&ma->emit), &shi->emit); GPU_link(mat, "set_value", GPU_uniform(&hard), &shi->har); GPU_link(mat, "set_value", GPU_uniform(&ma->amb), &shi->amb); + GPU_link(mat, "set_value", GPU_uniform(&ma->spectra), &shi->spectra); GPU_link(mat, "shade_view", GPU_builtin(GPU_VIEW_POSITION), &shi->view); GPU_link(mat, "vcol_attribute", GPU_attribute(CD_MCOL, ""), &shi->vcol); if (GPU_material_do_color_management(mat)) @@ -1497,6 +1498,12 @@ void GPU_shaderesult_set(GPUShadeInput *shi, GPUShadeResult *shr) } } + if (ma->mode & MA_TRANSP && (ma->mode & (MA_ZTRANSP|MA_RAYTRANSP))) { + if (GPU_link_changed(shi->spectra) || ma->spectra != 0.0f) + GPU_link(mat, "alpha_spec_correction", shr->spec, shi->spectra, + shi->alpha, &shr->alpha); + } + if (ma->mode & MA_RAMP_COL) ramp_diffuse_result(shi, &shr->combined); if (ma->mode & MA_RAMP_SPEC) ramp_spec_result(shi, &shr->spec); |