Skip to content

Commit 1a91b03

Browse files
author
Filip Iliescu
committed
use texLod for texcture lookup
1 parent dc5a66e commit 1a91b03

2 files changed

Lines changed: 9 additions & 7 deletions

File tree

Assets/ScriptableRenderPipeline/MobileRenderPipeline/ClassicDeferred/ClassicDeferredPipeline.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -948,16 +948,20 @@ private void SetupLightShaderVariables(CullResults cull, Camera camera, Scriptab
948948
//eyePlane.SetNormalAndPosition(viewDirNormalized, camera.transform.position);
949949

950950
int probeCount = cull.visibleReflectionProbes.Length;
951+
int finalProbeCount = probeCount;
951952
var lightData = new SFiniteLightData[probeCount];
953+
int idx = 0;
952954

953955
for (int i = 0; i < probeCount; ++i) {
954956
var rl = cull.visibleReflectionProbes [i];
955957

956958
// always a box for now
957959
var cubemap = rl.texture;
958-
if (cubemap == null)
960+
if (cubemap == null) {
961+
Debug.Log ("empty cubemap texture");
962+
finalProbeCount--;
959963
continue;
960-
964+
}
961965
var lgtData = new SFiniteLightData();
962966
lgtData.flags = 0;
963967

@@ -1007,7 +1011,7 @@ private void SetupLightShaderVariables(CullResults cull, Camera camera, Scriptab
10071011
lgtData.lightType = (uint)LightDefinitions.BOX_LIGHT;
10081012
lgtData.lightModel = (uint)LightDefinitions.REFLECTION_LIGHT;
10091013

1010-
lightData [i] = lgtData;
1014+
lightData [idx++] = lgtData;
10111015
}
10121016

10131017
s_LightDataBuffer.SetData(lightData);
@@ -1025,7 +1029,7 @@ private void SetupLightShaderVariables(CullResults cull, Camera camera, Scriptab
10251029
cmd.SetGlobalVectorArray("gLightPos", m_LightPositions);
10261030
cmd.SetGlobalMatrixArray("gLightMatrix", m_LightMatrix);
10271031
cmd.SetGlobalMatrixArray("gWorldToLightMatrix", m_WorldToLightMatrix);
1028-
cmd.SetGlobalVector("gLightData", new Vector4(totalLightCount, probeCount, 0, 0));
1032+
cmd.SetGlobalVector("gLightData", new Vector4(totalLightCount, finalProbeCount, 0, 0));
10291033

10301034
cmd.SetGlobalTexture("_spotCookieTextures", m_CookieTexArray.GetTexCache());
10311035
//cmd.SetGlobalTexture("_pointCookieTextures", m_CubeCookieTexArray.GetTexCache());

Assets/ScriptableRenderPipeline/MobileRenderPipeline/ClassicDeferred/UnityStandardForwardMobile.cginc

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,6 @@ float3 RenderReflectionList(uint start, uint numReflProbes, float3 vP, float3 vN
236236

237237
half3 env0 = Unity_GlossyEnvironment(UNITY_PASS_ABSTRACT_CUBE_ARRAY(_reflCubeTextures), lgtDat.sliceIndex, float4(lgtDat.lightIntensity, lgtDat.decodeExp, 0.0, 0.0), g);
238238

239-
240239
UnityIndirect ind;
241240
ind.diffuse = 0;
242241
ind.specular = env0;// * data.occlusion;
@@ -252,7 +251,6 @@ float3 RenderReflectionList(uint start, uint numReflProbes, float3 vP, float3 vN
252251
half falloff = saturate(1.0 - length(distance)/blendDistance);
253252

254253
ints = lerp(ints, rgb, falloff);
255-
256254
}
257255

258256
return ints;
@@ -390,7 +388,7 @@ float3 RenderLightList(uint start, uint numLights, float3 vPw, float3 Vworld)
390388

391389
// distance atten
392390
float att = dot(toLight, toLight) * gLightPos[lightIndex].w;
393-
float atten = tex2D (_LightTextureB0, att.rr).UNITY_ATTEN_CHANNEL;
391+
float atten = tex2Dlod (_LightTextureB0, float4(att.rr, 0.0, 0.0)).UNITY_ATTEN_CHANNEL;
394392

395393
// For debug: spot attenuation -- programatic no cookie
396394
//const float fProjVec = -dot(vL, gLightDirection[lightIndex].xyz); // spotDir = lgtDat.lightAxisZ.xyz

0 commit comments

Comments
 (0)