Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
Alchemy Viewer
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Deploy
Releases
Package registry
Operate
Terraform modules
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Silent mode is enabled
All outbound communications are blocked.
Learn more
.
Show more breadcrumbs
Alchemy Viewer
Alchemy Viewer
Commits
abb72591
Commit
abb72591
authored
12 years ago
by
Graham Madarasz
Browse files
Options
Downloads
Patches
Plain Diff
Fixed line endings on shader
parent
89441228
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl
+215
-215
215 additions, 215 deletions
.../newview/app_settings/shaders/class2/deferred/alphaV.glsl
with
215 additions
and
215 deletions
indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl
+
215
−
215
View file @
abb72591
/**
/**
* @file alphaV.glsl
* @file alphaV.glsl
*
*
* $LicenseInfo:firstyear=2007&license=viewerlgpl$
* $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
* Second Life Viewer Source Code
* Copyright (C) 2007, Linden Research, Inc.
* Copyright (C) 2007, Linden Research, Inc.
*
*
* This library is free software; you can redistribute it and/or
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
* version 2.1 of the License only.
*
*
* This library is distributed in the hope that it will be useful,
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
* Lesser General Public License for more details.
*
*
* You should have received a copy of the GNU Lesser General Public
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
*
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
* $/LicenseInfo$
*/
*/
vec4
calcLighting
(
vec3
pos
,
vec3
norm
,
vec4
color
,
vec4
baseCol
);
vec4
calcLighting
(
vec3
pos
,
vec3
norm
,
vec4
color
,
vec4
baseCol
);
void
calcAtmospherics
(
vec3
inPositionEye
);
void
calcAtmospherics
(
vec3
inPositionEye
);
vec3
calcDirectionalLight
(
vec3
n
,
vec3
l
);
vec3
calcDirectionalLight
(
vec3
n
,
vec3
l
);
vec3
atmosAmbient
(
vec3
light
);
vec3
atmosAmbient
(
vec3
light
);
vec3
atmosAffectDirectionalLight
(
float
lightIntensity
);
vec3
atmosAffectDirectionalLight
(
float
lightIntensity
);
vec3
scaleDownLight
(
vec3
light
);
vec3
scaleDownLight
(
vec3
light
);
vec3
scaleUpLight
(
vec3
light
);
vec3
scaleUpLight
(
vec3
light
);
uniform
mat3
normal_matrix
;
uniform
mat3
normal_matrix
;
uniform
mat4
texture_matrix0
;
uniform
mat4
texture_matrix0
;
uniform
mat4
projection_matrix
;
uniform
mat4
projection_matrix
;
uniform
mat4
modelview_matrix
;
uniform
mat4
modelview_matrix
;
uniform
mat4
modelview_projection_matrix
;
uniform
mat4
modelview_projection_matrix
;
ATTRIBUTE
vec3
position
;
ATTRIBUTE
vec3
position
;
#ifdef USE_INDEXED_TEX
#ifdef USE_INDEXED_TEX
void
passTextureIndex
();
void
passTextureIndex
();
#endif
#endif
ATTRIBUTE
vec3
normal
;
ATTRIBUTE
vec3
normal
;
#ifdef USE_VERTEX_COLOR
#ifdef USE_VERTEX_COLOR
ATTRIBUTE
vec4
diffuse_color
;
ATTRIBUTE
vec4
diffuse_color
;
#endif
#endif
ATTRIBUTE
vec2
texcoord0
;
ATTRIBUTE
vec2
texcoord0
;
#ifdef HAS_SKIN
#ifdef HAS_SKIN
mat4
getObjectSkinnedTransform
();
mat4
getObjectSkinnedTransform
();
#else
#else
#ifdef IS_AVATAR_SKIN
#ifdef IS_AVATAR_SKIN
mat4
getSkinnedTransform
();
mat4
getSkinnedTransform
();
#endif
#endif
#endif
#endif
VARYING
vec3
vary_ambient
;
VARYING
vec3
vary_ambient
;
VARYING
vec3
vary_directional
;
VARYING
vec3
vary_directional
;
VARYING
vec3
vary_fragcoord
;
VARYING
vec3
vary_fragcoord
;
VARYING
vec3
vary_position
;
VARYING
vec3
vary_position
;
VARYING
vec3
vary_pointlight_col
;
VARYING
vec3
vary_pointlight_col
;
#ifdef USE_VERTEX_COLOR
#ifdef USE_VERTEX_COLOR
VARYING
vec4
vertex_color
;
VARYING
vec4
vertex_color
;
#endif
#endif
VARYING
vec2
vary_texcoord0
;
VARYING
vec2
vary_texcoord0
;
VARYING
vec3
vary_norm
;
VARYING
vec3
vary_norm
;
uniform
float
near_clip
;
uniform
float
near_clip
;
uniform
float
shadow_offset
;
uniform
float
shadow_offset
;
uniform
float
shadow_bias
;
uniform
float
shadow_bias
;
uniform
vec4
light_position
[
8
];
uniform
vec4
light_position
[
8
];
uniform
vec3
light_direction
[
8
];
uniform
vec3
light_direction
[
8
];
uniform
vec3
light_attenuation
[
8
];
uniform
vec3
light_attenuation
[
8
];
uniform
vec3
light_diffuse
[
8
];
uniform
vec3
light_diffuse
[
8
];
vec3
calcDirectionalLight
(
vec3
n
,
vec3
l
)
vec3
calcDirectionalLight
(
vec3
n
,
vec3
l
)
{
{
float
a
=
max
(
dot
(
n
,
l
),
0
.
0
);
float
a
=
max
(
dot
(
n
,
l
),
0
.
0
);
return
vec3
(
a
,
a
,
a
);
return
vec3
(
a
,
a
,
a
);
}
}
vec3
calcPointLightOrSpotLight
(
vec3
v
,
vec3
n
,
vec4
lp
,
vec3
ln
,
float
la
,
float
fa
,
float
is_pointlight
)
vec3
calcPointLightOrSpotLight
(
vec3
v
,
vec3
n
,
vec4
lp
,
vec3
ln
,
float
la
,
float
fa
,
float
is_pointlight
)
{
{
//get light vector
//get light vector
vec3
lv
=
lp
.
xyz
-
v
;
vec3
lv
=
lp
.
xyz
-
v
;
//get distance
//get distance
float
d
=
dot
(
lv
,
lv
);
float
d
=
dot
(
lv
,
lv
);
float
da
=
0
.
0
;
float
da
=
0
.
0
;
if
(
d
>
0
.
0
&&
la
>
0
.
0
&&
fa
>
0
.
0
)
if
(
d
>
0
.
0
&&
la
>
0
.
0
&&
fa
>
0
.
0
)
{
{
//normalize light vector
//normalize light vector
lv
=
normalize
(
lv
);
lv
=
normalize
(
lv
);
//distance attenuation
//distance attenuation
float
dist2
=
d
/
la
;
float
dist2
=
d
/
la
;
da
=
clamp
(
1
.
0
-
(
dist2
-
1
.
0
*
(
1
.
0
-
fa
))
/
fa
,
0
.
0
,
1
.
0
);
da
=
clamp
(
1
.
0
-
(
dist2
-
1
.
0
*
(
1
.
0
-
fa
))
/
fa
,
0
.
0
,
1
.
0
);
// spotlight coefficient.
// spotlight coefficient.
float
spot
=
max
(
dot
(
-
ln
,
lv
),
is_pointlight
);
float
spot
=
max
(
dot
(
-
ln
,
lv
),
is_pointlight
);
da
*=
spot
*
spot
;
// GL_SPOT_EXPONENT=2
da
*=
spot
*
spot
;
// GL_SPOT_EXPONENT=2
//angular attenuation
//angular attenuation
da
*=
max
(
dot
(
n
,
lv
),
0
.
0
);
da
*=
max
(
dot
(
n
,
lv
),
0
.
0
);
}
}
return
vec3
(
da
,
da
,
da
);
return
vec3
(
da
,
da
,
da
);
}
}
void
main
()
void
main
()
{
{
vec4
pos
;
vec4
pos
;
vec3
norm
;
vec3
norm
;
//transform vertex
//transform vertex
#ifdef HAS_SKIN
#ifdef HAS_SKIN
mat4
trans
=
getObjectSkinnedTransform
();
mat4
trans
=
getObjectSkinnedTransform
();
trans
=
modelview_matrix
*
trans
;
trans
=
modelview_matrix
*
trans
;
pos
=
trans
*
vec4
(
position
.
xyz
,
1
.
0
);
pos
=
trans
*
vec4
(
position
.
xyz
,
1
.
0
);
norm
=
position
.
xyz
+
normal
.
xyz
;
norm
=
position
.
xyz
+
normal
.
xyz
;
norm
=
normalize
((
trans
*
vec4
(
norm
,
1
.
0
)).
xyz
-
pos
.
xyz
);
norm
=
normalize
((
trans
*
vec4
(
norm
,
1
.
0
)).
xyz
-
pos
.
xyz
);
vec4
frag_pos
=
projection_matrix
*
pos
;
vec4
frag_pos
=
projection_matrix
*
pos
;
gl_Position
=
frag_pos
;
gl_Position
=
frag_pos
;
#else
#else
#ifdef IS_AVATAR_SKIN
#ifdef IS_AVATAR_SKIN
mat4
trans
=
getSkinnedTransform
();
mat4
trans
=
getSkinnedTransform
();
vec4
pos_in
=
vec4
(
position
.
xyz
,
1
.
0
);
vec4
pos_in
=
vec4
(
position
.
xyz
,
1
.
0
);
pos
.
x
=
dot
(
trans
[
0
],
pos_in
);
pos
.
x
=
dot
(
trans
[
0
],
pos_in
);
pos
.
y
=
dot
(
trans
[
1
],
pos_in
);
pos
.
y
=
dot
(
trans
[
1
],
pos_in
);
pos
.
z
=
dot
(
trans
[
2
],
pos_in
);
pos
.
z
=
dot
(
trans
[
2
],
pos_in
);
pos
.
w
=
1
.
0
;
pos
.
w
=
1
.
0
;
norm
.
x
=
dot
(
trans
[
0
].
xyz
,
normal
);
norm
.
x
=
dot
(
trans
[
0
].
xyz
,
normal
);
norm
.
y
=
dot
(
trans
[
1
].
xyz
,
normal
);
norm
.
y
=
dot
(
trans
[
1
].
xyz
,
normal
);
norm
.
z
=
dot
(
trans
[
2
].
xyz
,
normal
);
norm
.
z
=
dot
(
trans
[
2
].
xyz
,
normal
);
norm
=
normalize
(
norm
);
norm
=
normalize
(
norm
);
vec4
frag_pos
=
projection_matrix
*
pos
;
vec4
frag_pos
=
projection_matrix
*
pos
;
gl_Position
=
frag_pos
;
gl_Position
=
frag_pos
;
#else
#else
norm
=
normalize
(
normal_matrix
*
normal
);
norm
=
normalize
(
normal_matrix
*
normal
);
vec4
vert
=
vec4
(
position
.
xyz
,
1
.
0
);
vec4
vert
=
vec4
(
position
.
xyz
,
1
.
0
);
pos
=
(
modelview_matrix
*
vert
);
pos
=
(
modelview_matrix
*
vert
);
gl_Position
=
modelview_projection_matrix
*
vec4
(
position
.
xyz
,
1
.
0
);
gl_Position
=
modelview_projection_matrix
*
vec4
(
position
.
xyz
,
1
.
0
);
#endif
#endif
#endif
#endif
#ifdef USE_INDEXED_TEX
#ifdef USE_INDEXED_TEX
passTextureIndex
();
passTextureIndex
();
vary_texcoord0
=
(
texture_matrix0
*
vec4
(
texcoord0
,
0
,
1
)).
xy
;
vary_texcoord0
=
(
texture_matrix0
*
vec4
(
texcoord0
,
0
,
1
)).
xy
;
#else
#else
vary_texcoord0
=
texcoord0
;
vary_texcoord0
=
texcoord0
;
#endif
#endif
vary_norm
=
norm
;
vary_norm
=
norm
;
float
dp_directional_light
=
max
(
0
.
0
,
dot
(
norm
,
light_position
[
0
].
xyz
));
float
dp_directional_light
=
max
(
0
.
0
,
dot
(
norm
,
light_position
[
0
].
xyz
));
vary_position
=
pos
.
xyz
+
light_position
[
0
].
xyz
*
(
1
.
0
-
dp_directional_light
)
*
shadow_offset
;
vary_position
=
pos
.
xyz
+
light_position
[
0
].
xyz
*
(
1
.
0
-
dp_directional_light
)
*
shadow_offset
;
calcAtmospherics
(
pos
.
xyz
);
calcAtmospherics
(
pos
.
xyz
);
#ifndef USE_VERTEX_COLOR
#ifndef USE_VERTEX_COLOR
vec4
diffuse_color
=
vec4
(
1
,
1
,
1
,
1
);
vec4
diffuse_color
=
vec4
(
1
,
1
,
1
,
1
);
#endif
#endif
//vec4 color = calcLighting(pos.xyz, norm, diffuse_color, vec4(0.));
//vec4 color = calcLighting(pos.xyz, norm, diffuse_color, vec4(0.));
vec4
col
=
vec4
(
0
.
0
,
0
.
0
,
0
.
0
,
diffuse_color
.
a
);
vec4
col
=
vec4
(
0
.
0
,
0
.
0
,
0
.
0
,
diffuse_color
.
a
);
vec3
dff
=
pow
(
diffuse_color
.
rgb
,
vec3
(
2
.
2
f
,
2
.
2
f
,
2
.
2
f
));
vec3
dff
=
pow
(
diffuse_color
.
rgb
,
vec3
(
2
.
2
f
,
2
.
2
f
,
2
.
2
f
));
vary_pointlight_col
=
dff
;
vary_pointlight_col
=
dff
;
col
.
rgb
=
vec3
(
0
,
0
,
0
);
col
.
rgb
=
vec3
(
0
,
0
,
0
);
// Add windlight lights
// Add windlight lights
col
.
rgb
=
atmosAmbient
(
col
.
rgb
);
col
.
rgb
=
atmosAmbient
(
col
.
rgb
);
vary_directional
.
rgb
=
atmosAffectDirectionalLight
(
1
.
0
f
);
vary_directional
.
rgb
=
atmosAffectDirectionalLight
(
1
.
0
f
);
vary_ambient
=
col
.
rgb
*
dff
;
vary_ambient
=
col
.
rgb
*
dff
;
col
.
rgb
=
col
.
rgb
*
dff
;
col
.
rgb
=
col
.
rgb
*
dff
;
#ifdef USE_VERTEX_COLOR
#ifdef USE_VERTEX_COLOR
vertex_color
=
col
;
vertex_color
=
col
;
#endif
#endif
#ifdef HAS_SKIN
#ifdef HAS_SKIN
vary_fragcoord
.
xyz
=
frag_pos
.
xyz
+
vec3
(
0
,
0
,
near_clip
);
vary_fragcoord
.
xyz
=
frag_pos
.
xyz
+
vec3
(
0
,
0
,
near_clip
);
#else
#else
#ifdef IS_AVATAR_SKIN
#ifdef IS_AVATAR_SKIN
vary_fragcoord
.
xyz
=
pos
.
xyz
+
vec3
(
0
,
0
,
near_clip
);
vary_fragcoord
.
xyz
=
pos
.
xyz
+
vec3
(
0
,
0
,
near_clip
);
#else
#else
pos
=
modelview_projection_matrix
*
vert
;
pos
=
modelview_projection_matrix
*
vert
;
vary_fragcoord
.
xyz
=
pos
.
xyz
+
vec3
(
0
,
0
,
near_clip
);
vary_fragcoord
.
xyz
=
pos
.
xyz
+
vec3
(
0
,
0
,
near_clip
);
#endif
#endif
#endif
#endif
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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!
Save comment
Cancel
Please
register
or
sign in
to comment