MCPcopy Create free account
hub / github.com/TomClabault/HIPRT-Path-Tracer / compute_alias_table

Method compute_alias_table

src/Image/Image.cpp:652–672  ·  view source on GitHub ↗

* Reference: Vose's Alias Method [https://www.keithschwarz.com/darts-dice-coins/] */

Source from the content-addressed store, hash-verified

650 * Reference: Vose's Alias Method [https://www.keithschwarz.com/darts-dice-coins/]
651 */
652void Image32Bit::compute_alias_table(std::vector<float>& out_probas, std::vector<int>& out_alias, float* out_luminance_total_sum) const
653{
654 float luminance_sum = 0.0f;
655
656 std::vector<float> texel_luminance(width * height);
657 for (int y = 0; y < height; y++)
658 {
659 for (int x = 0; x < width; x++)
660 {
661 float luminance = luminance_of_pixel(x, y);
662
663 luminance_sum += luminance;
664 texel_luminance[x + y * width] = luminance;
665 }
666 }
667
668 if (out_luminance_total_sum)
669 *out_luminance_total_sum = luminance_sum;
670
671 Utils::compute_alias_table(texel_luminance, luminance_sum, out_probas, out_alias);
672}
673
674float Image32Bit::compute_luminance_sum() const
675{

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected