From ecdffadcb7a0e92607e6211903d8029ffbd712e5 Mon Sep 17 00:00:00 2001 From: Sam Gateau Date: Mon, 6 Apr 2015 10:17:31 -0700 Subject: [PATCH] trying to debug the indirect sh lighting going wrong, the noraml on avatar is not correct --- interface/src/Application.cpp | 2 ++ interface/src/avatar/Avatar.cpp | 6 +++--- interface/src/avatar/MyAvatar.cpp | 6 +++--- libraries/entities-renderer/src/EntityTreeRenderer.cpp | 6 +++--- libraries/render-utils/src/DeferredGlobalLight.slh | 9 +++++---- libraries/render-utils/src/Model.cpp | 3 --- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 35f21cee61..303892d072 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -2996,6 +2996,8 @@ void Application::displaySide(Camera& theCamera, bool selfAvatarOnly, RenderArgs "Application::displaySide() ... entities..."); if (renderCollisionHulls) { _entities.render(RenderArgs::DEBUG_RENDER_MODE, renderSide); + } else if (theCamera.getMode() == CAMERA_MODE_MIRROR) { + _entities.render(RenderArgs::MIRROR_RENDER_MODE, renderSide); } else { _entities.render(RenderArgs::DEFAULT_RENDER_MODE, renderSide); } diff --git a/interface/src/avatar/Avatar.cpp b/interface/src/avatar/Avatar.cpp index c346a69df1..cfce0bd80e 100644 --- a/interface/src/avatar/Avatar.cpp +++ b/interface/src/avatar/Avatar.cpp @@ -528,10 +528,10 @@ void Avatar::simulateAttachments(float deltaTime) { } void Avatar::renderAttachments(RenderArgs::RenderMode renderMode, RenderArgs* args) { - RenderArgs::RenderMode modelRenderMode = (renderMode == RenderArgs::SHADOW_RENDER_MODE) ? - RenderArgs::SHADOW_RENDER_MODE : RenderArgs::DEFAULT_RENDER_MODE; + // RenderArgs::RenderMode modelRenderMode = (renderMode == RenderArgs::SHADOW_RENDER_MODE) ? + // RenderArgs::SHADOW_RENDER_MODE : RenderArgs::DEFAULT_RENDER_MODE; foreach (Model* model, _attachmentModels) { - model->render(1.0f, modelRenderMode, args); + model->render(1.0f, renderMode, args); } } diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 30b64ccbb2..95aa42284a 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1401,12 +1401,12 @@ void MyAvatar::renderAttachments(RenderArgs::RenderMode renderMode, RenderArgs* } const FBXGeometry& geometry = _skeletonModel.getGeometry()->getFBXGeometry(); QString headJointName = (geometry.headJointIndex == -1) ? QString() : geometry.joints.at(geometry.headJointIndex).name; - RenderArgs::RenderMode modelRenderMode = (renderMode == RenderArgs::SHADOW_RENDER_MODE) ? - RenderArgs::SHADOW_RENDER_MODE : RenderArgs::DEFAULT_RENDER_MODE; + // RenderArgs::RenderMode modelRenderMode = (renderMode == RenderArgs::SHADOW_RENDER_MODE) ? + // RenderArgs::SHADOW_RENDER_MODE : RenderArgs::DEFAULT_RENDER_MODE; for (int i = 0; i < _attachmentData.size(); i++) { const QString& jointName = _attachmentData.at(i).jointName; if (jointName != headJointName && jointName != "Head") { - _attachmentModels.at(i)->render(1.0f, modelRenderMode, args); + _attachmentModels.at(i)->render(1.0f, renderMode, args); } } } diff --git a/libraries/entities-renderer/src/EntityTreeRenderer.cpp b/libraries/entities-renderer/src/EntityTreeRenderer.cpp index d773a5add6..606825bb5d 100644 --- a/libraries/entities-renderer/src/EntityTreeRenderer.cpp +++ b/libraries/entities-renderer/src/EntityTreeRenderer.cpp @@ -394,12 +394,12 @@ void EntityTreeRenderer::render(RenderArgs::RenderMode renderMode, RenderArgs::R _tree->lockForRead(); _tree->recurseTreeWithOperation(renderOperation, &args); - Model::RenderMode modelRenderMode = renderMode == RenderArgs::SHADOW_RENDER_MODE - ? RenderArgs::SHADOW_RENDER_MODE : RenderArgs::DEFAULT_RENDER_MODE; +// Model::RenderMode modelRenderMode = renderMode == RenderArgs::SHADOW_RENDER_MODE + // ? RenderArgs::SHADOW_RENDER_MODE : RenderArgs::DEFAULT_RENDER_MODE; // we must call endScene while we still have the tree locked so that no one deletes a model // on us while rendering the scene - Model::endScene(modelRenderMode, &args); + Model::endScene(renderMode, &args); _tree->unlock(); // stats... diff --git a/libraries/render-utils/src/DeferredGlobalLight.slh b/libraries/render-utils/src/DeferredGlobalLight.slh index 556e7421af..cb74a0e218 100755 --- a/libraries/render-utils/src/DeferredGlobalLight.slh +++ b/libraries/render-utils/src/DeferredGlobalLight.slh @@ -82,15 +82,16 @@ vec3 evalAmbienSphereGlobalColor(float shadowAttenuation, vec3 position, vec3 no // TODO: The world space normal doesn;t seem to work properly with the current SH definitions // FoOr now, we use the normal in view space - vec3 ambientNormal = normal; + vec3 ambientNormal = fragNormal.xzy; - vec3 color = diffuse.rgb * 0.5 * evalSphericalLight(ambientSphere, ambientNormal).xyz; + vec3 color = /* diffuse.rgb * 0.5 */ evalSphericalLight(ambientSphere, ambientNormal).xyz; vec4 shading = evalFragShading(fragNormal, -getLightDirection(light), fragEyeDir, specular, gloss); - color += vec3(diffuse + shading.rgb) * shading.w * shadowAttenuation * getLightColor(light) * getLightIntensity(light); + // color += vec3(diffuse + shading.rgb) * shading.w * shadowAttenuation * getLightColor(light) * getLightIntensity(light); - return color; + //return color; + return fragNormal; } vec3 evalLightmappedColor(float shadowAttenuation, vec3 normal, vec3 diffuse, vec3 lightmap) { diff --git a/libraries/render-utils/src/Model.cpp b/libraries/render-utils/src/Model.cpp index e250e1278f..c76ccaad17 100644 --- a/libraries/render-utils/src/Model.cpp +++ b/libraries/render-utils/src/Model.cpp @@ -814,9 +814,6 @@ bool Model::renderCore(float alpha, RenderMode mode, RenderArgs* args) { translucentMeshPartsRendered += renderMeshes(batch, mode, true, MOSTLY_TRANSPARENT_THRESHOLD, false, true, true, true, args, true); } - // try that - batch.setPipeline(gpu::PipelinePointer()); - GLBATCH(glDepthMask)(true); GLBATCH(glDepthFunc)(GL_LESS); GLBATCH(glDisable)(GL_CULL_FACE);