Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Romanov <a.romanov@blend4web.com>2016-01-23 15:27:36 +0300
committerAlexander Romanov <a.romanov@blend4web.com>2016-01-23 15:39:31 +0300
commita6aaaad9795e80af05e8281030107c32c6a1366b (patch)
tree187e682a49789f2ccfa459d905e4cee741b884d4 /source/gameengine/Ketsji
parente9452f909cdba368f54637cd0b15ff14d1c60cf3 (diff)
Vector Transform node support for GLSL mode and the internal renderer
The Vector Transform node is a useful node which is present in the Cycles renderer. {F144283} This patch implements the Vector Transform node for GLSL mode and the internal renderer. Example: {F273060} Alexander (Blend4Web Team) Reviewers: brecht, campbellbarton, sergey Reviewed By: campbellbarton, sergey Subscribers: psy-fi, duarteframos, RobM, lightbwk, sergey, AlexKowel, valentin_b4w, Evgeny_Rodygin, yurikovelenov Projects: #bf_blender:_next Differential Revision: https://developer.blender.org/D909
Diffstat (limited to 'source/gameengine/Ketsji')
-rw-r--r--source/gameengine/Ketsji/BL_BlenderShader.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/source/gameengine/Ketsji/BL_BlenderShader.cpp b/source/gameengine/Ketsji/BL_BlenderShader.cpp
index 0f71f8d3bac..95679b5d3a6 100644
--- a/source/gameengine/Ketsji/BL_BlenderShader.cpp
+++ b/source/gameengine/Ketsji/BL_BlenderShader.cpp
@@ -74,8 +74,8 @@ void BL_BlenderShader::SetProg(bool enable, double time, RAS_IRasterizer* rasty)
float viewmat[4][4], viewinvmat[4][4];
const MT_Matrix4x4& view = rasty->GetViewMatrix();
const MT_Matrix4x4& viewinv = rasty->GetViewInvMatrix();
- view.getValue((float*)viewmat);
- viewinv.getValue((float*)viewinvmat);
+ view.getValue(&viewmat[0][0]);
+ viewinv.getValue(&viewinvmat[0][0]);
GPU_material_bind(mGPUMat, mLightLayer, mBlenderScene->lay, time, 1, viewmat, viewinvmat, NULL, false);
}
@@ -148,7 +148,7 @@ void BL_BlenderShader::SetAttribs(RAS_IRasterizer* ras, const BL_Material *mat)
void BL_BlenderShader::Update(const RAS_MeshSlot & ms, RAS_IRasterizer* rasty )
{
- float obmat[4][4], obcol[4];
+ float obmat[4][4], viewmat[4][4], obcol[4];
GPUMaterial *gpumat;
gpumat = mGPUMat;
@@ -160,15 +160,16 @@ void BL_BlenderShader::Update(const RAS_MeshSlot & ms, RAS_IRasterizer* rasty )
model.setValue(ms.m_OpenGLMatrix);
// note: getValue gives back column major as needed by OpenGL
- model.getValue((float*)obmat);
+ model.getValue(&obmat[0][0]);
if (ms.m_bObjectColor)
- ms.m_RGBAcolor.getValue((float *)obcol);
+ ms.m_RGBAcolor.getValue(&obcol[0]);
else
obcol[0] = obcol[1] = obcol[2] = obcol[3] = 1.0f;
+ rasty->GetViewMatrix().getValue(&viewmat[0][0]);
float auto_bump_scale = ms.m_pDerivedMesh!=0 ? ms.m_pDerivedMesh->auto_bump_scale : 1.0f;
- GPU_material_bind_uniforms(gpumat, obmat, obcol, auto_bump_scale, NULL);
+ GPU_material_bind_uniforms(gpumat, obmat, viewmat, obcol, auto_bump_scale, NULL);
mAlphaBlend = GPU_material_alpha_blend(gpumat, obcol);
}