mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-10-23 18:07:41 +00:00
'cylidrical' stereo mode
This commit is contained in:
11
shaders.cpp
11
shaders.cpp
@@ -82,6 +82,12 @@ EX string panini_shader() {
|
||||
"t.w = 1.;\n";
|
||||
}
|
||||
|
||||
EX string cylindrical_shader() {
|
||||
return
|
||||
"t /= t.w;\n"
|
||||
"t.y = atan2(t.y, length(t.xz)) * length(t.xz) * 2. / PI;\n";
|
||||
}
|
||||
|
||||
EX string stereo_shader() {
|
||||
return
|
||||
"t.w += 1.; t *= 2. / t.w; t.w -= 1.;\n"
|
||||
@@ -521,6 +527,11 @@ shared_ptr<glhr::GLprogram> write_shader(flagtype shader_flags) {
|
||||
vmain += panini_shader();
|
||||
shader_flags |= SF_ORIENT;
|
||||
}
|
||||
else if((shader_flags & SF_PERS3) && vid.stereo_mode == sCylindrical && !vrhr::rendering_eye()) {
|
||||
vmain += "t = uPP * t;", vsh += "uniform mediump mat4 uPP;";
|
||||
vmain += cylindrical_shader();
|
||||
shader_flags |= SF_ORIENT;
|
||||
}
|
||||
else if((shader_flags & SF_PERS3) && vid.stereo_mode == sStereographic && !vrhr::rendering_eye()) {
|
||||
vmain += "t = uPP * t;", vsh += "uniform mediump mat4 uPP;";
|
||||
vmain += stereo_shader();
|
||||
|
Reference in New Issue
Block a user