mirror of
https://github.com/maxartz15/SceneDebugViewer.git
synced 2025-07-01 14:06:10 +02:00
Texel Density preset.
This commit is contained in:
@ -1,75 +0,0 @@
|
||||
// Ref: https://developer.nvidia.com/gpugems/gpugems2/part-iii-high-quality-rendering/chapter-28-mipmap-level-measurement
|
||||
// https://github.com/jintiao/MipmapLevel/blob/master/Assets/MipmapColor.shader
|
||||
|
||||
Shader "Hidden/RS/MipMaps"
|
||||
{
|
||||
SubShader
|
||||
{
|
||||
Tags { "RenderType" = "Opaque" }
|
||||
LOD 100
|
||||
|
||||
Pass
|
||||
{
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
#include "RSUtilsCG.cginc"
|
||||
|
||||
struct appdata
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float2 uv : TEXCOORD0;
|
||||
float2 uvmip : TEXCOORD1;
|
||||
float4 vertex : SV_POSITION;
|
||||
};
|
||||
|
||||
sampler2D _MainTex;
|
||||
float4 _MainTex_ST;
|
||||
float4 _MainTex_TexelSize;
|
||||
float4 _MipMapColors[15]; // max mipmaps = 1 + floor(log2(maxTexSize))
|
||||
int _Max;
|
||||
|
||||
v2f vert(appdata v)
|
||||
{
|
||||
v2f o;
|
||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
||||
|
||||
int mips = RS_MipCount(_MainTex_TexelSize);
|
||||
float2 mipuv = v.uv * (_MainTex_TexelSize.zw / mips);
|
||||
o.uvmip = TRANSFORM_TEX(mipuv, _MainTex);
|
||||
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag(v2f i) : SV_Target
|
||||
{
|
||||
int mipLevels = 1 + floor(log2(max(_MainTex_TexelSize.z, _MainTex_TexelSize.w)));
|
||||
|
||||
// int m = RS_MipMap(i.uvmip, _MainTex_TexelSize);
|
||||
int m = RS_M(i.uvmip, _MainTex_TexelSize);
|
||||
// int m = RS_Mip(i.uvmip, _MainTex_TexelSize, mipLevels);
|
||||
// m = clamp(m, 0, _Max);
|
||||
|
||||
// m = RS_Remap(m, 0, 15, 0, _Max);
|
||||
|
||||
fixed4 mip = _MipMapColors[m];
|
||||
|
||||
fixed4 col = tex2D(_MainTex, i.uv);
|
||||
fixed4 res;
|
||||
res.rgb = lerp(col.rgb, mip.rgb, mip.a);
|
||||
res.a = col.a;
|
||||
|
||||
return res;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 19d63524eb012af4e8e086121f546128
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
preprocessorOverride: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -3,6 +3,7 @@
|
||||
|
||||
sampler2D _RS_Texture;
|
||||
float4 _RS_Texture_ST;
|
||||
float4 _RS_Texture_TexelSize;
|
||||
float _RS_Sharpness;
|
||||
fixed4 _RS_Color;
|
||||
half _RS_Metallic;
|
||||
|
@ -40,9 +40,8 @@ Shader "Hidden/RS/TexelDensity"
|
||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
||||
|
||||
int mips = RS_MipCount(_MainTex_TexelSize);
|
||||
float2 mipuv = v.uv * (_MainTex_TexelSize.zw / mips);
|
||||
o.uvmip = TRANSFORM_TEX(mipuv, _MainTex);
|
||||
//int mip = RS_MipMap(o.uv, _RS_Texture_TexelSize);
|
||||
o.uvmip = o.uv * _MainTex_TexelSize.zw / (_RS_Texture_TexelSize.zw / 4.0);
|
||||
|
||||
return o;
|
||||
}
|
||||
|
Reference in New Issue
Block a user