Skip to content
Permalink
5cd042b6c2
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
204 lines (188 sloc) 5.82 KB
#ifndef __DISK_KERNELS__
#define __DISK_KERNELS__
#if !defined(KERNEL_SMALL) && !defined(KERNEL_MEDIUM) && \
!defined(KERNEL_LARGE) && !defined(KERNEL_VERYLARGE)
static const int kSampleCount = 1;
static const float2 kDiskKernel[1] = { float2(0, 0) };
#endif
#if defined(KERNEL_SMALL)
// rings = 2
// points per ring = 5
static const int kSampleCount = 16;
static const float2 kDiskKernel[kSampleCount] = {
float2(0,0),
float2(0.54545456,0),
float2(0.16855472,0.5187581),
float2(-0.44128203,0.3206101),
float2(-0.44128197,-0.3206102),
float2(0.1685548,-0.5187581),
float2(1,0),
float2(0.809017,0.58778524),
float2(0.30901697,0.95105654),
float2(-0.30901703,0.9510565),
float2(-0.80901706,0.5877852),
float2(-1,0),
float2(-0.80901694,-0.58778536),
float2(-0.30901664,-0.9510566),
float2(0.30901712,-0.9510565),
float2(0.80901694,-0.5877853),
};
#endif
#if defined(KERNEL_MEDIUM)
// rings = 3
// points per ring = 7
static const int kSampleCount = 22;
static const float2 kDiskKernel[kSampleCount] = {
float2(0,0),
float2(0.53333336,0),
float2(0.3325279,0.4169768),
float2(-0.11867785,0.5199616),
float2(-0.48051673,0.2314047),
float2(-0.48051673,-0.23140468),
float2(-0.11867763,-0.51996166),
float2(0.33252785,-0.4169769),
float2(1,0),
float2(0.90096885,0.43388376),
float2(0.6234898,0.7818315),
float2(0.22252098,0.9749279),
float2(-0.22252095,0.9749279),
float2(-0.62349,0.7818314),
float2(-0.90096885,0.43388382),
float2(-1,0),
float2(-0.90096885,-0.43388376),
float2(-0.6234896,-0.7818316),
float2(-0.22252055,-0.974928),
float2(0.2225215,-0.9749278),
float2(0.6234897,-0.7818316),
float2(0.90096885,-0.43388376),
};
#endif
#if defined(KERNEL_LARGE)
// rings = 4
// points per ring = 7
static const int kSampleCount = 43;
static const float2 kDiskKernel[kSampleCount] = {
float2(0,0),
float2(0.36363637,0),
float2(0.22672357,0.28430238),
float2(-0.08091671,0.35451925),
float2(-0.32762504,0.15777594),
float2(-0.32762504,-0.15777591),
float2(-0.08091656,-0.35451928),
float2(0.22672352,-0.2843024),
float2(0.6818182,0),
float2(0.614297,0.29582983),
float2(0.42510667,0.5330669),
float2(0.15171885,0.6647236),
float2(-0.15171883,0.6647236),
float2(-0.4251068,0.53306687),
float2(-0.614297,0.29582986),
float2(-0.6818182,0),
float2(-0.614297,-0.29582983),
float2(-0.42510656,-0.53306705),
float2(-0.15171856,-0.66472363),
float2(0.1517192,-0.6647235),
float2(0.4251066,-0.53306705),
float2(0.614297,-0.29582983),
float2(1,0),
float2(0.9555728,0.2947552),
float2(0.82623875,0.5633201),
float2(0.6234898,0.7818315),
float2(0.36534098,0.93087375),
float2(0.07473,0.9972038),
float2(-0.22252095,0.9749279),
float2(-0.50000006,0.8660254),
float2(-0.73305196,0.6801727),
float2(-0.90096885,0.43388382),
float2(-0.98883086,0.14904208),
float2(-0.9888308,-0.14904249),
float2(-0.90096885,-0.43388376),
float2(-0.73305184,-0.6801728),
float2(-0.4999999,-0.86602545),
float2(-0.222521,-0.9749279),
float2(0.07473029,-0.99720377),
float2(0.36534148,-0.9308736),
float2(0.6234897,-0.7818316),
float2(0.8262388,-0.56332),
float2(0.9555729,-0.29475483),
};
#endif
#if defined(KERNEL_VERYLARGE)
// rings = 5
// points per ring = 7
static const int kSampleCount = 71;
static const float2 kDiskKernel[kSampleCount] = {
float2(0,0),
float2(0.2758621,0),
float2(0.1719972,0.21567768),
float2(-0.061385095,0.26894566),
float2(-0.24854316,0.1196921),
float2(-0.24854316,-0.11969208),
float2(-0.061384983,-0.2689457),
float2(0.17199717,-0.21567771),
float2(0.51724136,0),
float2(0.46601835,0.22442262),
float2(0.32249472,0.40439558),
float2(0.11509705,0.50427306),
float2(-0.11509704,0.50427306),
float2(-0.3224948,0.40439552),
float2(-0.46601835,0.22442265),
float2(-0.51724136,0),
float2(-0.46601835,-0.22442262),
float2(-0.32249463,-0.40439564),
float2(-0.11509683,-0.5042731),
float2(0.11509732,-0.504273),
float2(0.32249466,-0.40439564),
float2(0.46601835,-0.22442262),
float2(0.7586207,0),
float2(0.7249173,0.22360738),
float2(0.6268018,0.4273463),
float2(0.47299224,0.59311354),
float2(0.27715522,0.7061801),
float2(0.056691725,0.75649947),
float2(-0.168809,0.7396005),
float2(-0.3793104,0.65698475),
float2(-0.55610836,0.51599306),
float2(-0.6834936,0.32915324),
float2(-0.7501475,0.113066405),
float2(-0.7501475,-0.11306671),
float2(-0.6834936,-0.32915318),
float2(-0.5561083,-0.5159932),
float2(-0.37931028,-0.6569848),
float2(-0.16880904,-0.7396005),
float2(0.056691945,-0.7564994),
float2(0.2771556,-0.7061799),
float2(0.47299215,-0.59311366),
float2(0.62680185,-0.4273462),
float2(0.72491735,-0.22360711),
float2(1,0),
float2(0.9749279,0.22252093),
float2(0.90096885,0.43388376),
float2(0.7818315,0.6234898),
float2(0.6234898,0.7818315),
float2(0.43388364,0.9009689),
float2(0.22252098,0.9749279),
float2(0,1),
float2(-0.22252095,0.9749279),
float2(-0.43388385,0.90096885),
float2(-0.62349,0.7818314),
float2(-0.7818317,0.62348956),
float2(-0.90096885,0.43388382),
float2(-0.9749279,0.22252093),
float2(-1,0),
float2(-0.9749279,-0.22252087),
float2(-0.90096885,-0.43388376),
float2(-0.7818314,-0.6234899),
float2(-0.6234896,-0.7818316),
float2(-0.43388346,-0.900969),
float2(-0.22252055,-0.974928),
float2(0,-1),
float2(0.2225215,-0.9749278),
float2(0.4338835,-0.90096897),
float2(0.6234897,-0.7818316),
float2(0.78183144,-0.62348986),
float2(0.90096885,-0.43388376),
float2(0.9749279,-0.22252086),
};
#endif
#endif // __DISK_KERNELS__