我希望屏幕上的每个像素在红色,蓝色,绿色,白色和黑色之间闪烁,但彼此独立。这可能吗?我一直在寻找任何运气。任何有关从哪里开始的帮助将不胜感激。
答案 0 :(得分:6)
您可以使用图片来完成。例如,在32位RGBA图像中,每个像素由4个部分组成
red = 8 bits
green = 8 bits
blue = 8 bits
alpha = 8 bits
每个都可以设置为0到255之间的值;
所以你只需将图像视为一个字节数组并更改每个像素的颜色值。
Image image = CreateImage();
for(int i = 0; i < image.size(); i++)
image[i] = RandomNumberBetween(0, 255);
或者从字节数组
创建图像int byteArray[width * height * 4];
for(int i = 0; i < width * height * 4; i++)
image[i] = RandomNumberBetween(0, 255);
Image image = createImageFromByteArray(byteArray);
您还可以创建一个简单的opengl场景并在着色器中执行。
float rand(vec2 co){
return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
}
void main(void){
gl_FragColor = rand(gl_TexCoord[0].xy);
}