Skip to content

Commit c74d2ed

Browse files
committed
fix: missing n8ao settings
1 parent 17a8d36 commit c74d2ed

File tree

1 file changed

+27
-8
lines changed

1 file changed

+27
-8
lines changed

src/effects/N8AO.tsx

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,32 @@ type N8AOProps = {
1010
aoRadius?: number
1111
distanceFalloff?: number
1212
intensity?: number
13+
quality?: 'performance' | 'low' | 'medium' | 'high' | 'ultra'
14+
aoSamples?: number
15+
denoiseSamples?: number
16+
denoiseRadius?: number
1317
}
1418

15-
export const N8AO = forwardRef<N8AOPostPass, N8AOProps>((props, ref: Ref<N8AOPostPass>) => {
16-
const { camera, scene } = useThree()
17-
const effect = useMemo(() => new N8AOPostPass(scene, camera), [])
18-
useLayoutEffect(() => {
19-
Object.assign(effect.configuration, props)
20-
}, [props])
21-
return <primitive ref={ref} object={effect} />
22-
})
19+
export const N8AO = forwardRef<N8AOPostPass, N8AOProps>(
20+
(
21+
{ quality, aoRadius, aoSamples, denoiseSamples, denoiseRadius, distanceFalloff, intensity },
22+
ref: Ref<N8AOPostPass>
23+
) => {
24+
const { camera, scene } = useThree()
25+
const effect = useMemo(() => new N8AOPostPass(scene, camera), [])
26+
useLayoutEffect(() => {
27+
Object.assign(effect.configuration, {
28+
aoRadius,
29+
distanceFalloff,
30+
intensity,
31+
aoSamples,
32+
denoiseSamples,
33+
denoiseRadius,
34+
})
35+
}, [aoRadius, distanceFalloff, intensity, aoSamples, denoiseSamples, denoiseRadius])
36+
useLayoutEffect(() => {
37+
if (quality) effect.setQualityMode(quality.charAt(0).toUpperCase() + quality.slice(1))
38+
}, [quality])
39+
return <primitive ref={ref} object={effect} />
40+
}
41+
)

0 commit comments

Comments
 (0)