Factorize EncodeNormal from Pass1 shaders.
This commit is contained in:
parent
f0e96bb7f2
commit
77e5f413c7
@ -13,11 +13,8 @@ varying vec2 uv;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// from Crytek "a bit more deferred CryEngine"
|
|
||||||
vec2 EncodeNormal(vec3 n)
|
vec2 EncodeNormal(vec3 n);
|
||||||
{
|
|
||||||
return normalize(n.xy) * sqrt(n.z * 0.5 + 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
|
@ -6,13 +6,7 @@ varying vec3 nor;
|
|||||||
#define EncodedNormal gl_FragColor.xy
|
#define EncodedNormal gl_FragColor.xy
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
vec2 EncodeNormal(vec3 n);
|
||||||
|
|
||||||
// from Crytek "a bit more deferred CryEngine"
|
|
||||||
vec2 EncodeNormal(vec3 n)
|
|
||||||
{
|
|
||||||
return normalize(n.xy) * sqrt(n.z * 0.5 + 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
void main(void)
|
void main(void)
|
||||||
{
|
{
|
||||||
|
@ -10,12 +10,7 @@ varying vec2 uv;
|
|||||||
#define EncodedNormal gl_FragColor.xy
|
#define EncodedNormal gl_FragColor.xy
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
vec2 EncodeNormal(vec3 n);
|
||||||
// from Crytek "a bit more deferred CryEngine"
|
|
||||||
vec2 EncodeNormal(vec3 n)
|
|
||||||
{
|
|
||||||
return normalize(n.xy) * sqrt(n.z * 0.5 + 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
vec4 col = texture(tex, uv);
|
vec4 col = texture(tex, uv);
|
||||||
|
5
data/shaders/utils/encode_normal.frag
Normal file
5
data/shaders/utils/encode_normal.frag
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
// from Crytek "a bit more deferred CryEngine"
|
||||||
|
vec2 EncodeNormal(vec3 n)
|
||||||
|
{
|
||||||
|
return normalize(n.xy) * sqrt(n.z * 0.5 + 0.5);
|
||||||
|
}
|
@ -326,6 +326,7 @@ namespace MeshShader
|
|||||||
{
|
{
|
||||||
Program = LoadProgram(
|
Program = LoadProgram(
|
||||||
GL_VERTEX_SHADER, file_manager->getAsset("shaders/object_pass1.vert").c_str(),
|
GL_VERTEX_SHADER, file_manager->getAsset("shaders/object_pass1.vert").c_str(),
|
||||||
|
GL_FRAGMENT_SHADER, file_manager->getAsset("shaders/utils/encode_normal.frag").c_str(),
|
||||||
GL_FRAGMENT_SHADER, file_manager->getAsset("shaders/object_pass1.frag").c_str());
|
GL_FRAGMENT_SHADER, file_manager->getAsset("shaders/object_pass1.frag").c_str());
|
||||||
attrib_position = glGetAttribLocation(Program, "Position");
|
attrib_position = glGetAttribLocation(Program, "Position");
|
||||||
attrib_normal = glGetAttribLocation(Program, "Normal");
|
attrib_normal = glGetAttribLocation(Program, "Normal");
|
||||||
@ -352,6 +353,7 @@ namespace MeshShader
|
|||||||
{
|
{
|
||||||
Program = LoadProgram(
|
Program = LoadProgram(
|
||||||
GL_VERTEX_SHADER, file_manager->getAsset("shaders/objectref_pass1.vert").c_str(),
|
GL_VERTEX_SHADER, file_manager->getAsset("shaders/objectref_pass1.vert").c_str(),
|
||||||
|
GL_FRAGMENT_SHADER, file_manager->getAsset("shaders/utils/encode_normal.frag").c_str(),
|
||||||
GL_FRAGMENT_SHADER, file_manager->getAsset("shaders/objectref_pass1.frag").c_str());
|
GL_FRAGMENT_SHADER, file_manager->getAsset("shaders/objectref_pass1.frag").c_str());
|
||||||
attrib_position = glGetAttribLocation(Program, "Position");
|
attrib_position = glGetAttribLocation(Program, "Position");
|
||||||
attrib_normal = glGetAttribLocation(Program, "Normal");
|
attrib_normal = glGetAttribLocation(Program, "Normal");
|
||||||
@ -384,6 +386,7 @@ namespace MeshShader
|
|||||||
{
|
{
|
||||||
Program = LoadProgram(
|
Program = LoadProgram(
|
||||||
GL_VERTEX_SHADER, file_manager->getAsset("shaders/grass_pass1.vert").c_str(),
|
GL_VERTEX_SHADER, file_manager->getAsset("shaders/grass_pass1.vert").c_str(),
|
||||||
|
GL_FRAGMENT_SHADER, file_manager->getAsset("shaders/utils/encode_normal.frag").c_str(),
|
||||||
GL_FRAGMENT_SHADER, file_manager->getAsset("shaders/objectref_pass1.frag").c_str());
|
GL_FRAGMENT_SHADER, file_manager->getAsset("shaders/objectref_pass1.frag").c_str());
|
||||||
attrib_position = glGetAttribLocation(Program, "Position");
|
attrib_position = glGetAttribLocation(Program, "Position");
|
||||||
attrib_texcoord = glGetAttribLocation(Program, "Texcoord");
|
attrib_texcoord = glGetAttribLocation(Program, "Texcoord");
|
||||||
@ -416,6 +419,7 @@ namespace MeshShader
|
|||||||
{
|
{
|
||||||
Program = LoadProgram(
|
Program = LoadProgram(
|
||||||
GL_VERTEX_SHADER, file_manager->getAsset("shaders/normalmap.vert").c_str(),
|
GL_VERTEX_SHADER, file_manager->getAsset("shaders/normalmap.vert").c_str(),
|
||||||
|
GL_FRAGMENT_SHADER, file_manager->getAsset("shaders/utils/encode_normal.frag").c_str(),
|
||||||
GL_FRAGMENT_SHADER, file_manager->getAsset("shaders/normalmap.frag").c_str());
|
GL_FRAGMENT_SHADER, file_manager->getAsset("shaders/normalmap.frag").c_str());
|
||||||
attrib_position = glGetAttribLocation(Program, "Position");
|
attrib_position = glGetAttribLocation(Program, "Position");
|
||||||
attrib_texcoord = glGetAttribLocation(Program, "Texcoord");
|
attrib_texcoord = glGetAttribLocation(Program, "Texcoord");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user