- Bluenoise in the game INSIDE (dithering, raymarching, reflections)
- Dithering, Ray marching, shadows etc
- A Survery of Blue Noise and Its Applications
- Moments In Graphics (void-and-cluster)
- Bart Wronski Implementation of Solid Angle algorithm
| max(-x,-y) = -min(x,y) | |
| min(-x,-y) = -max(x,y) | |
| abs(x) = abs(-x) | |
| abs(x) = max(x,-x) = -min(x,-x) | |
| abs(x*a) = if (a >= 0) abs(x)*a | |
| (a < 0) -abs(x)*a | |
| // basically any commutative operation | |
| min(x,y) + max(x,y) = x + y |
| /* | |
| * Copyright (C) 2014 The Android Open Source Project | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. | |
| * You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software |
| #if defined(__ARM_NEON__) | |
| vec4 dot(vec4 a, vec4 b) | |
| { | |
| vec4 prod = vmulq_f32(a, b); | |
| vec4 sum1 = vaddq_f32(prod, vrev64q_f32(prod)); | |
| vec4 sum2 = vaddq_f32(sum1, vcombine_f32(vget_high_f32(sum1), vget_low_f32(sum1))); | |
| return sum2; | |
| } | |
| #else if defined(__SSE3__) | |
| static inline vec4 vdot(vec4 x, vec4 y) |