Advertisement
Guest User

Untitled

a guest
Jan 28th, 2015
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1.  
  2.  
  3. //Finds all the properties needed by the main shading function by sampling the GBuffer
  4. inline FragmentData FragmentDataFromGBuffer(float2 screenUV, float3 interpolatedCornersWS)
  5. {
  6. float4 gBuffTex1 = tex2D(JoveMainTexture, screenUV);
  7. float4 gBuffTex2 = tex2D(JoveMaskTexture, screenUV);
  8. #ifdef JOVE_AMBIENT_LIGHTMAP
  9. float4 gBuffTex3 = tex2D(JoveNormalTexture, screenUV);
  10. #else
  11. float2 gBuffTex3 = tex2D(JoveNormalTexture, screenUV).xy;
  12. #endif
  13. float gBuffTex4 = tex2D(JoveDepthTexture, screenUV).x;
  14.  
  15. float depthOverFarPlane = gBuffTex4.x;
  16. float depth = depthOverFarPlane * FarPlane;
  17.  
  18. MaterialData materialData;
  19. materialData.specularColor = DecodeSpecular(gBuffTex2.x, gBuffTex1.xyz, gBuffTex1.w);
  20. materialData.diffuseColor = DecodeDiffuse(gBuffTex1.xyz, materialData.specularColor, gBuffTex2.x);
  21. materialData.metallic = gBuffTex2.x;
  22. materialData.translucency = gBuffTex2.z;
  23. materialData.roughness = CalculateRoughness(gBuffTex2.w);
  24.  
  25. GeometryData geometryData;
  26. geometryData.worldPosition = CalculateWorldPosition(depthOverFarPlane, interpolatedCornersWS);
  27. geometryData.worldNormal = DecodeWorldNormals(gBuffTex3.xy);
  28.  
  29. LookupData lookupData;
  30. lookupData.screenUV = screenUV;
  31. lookupData.depth = depth;
  32.  
  33. LightingData lightingData;
  34. lightingData.ambientOcclusion = min(gBuffTex2.y, SampleAO(screenUV, depthOverFarPlane));
  35.  
  36. ShadingVariables precalculatedVariables = PrecalculateShadingVariables(materialData, geometryData, lookupData, lightingData);
  37.  
  38. FragmentData fragmentData;
  39. fragmentData.materialData = materialData;
  40. fragmentData.geometryData = geometryData;
  41. fragmentData.lookupData = lookupData;
  42. fragmentData.lightingData = lightingData;
  43. fragmentData.precalculatedVariables = precalculatedVariables;
  44.  
  45. return fragmentData;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement