mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-09 08:56:25 +02:00
trying to debug the indirect sh lighting going wrong, the noraml on avatar is not correct
This commit is contained in:
parent
10269bd556
commit
ecdffadcb7
6 changed files with 16 additions and 16 deletions
|
@ -2996,6 +2996,8 @@ void Application::displaySide(Camera& theCamera, bool selfAvatarOnly, RenderArgs
|
||||||
"Application::displaySide() ... entities...");
|
"Application::displaySide() ... entities...");
|
||||||
if (renderCollisionHulls) {
|
if (renderCollisionHulls) {
|
||||||
_entities.render(RenderArgs::DEBUG_RENDER_MODE, renderSide);
|
_entities.render(RenderArgs::DEBUG_RENDER_MODE, renderSide);
|
||||||
|
} else if (theCamera.getMode() == CAMERA_MODE_MIRROR) {
|
||||||
|
_entities.render(RenderArgs::MIRROR_RENDER_MODE, renderSide);
|
||||||
} else {
|
} else {
|
||||||
_entities.render(RenderArgs::DEFAULT_RENDER_MODE, renderSide);
|
_entities.render(RenderArgs::DEFAULT_RENDER_MODE, renderSide);
|
||||||
}
|
}
|
||||||
|
|
|
@ -528,10 +528,10 @@ void Avatar::simulateAttachments(float deltaTime) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Avatar::renderAttachments(RenderArgs::RenderMode renderMode, RenderArgs* args) {
|
void Avatar::renderAttachments(RenderArgs::RenderMode renderMode, RenderArgs* args) {
|
||||||
RenderArgs::RenderMode modelRenderMode = (renderMode == RenderArgs::SHADOW_RENDER_MODE) ?
|
// RenderArgs::RenderMode modelRenderMode = (renderMode == RenderArgs::SHADOW_RENDER_MODE) ?
|
||||||
RenderArgs::SHADOW_RENDER_MODE : RenderArgs::DEFAULT_RENDER_MODE;
|
// RenderArgs::SHADOW_RENDER_MODE : RenderArgs::DEFAULT_RENDER_MODE;
|
||||||
foreach (Model* model, _attachmentModels) {
|
foreach (Model* model, _attachmentModels) {
|
||||||
model->render(1.0f, modelRenderMode, args);
|
model->render(1.0f, renderMode, args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1401,12 +1401,12 @@ void MyAvatar::renderAttachments(RenderArgs::RenderMode renderMode, RenderArgs*
|
||||||
}
|
}
|
||||||
const FBXGeometry& geometry = _skeletonModel.getGeometry()->getFBXGeometry();
|
const FBXGeometry& geometry = _skeletonModel.getGeometry()->getFBXGeometry();
|
||||||
QString headJointName = (geometry.headJointIndex == -1) ? QString() : geometry.joints.at(geometry.headJointIndex).name;
|
QString headJointName = (geometry.headJointIndex == -1) ? QString() : geometry.joints.at(geometry.headJointIndex).name;
|
||||||
RenderArgs::RenderMode modelRenderMode = (renderMode == RenderArgs::SHADOW_RENDER_MODE) ?
|
// RenderArgs::RenderMode modelRenderMode = (renderMode == RenderArgs::SHADOW_RENDER_MODE) ?
|
||||||
RenderArgs::SHADOW_RENDER_MODE : RenderArgs::DEFAULT_RENDER_MODE;
|
// RenderArgs::SHADOW_RENDER_MODE : RenderArgs::DEFAULT_RENDER_MODE;
|
||||||
for (int i = 0; i < _attachmentData.size(); i++) {
|
for (int i = 0; i < _attachmentData.size(); i++) {
|
||||||
const QString& jointName = _attachmentData.at(i).jointName;
|
const QString& jointName = _attachmentData.at(i).jointName;
|
||||||
if (jointName != headJointName && jointName != "Head") {
|
if (jointName != headJointName && jointName != "Head") {
|
||||||
_attachmentModels.at(i)->render(1.0f, modelRenderMode, args);
|
_attachmentModels.at(i)->render(1.0f, renderMode, args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -394,12 +394,12 @@ void EntityTreeRenderer::render(RenderArgs::RenderMode renderMode, RenderArgs::R
|
||||||
_tree->lockForRead();
|
_tree->lockForRead();
|
||||||
_tree->recurseTreeWithOperation(renderOperation, &args);
|
_tree->recurseTreeWithOperation(renderOperation, &args);
|
||||||
|
|
||||||
Model::RenderMode modelRenderMode = renderMode == RenderArgs::SHADOW_RENDER_MODE
|
// Model::RenderMode modelRenderMode = renderMode == RenderArgs::SHADOW_RENDER_MODE
|
||||||
? RenderArgs::SHADOW_RENDER_MODE : RenderArgs::DEFAULT_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
|
// we must call endScene while we still have the tree locked so that no one deletes a model
|
||||||
// on us while rendering the scene
|
// on us while rendering the scene
|
||||||
Model::endScene(modelRenderMode, &args);
|
Model::endScene(renderMode, &args);
|
||||||
_tree->unlock();
|
_tree->unlock();
|
||||||
|
|
||||||
// stats...
|
// stats...
|
||||||
|
|
|
@ -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
|
// 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
|
// 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);
|
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) {
|
vec3 evalLightmappedColor(float shadowAttenuation, vec3 normal, vec3 diffuse, vec3 lightmap) {
|
||||||
|
|
|
@ -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);
|
translucentMeshPartsRendered += renderMeshes(batch, mode, true, MOSTLY_TRANSPARENT_THRESHOLD, false, true, true, true, args, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// try that
|
|
||||||
batch.setPipeline(gpu::PipelinePointer());
|
|
||||||
|
|
||||||
GLBATCH(glDepthMask)(true);
|
GLBATCH(glDepthMask)(true);
|
||||||
GLBATCH(glDepthFunc)(GL_LESS);
|
GLBATCH(glDepthFunc)(GL_LESS);
|
||||||
GLBATCH(glDisable)(GL_CULL_FACE);
|
GLBATCH(glDisable)(GL_CULL_FACE);
|
||||||
|
|
Loading…
Reference in a new issue