mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-04-23 04:30:09 -05:00
Merge branch 'feature/stereo' of github.com:OpenSpace/OpenSpace into feature/stereo
This commit is contained in:
@@ -171,6 +171,7 @@ public:
|
||||
psc unsynchedPosition() const;
|
||||
// [[deprecated("Replaced by Camera::focusPositionVec3()")]]
|
||||
psc focusPosition() const;
|
||||
const glm::mat4& sceneMatrix() const;
|
||||
// @TODO use Camera::SgctInternal interface instead
|
||||
// [[deprecated("Replaced by Camera::SgctInternal::viewMatrix()")]]
|
||||
const glm::mat4& viewMatrix() const;
|
||||
|
||||
@@ -255,6 +255,11 @@ void AtmosphereDeferredcaster::preRaycast(const RenderData& renderData,
|
||||
);
|
||||
|
||||
// World to Eye Space in OS
|
||||
program.setUniform(
|
||||
"dInverseCamScaleTransform",
|
||||
glm::inverse(renderData.camera.viewScaleMatrix())
|
||||
);
|
||||
|
||||
program.setUniform(
|
||||
"dInverseCamRotTransform",
|
||||
glm::mat4_cast(
|
||||
|
||||
@@ -88,6 +88,7 @@ uniform sampler2DMS mainColorTexture;
|
||||
uniform dmat4 dInverseSgctEyeToWorldTranform; // SGCT Eye to OS World
|
||||
uniform dmat4 dSgctEyeToOSEyeTranform; // SGCT Eye to OS Eye *
|
||||
uniform dmat4 dInverseSgctProjectionMatrix; // Clip to SGCT Eye *
|
||||
uniform dmat4 dInverseCamScaleTransform;
|
||||
uniform dmat4 dInverseCamRotTransform;
|
||||
uniform dmat4 dInverseModelTransformMatrix;
|
||||
uniform dmat4 dModelTransformMatrix;
|
||||
@@ -260,13 +261,14 @@ void dCalculateRayRenderableGlobe(in int mssaSample, out dRay ray,
|
||||
|
||||
// Clip to SGCT Eye
|
||||
dvec4 sgctEyeCoords = dInverseSgctProjectionMatrix * clipCoords;
|
||||
sgctEyeCoords.w = 1.0;
|
||||
sgctEyeCoords.w = clipCoords.z;//1.0;
|
||||
|
||||
// SGCT Eye to OS Eye
|
||||
dvec4 tOSEyeCoordsInv = dSgctEyeToOSEyeTranform * sgctEyeCoords;
|
||||
|
||||
// OS Eye to World coords
|
||||
dvec4 tmpRInv = dInverseCamRotTransform * tOSEyeCoordsInv;
|
||||
dvec4 tmpSInv = dInverseCamScaleTransform * tOSEyeCoordsInv;
|
||||
dvec4 tmpRInv = dInverseCamRotTransform * tmpSInv;//tOSEyeCoordsInv;
|
||||
dvec4 worldCoords = dvec4(dvec3(tmpRInv) + dCampos, 1.0);
|
||||
|
||||
// World to Object
|
||||
@@ -634,8 +636,9 @@ void main() {
|
||||
// Fragments positions into G-Buffer are written in OS Eye Space (Camera Rig Coords)
|
||||
// when using their positions later, one must convert them to the planet's coords
|
||||
|
||||
// OS Eye to World coords
|
||||
dvec4 tmpRInvPos = dInverseCamRotTransform * dSgctEyeToOSEyeTranform * position;
|
||||
// OS Eye to World coords
|
||||
dvec4 tmpSInvPos = dInverseCamScaleTransform * dSgctEyeToOSEyeTranform * position;
|
||||
dvec4 tmpRInvPos = dInverseCamRotTransform * tmpSInvPos;//dSgctEyeToOSEyeTranform * position;
|
||||
dvec4 fragWorldCoords = dvec4(dvec3(tmpRInvPos) + dCampos, 1.0);
|
||||
|
||||
// World to Object (Normal and Position in meters)
|
||||
@@ -652,7 +655,7 @@ void main() {
|
||||
float dC = float(length(cameraPositionInObject.xyz));
|
||||
float x1 = 1e8;
|
||||
if (dC > x1) {
|
||||
pixelDepth += 1000.0;
|
||||
pixelDepth += 1000.0;
|
||||
float alpha = 1000.0;
|
||||
float beta = 1000000.0;
|
||||
float x2 = 1e9;
|
||||
|
||||
@@ -306,6 +306,10 @@ namespace openspace {
|
||||
return psc(_focusPosition);
|
||||
}
|
||||
|
||||
const glm::mat4& Camera::sceneMatrix() const {
|
||||
return sgctInternal.sceneMatrix();
|
||||
}
|
||||
|
||||
const glm::mat4& Camera::viewMatrix() const {
|
||||
return sgctInternal.viewMatrix();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user