Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Dalai Felinto
virtual_reality_viewport
Commits
867cd000
Commit
867cd000
authored
Oct 09, 2015
by
Dalai Felinto
Browse files
The shaders are no longer needed since we are using the SDK for them
parent
725fb0a8
Changes
2
Hide whitespace changes
Inline
Side-by-side
space_view3d_virtual_reality/shaders/oculus_dk1.glsl
deleted
100644 → 0
View file @
725fb0a8
// Oculus DK1 lens distortion shader for multiple eyes
// shader is adapted from Oculus DK1 distortion shader by
// Lubosz Sarnecki(lubosz.wordpress.com/)
uniform
sampler2D
bgl_RenderedTexture
;
uniform
float
bgl_RenderedTextureWidth
;
uniform
float
bgl_RenderedTextureHeight
;
const
vec4
kappa
=
vec4
(
1
.
0
,
1
.
7
,
0
.
7
,
15
.
0
);
float
screen_width
=
bgl_RenderedTextureWidth
;
float
screen_height
=
bgl_RenderedTextureHeight
;
const
float
scaleFactor
=
0
.
8
;
const
vec2
leftCenter
=
vec2
(
0
.
25
,
0
.
5
);
const
vec2
rightCenter
=
vec2
(
0
.
75
,
0
.
5
);
const
float
separation
=
0
.
01
;
// Scales input texture coordinates for distortion.
vec2
hmdWarp
(
vec2
LensCenter
,
vec2
texCoord
,
vec2
Scale
,
vec2
ScaleIn
)
{
vec2
theta
=
(
texCoord
-
LensCenter
)
*
ScaleIn
;
float
rSq
=
theta
.
x
*
theta
.
x
+
theta
.
y
*
theta
.
y
;
vec2
rvector
=
theta
*
(
kappa
.
x
+
kappa
.
y
*
rSq
+
kappa
.
z
*
rSq
*
rSq
+
kappa
.
w
*
rSq
*
rSq
*
rSq
);
vec2
tc
=
LensCenter
+
Scale
*
rvector
;
return
tc
;
}
bool
validate
(
vec2
tc
,
int
left_eye
)
{
//keep within bounds of texture
if
((
left_eye
==
1
&&
(
tc
.
x
<
0
.
0
||
tc
.
x
>
0
.
5
))
||
(
left_eye
==
0
&&
(
tc
.
x
<
0
.
5
||
tc
.
x
>
1
.
0
))
||
tc
.
y
<
0
.
0
||
tc
.
y
>
1
.
0
)
{
return
false
;
}
return
true
;
}
void
main
()
{
vec2
screen
=
vec2
(
screen_width
,
screen_height
);
float
as
=
float
(
screen
.
x
/
2
.
0
)
/
float
(
screen
.
y
);
vec2
Scale
=
vec2
(
0
.
5
,
as
);
vec2
ScaleIn
=
vec2
(
2
.
0
*
scaleFactor
,
1
.
0
/
as
*
scaleFactor
);
vec2
texCoord
=
gl_TexCoord
[
0
].
st
;
vec2
texCoordSeparated
=
texCoord
;
vec2
tc
=
vec2
(
0
);
vec4
color
=
vec4
(
0
);
// ad hoc enhanced separation to allow proper viewing factor
float
ad_hoc_enhance_stereo
=
4
.
0
;
if
(
texCoord
.
x
<
0
.
5
)
{
texCoordSeparated
.
x
-=
ad_hoc_enhance_stereo
*
separation
;
tc
=
hmdWarp
(
leftCenter
,
texCoordSeparated
,
Scale
,
ScaleIn
);
color
=
texture2D
(
bgl_RenderedTexture
,
tc
);
if
(
!
validate
(
tc
,
1
))
color
=
vec4
(
0
);
}
else
{
texCoordSeparated
.
x
+=
ad_hoc_enhance_stereo
*
separation
;
tc
=
hmdWarp
(
rightCenter
,
texCoordSeparated
,
Scale
,
ScaleIn
);
color
=
texture2D
(
bgl_RenderedTexture
,
tc
);
if
(
!
validate
(
tc
,
0
))
color
=
vec4
(
0
);
}
gl_FragColor
=
color
;
}
space_view3d_virtual_reality/shaders/oculus_dk2.glsl
deleted
100644 → 0
View file @
725fb0a8
// Oculus DK2 lens distortion shader for single eye
// shader is adapted from Oculus DK1 distortion shader by
// Lubosz Sarnecki(lubosz.wordpress.com/)
uniform
sampler2D
bgl_RenderedTexture
;
uniform
float
bgl_RenderedTextureWidth
;
uniform
float
bgl_RenderedTextureHeight
;
const
vec4
kappa
=
vec4
(
1
.
0
,
0
.
9
,
1
.
0
,
2
.
0
);
float
screen_width
=
bgl_RenderedTextureWidth
;
float
screen_height
=
bgl_RenderedTextureHeight
;
const
float
scaleFactor
=
0
.
83
;
const
vec2
lensCenter
=
vec2
(
0
.
5
,
0
.
5
);
// Scales input texture coordinates for distortion.
vec2
hmdWarp
(
vec2
texCoord
,
vec2
Scale
,
vec2
ScaleIn
,
float
eta
)
{
vec2
theta
=
(
texCoord
-
lensCenter
)
*
ScaleIn
;
float
rSq
=
theta
.
x
*
theta
.
x
+
theta
.
y
*
theta
.
y
;
vec2
rvector
=
theta
*
(
kappa
.
x
+
kappa
.
y
*
rSq
+
kappa
.
z
*
rSq
*
rSq
+
kappa
.
w
*
rSq
*
rSq
*
rSq
);
vec2
tc
=
lensCenter
+
Scale
*
eta
*
rvector
;
return
tc
;
}
float
edges
(
vec2
tc
)
{
float
vertL
=
smoothstep
(
0
.
0
,
0
.
05
,
tc
.
x
);
float
vertR
=
smoothstep
(
1
.
0
,
0
.
95
,
tc
.
x
);
float
horizL
=
smoothstep
(
0
.
0
,
0
.
05
,
tc
.
y
);
float
horizR
=
smoothstep
(
1
.
0
,
0
.
95
,
tc
.
y
);
return
vertL
*
vertR
*
horizL
*
horizR
;
}
void
main
()
{
vec2
screen
=
vec2
(
screen_width
,
screen_height
);
vec3
eta
=
vec3
(
1
.
00
,
1
.
01
8
,
1
.
042
);
//refraction indices
float
as
=
float
(
screen
.
x
)
/
float
(
screen
.
y
);
vec2
Scale
=
vec2
(
1
.
0
,
1
.
0
);
vec2
ScaleIn
=
vec2
(
scaleFactor
,
scaleFactor
);
vec2
texCoord
=
gl_TexCoord
[
0
].
st
;
vec2
tcR
=
vec2
(
0
.
0
);
vec2
tcG
=
vec2
(
0
.
0
);
vec2
tcB
=
vec2
(
0
.
0
);
vec4
color
=
vec4
(
0
.
0
);
tcR
=
hmdWarp
(
texCoord
,
Scale
,
ScaleIn
,
eta
.
r
);
tcG
=
hmdWarp
(
texCoord
,
Scale
,
ScaleIn
,
eta
.
g
);
tcB
=
hmdWarp
(
texCoord
,
Scale
,
ScaleIn
,
eta
.
b
);
color
.
r
=
texture2D
(
bgl_RenderedTexture
,
tcR
*
vec2
(
0
.
5
,
1
.
0
)
+
vec2
(
0
.
25
,
0
.
0
)).
r
;
color
.
g
=
texture2D
(
bgl_RenderedTexture
,
tcG
*
vec2
(
0
.
5
,
1
.
0
)
+
vec2
(
0
.
25
,
0
.
0
)).
g
;
color
.
b
=
texture2D
(
bgl_RenderedTexture
,
tcB
*
vec2
(
0
.
5
,
1
.
0
)
+
vec2
(
0
.
25
,
0
.
0
)).
b
;
color
=
color
*
edges
(
tcR
);
gl_FragColor
=
color
;
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment