延迟渲染测试成功(内置几何体法不正确,待修正)

This commit is contained in:
hyzboy 2019-07-17 21:43:36 +08:00
parent 4d51417f2b
commit 39db360b4a
6 changed files with 15 additions and 56 deletions

View File

@ -279,7 +279,7 @@ private:
bool InitMaterial() bool InitMaterial()
{ {
if(!InitSubpass(&sp_gbuffer, OS_TEXT("res/shader/gbuffer_opaque.vert.spv"),OS_TEXT("res/shader/gbuffer_opaque.frag.spv")))return(false); if(!InitSubpass(&sp_gbuffer, OS_TEXT("res/shader/gbuffer_opaque.vert.spv"),OS_TEXT("res/shader/gbuffer_opaque.frag.spv")))return(false);
if(!InitSubpass(&sp_composition,OS_TEXT("res/shader/gbuffer_debug.vert.spv"),OS_TEXT("res/shader/gbuffer_debug.frag.spv")))return(false); if(!InitSubpass(&sp_composition,OS_TEXT("res/shader/gbuffer_composition.vert.spv"),OS_TEXT("res/shader/gbuffer_composition.frag.spv")))return(false);
if(!InitGBufferPipeline(&sp_gbuffer))return(false); if(!InitGBufferPipeline(&sp_gbuffer))return(false);
if(!InitCompositionPipeline(&sp_composition))return(false); if(!InitCompositionPipeline(&sp_composition))return(false);

View File

@ -28,21 +28,9 @@ void main()
vec3 normal =texture(GB_Normal, FragmentPosition).xyz; vec3 normal =texture(GB_Normal, FragmentPosition).xyz;
vec3 color =texture(GB_Color, FragmentPosition).xyz; vec3 color =texture(GB_Color, FragmentPosition).xyz;
vec3 light_pos=vec3(1,1,1); vec3 sun_light_direction=vec3(1,1,1);
vec3 light_halfVector=vec3(1,1,1);
float sun_light_intensity=max(dot(normal,sun_light_direction),0.0);
float pf; FragColor=vec4(color*sun_light_intensity,1.0);
float nDotVP=max(0.0,dot(normal,normalize(light_pos)));
float nDotHV=max(0.0,dot(normal,normalize(light_halfVector)));
if(nDotVP==0.0)
{
pf=0.0;
}
else
{
pf=pow(nDotHV,
}
} }

View File

@ -17,24 +17,13 @@ layout(binding = 0) uniform sampler2D GB_Position;
layout(binding = 1) uniform sampler2D GB_Normal; layout(binding = 1) uniform sampler2D GB_Normal;
layout(binding = 2) uniform sampler2D GB_Color; layout(binding = 2) uniform sampler2D GB_Color;
layout(location = 0) in vec2 FragmentPosition; layout(location = 0) flat in uint FragmentTexID;
layout(location = 1) flat in uint FragmentTexID; layout(location = 1) in vec2 FragmentTexCoord;
layout(location = 2) in vec2 FragmentTexCoord;
layout(location = 0) out vec4 FragColor; layout(location = 0) out vec4 FragColor;
void main() void main()
{ {
FragColor=vec4(normalize(FragmentPosition),0.0,1.0); FragColor=texture(GB_Normal,FragmentTexCoord);
/* vec3 components[3];
components[0]=texture(GB_Position, FragmentTexCoord).xyz;
components[1]=texture(GB_Normal, FragmentTexCoord).xyz;
components[2]=texture(GB_Color, FragmentTexCoord).xyz;
if(FragmentTexID<3)
FragColor=vec4(components[FragmentTexID],1.0);
else
FragColor=vec4(0.0,0.0,0.0,1.0);*/
} }

View File

@ -2,30 +2,12 @@
layout(location = 0) in vec2 Vertex; layout(location = 0) in vec2 Vertex;
layout(location = 0) out vec2 FragmentPosition; layout(location = 0) out uint FragmentTexID;
layout(location = 1) out vec2 FragmentTexCoord;
layout(location = 1) out uint FragmentTexID;
layout(location = 2) out vec2 FragmentTexCoord;
void main() void main()
{ {
gl_Position=vec4(Vertex,0.0,1.0); gl_Position=vec4(Vertex,0.0,1.0);
FragmentPosition=Vertex;
FragmentTexCoord=(Vertex+1.0)/2.0; FragmentTexCoord=(Vertex+1.0)/2.0;
if(Vertex.x<0)
{
if(Vertex.y<0)
FragmentTexID=0;
else
FragmentTexID=1;
}
else
{
if(Vertex.y<0)
FragmentTexID=2;
else
FragmentTexID=3;
}
} }

View File

@ -16,14 +16,14 @@ void main()
{ {
outPosition=vec4(normalize(FragmentPosition*2.0-vec3(1.0)),1.0); outPosition=vec4(normalize(FragmentPosition*2.0-vec3(1.0)),1.0);
/*vec3 N = normalize(FragmentNormal); vec3 N = normalize(FragmentNormal);
vec3 T = normalize(FragmentTangent); vec3 T = normalize(FragmentTangent);
vec3 B = cross(N,T); vec3 B = cross(N,T);
mat3 TBN = mat3(T,B,N); mat3 TBN = mat3(T,B,N);
vec3 tnorm = (texture(TextureNormal,FragmentTexCoord).xyz*2.0-vec3(1.0))*TBN; vec3 tnorm = (texture(TextureNormal,FragmentTexCoord).xyz*2.0-vec3(1.0))*TBN;
outNormal=vec4(normalize(tnorm),1.0);*/ outNormal=vec4(normalize(tnorm),1.0);
outNormal=vec4(normalize(FragmentNormal),1.0); //outNormal=vec4(normalize(FragmentNormal),1.0);
outColor=texture(TextureColor,FragmentTexCoord); outColor=texture(TextureColor,FragmentTexCoord);
} }

View File

@ -1098,8 +1098,8 @@ namespace hgl
if(np) if(np)
{ {
*np = 0.0f;++np; *np = 0.0f;++np;
*np = -1.0f;++np;
*np = 0.0f;++np; *np = 0.0f;++np;
*np = 1.0f;++np;
} }
if(tp) if(tp)
@ -1126,8 +1126,8 @@ namespace hgl
if(np) if(np)
{ {
*np = 0.0f;++np; *np = 0.0f;++np;
*np = -1.0f;++np;
*np = 0.0f;++np; *np = 0.0f;++np;
*np = 1.0f;++np;
} }
if(tp) if(tp)
@ -1159,8 +1159,8 @@ namespace hgl
if(np) if(np)
{ {
*np = h / l * cosf(currentAngle); ++np; *np = h / l * cosf(currentAngle); ++np;
*np = r / l; ++np;
*np = h / l * -sinf(currentAngle); ++np; *np = h / l * -sinf(currentAngle); ++np;
*np =-r / l; ++np;
} }
if(tp) if(tp)