diff --git a/src/pomMaterial.ts b/src/pomMaterial.ts index d6e5147..8f68ea3 100644 --- a/src/pomMaterial.ts +++ b/src/pomMaterial.ts @@ -80,6 +80,7 @@ export function createPomMaterial(options: PomMaterialOptions): PomMaterial { scaledUv, normalize(parallaxDirection as any), depthUniform, + repeatUniform, ) : scaledUv; @@ -131,8 +132,8 @@ function configureTextures(textures: PomTextures) { } function parallaxOcclusionMapping(heightMap: ReturnType) { - return Fn((args: [any, any, any]) => { - const [startUv, viewDirTs, depthScale] = args; + return Fn((args: [any, any, any, any]) => { + const [startUv, viewDirTs, depthScale, repeat] = args; const ddxUv = dFdx(startUv); const ddyUv = dFdy(startUv); const safeViewZ = max(abs(viewDirTs.z), 0.2); @@ -169,9 +170,9 @@ function parallaxOcclusionMapping(heightMap: ReturnType) { currentPos.x .lessThan(0) - .or(currentPos.x.greaterThan(1)) + .or(currentPos.x.greaterThan(repeat)) .or(currentPos.y.lessThan(0)) - .or(currentPos.y.greaterThan(1)) + .or(currentPos.y.greaterThan(repeat)) .discard(); return currentPos.xy;