如题
opencl和opengl共享gpu 的texture,
通过cl处理3d模型的颜色
但是处理完后显示的效果很奇怪,而且模型放大才能看到处理效果
这个是.cl的代码
__kernel void hello_kernel(__read_only image2d_t intexture,__write_only image2d_t outtexture,sampler_t sampler)
{
int x = get_global_id(0);
int y = get_global_id(1);
float level = 99.0f;
float4 oldcolor = read_imagef(intexture, sampler,(int2)(x, y));
float beta = 1 + level * (oldcolor.x + oldcolor.y + oldcolor.z) / (3 *255);
float red = log(oldcolor.x * (beta - 1) /255 + 1) / log(beta) * 255;
float green = log(oldcolor.y * (beta - 1) /255 + 1) / log(beta) * 255;
float blue = log(oldcolor.z * (beta - 1) /255 + 1) / log(beta) * 255;
float alhpa = oldcolor.w;
float4 newcolor = (float4)(red, green, blue, alhpa );
write_imagef(outtexture, (int2)(x, y), newcolor);
}
搞不太清楚是什么原因引起的
示意图,这个是改成黑色时的效果,不是上边代码生成的颜色