Extend blue noise dithering from 2D patterns to 4D patterns

Open
#71 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
32/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Quiet
Tech stack
cpp

Research direction

No files, tests, or entry points are named. Start by locating the existing 2D spatial blue-noise dithering and Z-Order dithering implementations, then study how the primary-sample-space patterns are optimized and evaluated. Done means extending the blue-noise properties across all four dimensions without degrading 2D quality or within-pixel convergence.

Written by the indexing model from the issue text.

Description

enhancement

For each 4D pattern in primary sample space, currently only the first 2 dimensions have spatial blue noise dithering between pixels. Ideally the blue noise properties would be present across the whole 4D pattern. This shortcoming was identified after user testing and gathering feedback, with clearly sub-par results shown.

Z-Order dithering was tested, which does stratify across all 4 dimensions. However, this method is not progressive. First attempts to make the method progressive were not successful as these lead to a reduction in quality of the original sample pattern and its convergence rate within a pixel.

Based on this, we believe the best approach is to continue using a priori / offline optimization approach, but extend this to optimize across 4D. Given the additional constraints on the optimization process, it's expected that a naive approach will reduce the quality of the results for 2D. So further exploration is required.

Dominant language
C++
Stars
106
Forks
7
PR merge metrics
No merged PRs in 30d

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from AcademySoftwareFoundation/openqmc

All issues in AcademySoftwareFoundation/openqmc

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.