Archive 17/01/2023.

[Solved] Stereo rendering

codder

Hello,

Does Urho3D supports 3D anaglyph (red/cyan) out of the box? And if no, any tips to implement it?

thebluefish

It’s not supported out of the box, but it shouldn’t be difficult to implement. We’d need to find a shader for it, then it could be implemented as a Post Process effect.

codder

I have the shader but I miss the rest…

#include "Uniforms.glsl"
#include "Samplers.glsl"
#include "Transform.glsl"

#ifdef COMPILEPS
uniform sampler2D sLeftEye;
uniform sampler2D sRightEye;
#endif

varying vec2 vScreenPos;

void VS()
{
    mat4 modelMatrix = iModelMatrix;
    vec3 worldPos = GetWorldPos(modelMatrix);
    gl_Position = GetClipPos(worldPos);
    vScreenPos = GetScreenPosPreDiv(gl_Position);
}

void PS()
{
    vec3 leftRGB = texture2D(sLeftEye, vScreenPos).rgb;
    vec3 rightRGB = texture2D(sRightEye, vScreenPos).rgb;

    leftRGB = vec3(1.0, leftRGB.g, leftRGB.b);
    rightRGB = vec3(rightRGB.r, 1.0, 1.0);

    gl_FragColor = vec4(leftRGB * rightRGB, 1.0);
}
1vanK

U need 2 viewports, render it to textures and sent to shader. See example github.com/MonkeyFirst/Urho3DPo … ssFXPortal

codder

Great!! Thanks!