샘플을 2배로 늘려도 렌더 노이즈가 반으로 안 줄 때: √N 법칙
렌더 노이즈를 줄이려고 Cycles 샘플 수를 올렸는데, 화면은 나아져도 얼마나 좋아졌는지는 감으로만 판단하기 쉽습니다. 샘플을 두 배로 늘리면 노이즈도 절반이 될까요? 아래의 체험과 계산기로 먼저 확인하고, 같은 장면을 Blender 5.0에서 렌더한 실측표와 비교해보겠습니다.
여기서는 세 가지를 짚습니다. 샘플을 늘릴 때 노이즈가 줄어드는 모습, Cycles에서 직접 측정한 값, 목표 노이즈에 필요한 샘플 수입니다. 체험 캔버스는 설명용 모형이고, 계산기는 내 렌더에서 측정한 값을 넣어 쓰는 도구입니다.
① 샘플 수에 따라 노이즈가 줄어드는 모습
슬라이더를 움직여 기준 16 samples에서 노이즈가 얼마나 남는지 보세요.
이 장면은 실제 Cycles 렌더가 아닙니다. 무작위 오차의 진폭을 1/√N에 맞춰 보여 주는 설명용 모형입니다.
② 목표 노이즈에 필요한 샘플 수 계산
현재값과 목표값은 같은 씬·같은 렌더 설정·같은 측정 방식으로 얻어야 합니다. 아래 초기값은 이 글의 Blender 실측 예시입니다.
계산값은 1/√N 모델의 추정치입니다. 실제 장면의 결과는 샘플링 패턴과 픽셀별 난이도에 따라 달라질 수 있습니다.
캔버스의 구와 바닥은 노이즈 진폭이 줄어드는 정도를 보기 위한 모형입니다. 실제 Cycles 렌더의 픽셀값을 재현하지는 않습니다. 숫자를 현장에 적용할 때는 아래 실측표처럼 내 장면에서 같은 방법으로 측정한 값이 필요합니다.
Blender Cycles에서 같은 씬을 7개 샘플 수로 렌더했습니다
Blender 5.0.0의 Cycles CPU로 diffuse 바닥과 클레이 구, area light, world, 카메라를 고정했습니다. 각 샘플 수에서 random seed를 10개씩 바꿔 렌더했고, 해상도는 160×160입니다. Noise Threshold에 따른 적응형 샘플링과 디노이즈는 껐습니다. 그래야 픽셀마다 샘플 수가 달라지거나 후처리가 표준편차에 섞이지 않습니다.


측정한 값은 화면 전체의 선형 휘도 표준편차 RMS입니다. 먼저 각 픽셀에서 10개 seed 결과의 표준편차를 구하고, 픽셀 전체를 RMS로 합쳤습니다. 장면의 큰 명암 차이는 픽셀마다 평균을 따로 계산해서 분리했습니다. 따라서 이 숫자는 밝은 이미지에서 어두운 이미지까지의 차이가 아니라, 같은 픽셀에서 seed를 바꿀 때 생기는 무작위 변화의 크기입니다.
| Cycles Samples | 측정 표준편차 RMS | 16 samples 대비 실측 잔여율 | √N 예상 잔여율 |
|---|---|---|---|
| 16 | 0.02568 | 100.0% | 100.0% |
| 32 | 0.01697 | 66.1% | 70.7% |
| 64 | 0.01133 | 44.1% | 50.0% |
| 128 | 0.00762 | 29.7% | 35.4% |
| 256 | 0.00515 | 20.1% | 25.0% |
| 512 | 0.00352 | 13.7% | 17.7% |
| 1024 | 0.00240 | 9.4% | 12.5% |
샘플 수를 2배로 올린 여섯 구간에서 실측 노이즈는 앞 구간의 약 66~68%가 남았습니다. 이 장면에서는 이론값 70.7%보다 조금 빠르게 줄었지만, 매번 거의 비슷한 비율로 감소했습니다. 16 samples의 노이즈가 100%였다면 64 samples에서 44.1%, 256 samples에서 20.1%가 남았습니다.
샘플을 두 배 늘려도 절반이 아닌 이유는 √N에 있습니다
Cycles는 픽셀마다 빛의 경로를 여러 번 추적하고 그 결과를 평균냅니다. 독립적인 무작위 추정값을 평균내면 표준편차는 샘플 수의 제곱근만큼 줄어듭니다. 그래서 샘플 수를 N, 측정한 노이즈 표준편차를 σ라고 하면, 같은 조건의 새 샘플 수 M에서 예상되는 값은 다음과 같습니다.
σ(M) ≈ σ(N) × √(N / M)
샘플을 2배로 만들면 √2로 나누므로 노이즈가 약 70.7% 남습니다. 반으로 만들려면 표준편차를 2로 나눠야 하고, 제곱근 안의 샘플 수는 4배가 되어야 합니다. 64에서 128은 절반이 아니라 약 70.7%가 남는 변화이고, 64에서 256이 절반 목표의 계산값입니다.
샘플을 두 배로 늘리면 노이즈는 절반이 아니라 약 70.7% 남고, 절반까지 낮추려면 샘플을 네 배로 계산해야 합니다.
노이즈 표준편차를 넣어 필요한 Cycles 샘플 수를 구하세요
계산기의 식은 목표 샘플 수 = 현재 샘플 수 × (현재 노이즈 ÷ 목표 노이즈)²입니다. 소수 샘플은 쓸 수 없으므로 결과는 올림합니다. 예를 들어 이 실측에서 64 samples의 표준편차는 0.01133이었습니다. 목표를 절반인 0.005665로 넣으면 256 samples가 나옵니다. 실제 256 samples 측정값은 0.00515로, 이 시험에서는 목표보다 조금 더 낮았습니다.
이 계산은 같은 씬, 같은 해상도, 같은 렌더 설정, 같은 측정 방법끼리 비교할 때 의미가 있습니다. 현재 노이즈 값을 모르면 각 픽셀의 noise pass나 서로 다른 seed의 같은 픽셀 값을 비교하는 방법부터 정해야 합니다. 단순히 화면 전체의 밝기 편차를 넣으면 재질과 조명 차이를 노이즈로 잘못 셀 수 있습니다.
Noise Threshold와 디노이저를 끄고 비교한 이유
Blender Cycles의 Noise Threshold는 픽셀마다 샘플을 더 할지 말지 정하는 적응형 샘플링 설정입니다. 디노이즈는 렌더 뒤 노이즈를 줄이는 별도 처리입니다. 둘을 켜면 고정 Samples만 바꾼 비교가 아니게 되므로, 이번 실측에서는 둘 다 껐습니다. 실제 작업에서는 이 설정들이 렌더 결과에 함께 영향을 주지만, 이번 글에서는 √N 계산과 구분하기 위해 자세한 튜닝은 다루지 않습니다.
한 줄 정리
원하는 노이즈를 절반으로 줄이려면 샘플을 두 배가 아니라 네 배로 계산하고, 마지막 값은 내 씬에서 측정해 확인하세요.
참고 자료
- 선형값과 화면에 보이는 밝기의 차이는 Blender AgX·Filmic·Standard 뷰 트랜스폼 글을 참고하세요.
vfx 잡학지식

댓글 0
첫 댓글을 남겨보세요.