- Fixed interpolation of ray direction vector for asymmetric frustum (stereo left/right eye). Unnecessary normalization of direction vector affecting the frustum's geometry was removed.
- Fixed usage of projection type argument passed when rendering immediate graphics with stereo projection.
aDirect = aDirect - aOrigin;
- GLdouble aInvLen = 1.0 / sqrt (aDirect.x() * aDirect.x() +
- aDirect.y() * aDirect.y() +
- aDirect.z() * aDirect.z());
-
theOrigins[aOriginIndex++] = OpenGl_Vec3 (static_cast<GLfloat> (aOrigin.x()),
static_cast<GLfloat> (aOrigin.y()),
static_cast<GLfloat> (aOrigin.z()));
- theDirects[aDirectIndex++] = OpenGl_Vec3 (static_cast<GLfloat> (aDirect.x() * aInvLen),
- static_cast<GLfloat> (aDirect.y() * aInvLen),
- static_cast<GLfloat> (aDirect.z() * aInvLen));
+ theDirects[aDirectIndex++] = OpenGl_Vec3 (static_cast<GLfloat> (aDirect.x()),
+ static_cast<GLfloat> (aDirect.y()),
+ static_cast<GLfloat> (aDirect.z()));
}
}
}
#if !defined(GL_ES_VERSION_2_0)
aCtx->SetReadDrawBuffer (aStereoMode == Graphic3d_StereoMode_QuadBuffer ? GL_BACK_LEFT : GL_BACK);
#endif
- if (!redrawImmediate (aProjectType, aMainFbos[0], anImmFbos[0]))
+ if (!redrawImmediate (Graphic3d_Camera::Projection_MonoLeftEye, aMainFbos[0], anImmFbos[0]))
{
toSwap = false;
}
redraw (Graphic3d_Camera::Projection_MonoRightEye, aMainFbos[1]);
myBackBufferRestored = Standard_True;
myIsImmediateDrawn = Standard_False;
- if (!redrawImmediate (aProjectType, aMainFbos[1], anImmFbos[1]))
+ if (!redrawImmediate (Graphic3d_Camera::Projection_MonoRightEye, aMainFbos[1], anImmFbos[1]))
{
toSwap = false;
}
--- /dev/null
+puts "============"
+puts "CR26676"
+puts "============"
+puts ""
+
+##########################################################################################
+# 0026676: Visualization, Ray Tracing - correct rendering if stereo pair
+##########################################################################################
+
+vinit View1 w=400 h=400
+vclear
+
+box b 1 2 50
+vraytrace 0
+vaxo
+vsetdispmode 1
+vdisplay b
+vcamera -persp
+vfit
+vrotate 0 -1.2 0
+vzoom 1.2
+
+vstereo -anaglyph redCyan
+vcamera -iod
+vcamera -iod 0.3
+
+vraytrace 1
+
+vselect 200 350
+
+vdump ${imagedir}/${casename}.png -stereo blend