diff options
Diffstat (limited to 'Scripts')
| -rw-r--r-- | Scripts/Impostors.cs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/Scripts/Impostors.cs b/Scripts/Impostors.cs index e52452b..e1447b6 100644 --- a/Scripts/Impostors.cs +++ b/Scripts/Impostors.cs @@ -161,6 +161,8 @@ public class Impostors : MonoBehaviour if (isDepth) { depthBlitMat.SetTexture("_DepthTex", depthOnlyRT); + depthBlitMat.SetFloat("_Near", cam.nearClipPlane); + depthBlitMat.SetFloat("_Far", cam.farClipPlane); Graphics.Blit(null, linearDepthRT, depthBlitMat); RenderTexture.active = linearDepthRT; } @@ -437,7 +439,7 @@ public class Impostors : MonoBehaviour (new TextureExportSettings("albedo", mipmaps: true, sRGB: true, alphaTransparency: true), "_Impostors_Atlas"), (new TextureExportSettings("normal", mipmaps: true, sRGB: false), "_Impostors_Normal_Atlas"), (new TextureExportSettings("metallic_gloss", mipmaps: true, sRGB: false), "_Impostors_Metallic_Gloss_Atlas"), - (new TextureExportSettings("depth", isEXR: true, mipmaps: false, sRGB: false, filter: FilterMode.Bilinear, uncompressed: true), "_Impostors_Depth_Atlas") + (new TextureExportSettings("depth", isEXR: false, mipmaps: false, sRGB: false, filter: FilterMode.Bilinear, uncompressed: true), "_Impostors_Depth_Atlas") }; // Dilate RGB to prevent dark halos from texture filtering @@ -484,6 +486,8 @@ public class Impostors : MonoBehaviour impostorMaterial.SetTexture(exportSettings[i].materialProp, textures[i]); impostorMaterial.SetInt("_Impostors_Grid_Resolution", gridResolution); impostorMaterial.SetFloat("_Impostors_Sphere_Radius", sphere_radius_); + impostorMaterial.SetFloat("_Impostors_Near_Clip", nearClippingDistance); + impostorMaterial.SetFloat("_Impostors_Far_Clip", sphere_radius_ * 2f + nearClippingDistance); impostorMaterial.SetFloat("_Impostors_Enabled", 1); impostorMaterial.SetFloat("_Impostors_Parallax", 1); impostorMaterial.SetFloat("_Cull", (float)UnityEngine.Rendering.CullMode.Front); @@ -492,7 +496,7 @@ public class Impostors : MonoBehaviour impostorObject = GameObject.CreatePrimitive(PrimitiveType.Quad); impostorObject.name = "Impostor"; impostorObject.transform.SetParent(transform, false); - impostorObject.transform.localScale = Vector3.one; + impostorObject.transform.localScale = Vector3.one * sphere_radius_ * 2.0f; DestroyImmediate(impostorObject.GetComponent<Collider>()); impostorObject.GetComponent<MeshRenderer>().sharedMaterial = impostorMaterial; |
