Fix atmosphere stereo problem

This commit is contained in:
Emil Axelsson
2019-06-19 18:31:07 +02:00
parent 1ca1c8165b
commit a75bb5a5ae
2 changed files with 7 additions and 24 deletions

View File

@@ -276,30 +276,11 @@ void AtmosphereDeferredcaster::preRaycast(const RenderData& renderData,
glm::dmat4 dInverseProjection = glm::inverse(
glm::dmat4(renderData.camera.projectionMatrix()));
// SGCT Projection to OS Camera Before Rotation
glm::dmat4 dProjectionToTmpRotTransformMatrix =
glm::mat4_cast(
static_cast<glm::dquat>(renderData.camera.rotationQuaternion())
) *
dSgctEye2OSEye *
glm::inverse(renderData.camera.viewScaleMatrix()) *
glm::dmat4 inverseWholeMatrixPipeline =
inverseModelMatrix *
dSGCTViewToWorldMatrix *
dInverseProjection;
// SGCT Projection to World Space
glm::dmat4 dSgctProjectionToWorldTransformMatrix(
dProjectionToTmpRotTransformMatrix
);
double* mSource = glm::value_ptr(dSgctProjectionToWorldTransformMatrix);
mSource[12] += renderData.camera.eyePositionVec3().x;
mSource[13] += renderData.camera.eyePositionVec3().y;
mSource[14] += renderData.camera.eyePositionVec3().z;
mSource[15] = 1.0;
// SGCT Projection to Object Space
glm::dmat4 inverseWholeMatrixPipeline = inverseModelMatrix *
dSgctProjectionToWorldTransformMatrix;
program.setUniform(_uniformCache2.dSgctProjectionToModelTransformMatrix,
inverseWholeMatrixPipeline);

View File

@@ -250,11 +250,13 @@ void dCalculateRayRenderableGlobe(in int mssaSample, out dRay ray,
// Compute positions and directions in object space.
dvec2 samplePos = dvec2(msaaSamplePatter[mssaSample],
msaaSamplePatter[mssaSample+1]);
//dvec4 clipCoords = dvec4(interpolatedNDCPos.xy + samplePos, 0.0, 1.0);
dvec4 clipCoords = dvec4(interpolatedNDCPos.xy, 0.0, 1.0);
dvec4 clipCoords = dvec4(interpolatedNDCPos.xy, 1.0, 1.0);
// Clip to Object Coords
dvec4 objectCoords = dSgctProjectionToModelTransformMatrix * clipCoords;
objectCoords /= objectCoords.w;
// Planet Position in Object Space
// JCC: Applying the inverse of the model transformation on the object postion in World