mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-02-25 14:29:03 -06:00
Fix atmosphere stereo problem
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user