|
|
@ -4,11 +4,11 @@ kernel void initialize(size_t width, size_t height, write_only image2d_t output) |
|
|
|
size_t y = get_global_id(1); |
|
|
|
|
|
|
|
int2 coord = {x, y}; |
|
|
|
//uint4 color = {255 * x / (width - 1), 255 * y / (height - 1), 0, 255}; |
|
|
|
//uint4 color = {255 * (x%2), 120 * (y%2), 0, 255}; |
|
|
|
uint4 color = {255, 255, 0, 255}; |
|
|
|
const float xx = x / float(width - 1) - 0.5; |
|
|
|
const float yy = y / float(height - 1) - 0.5; |
|
|
|
float4 color = {0.066 * xx, 0.1 * yy, 0.1 * yy * xx, 1}; |
|
|
|
|
|
|
|
write_imageui(output, coord, color); |
|
|
|
write_imagef(output, coord, color); |
|
|
|
} |
|
|
|
|
|
|
|
kernel void update(size_t width, size_t height, read_only image2d_t input, write_only image2d_t output){ |
|
|
@ -20,8 +20,19 @@ kernel void update(size_t width, size_t height, read_only image2d_t input, write |
|
|
|
const sampler_t samplerA = CLK_NORMALIZED_COORDS_FALSE |
|
|
|
| CLK_ADDRESS_NONE |
|
|
|
| CLK_FILTER_NEAREST; |
|
|
|
uint4 color = read_imageui(input, samplerA, coord).yzxw; |
|
|
|
color.x = 255 - color.x; |
|
|
|
write_imageui(output, coord, color); |
|
|
|
|
|
|
|
const float4 w = read_imagef(input, samplerA, coord); |
|
|
|
float4 v = w; |
|
|
|
|
|
|
|
const float s = 9.120836; |
|
|
|
const float r = 32.799129; |
|
|
|
const float b = 2.902814; |
|
|
|
const float dt = 0.019997; |
|
|
|
|
|
|
|
v.x += dt * s * (w.y - w.x); |
|
|
|
v.y += dt * (w.x * (r - w.z) - w.y); |
|
|
|
v.z += dt * (w.x * w.y - b * w.z); |
|
|
|
|
|
|
|
write_imagef(output, coord, v); |
|
|
|
} |
|
|
|
|
|
|
|