编程论坛
注册
登录
编程论坛
→
C图形专区
用opengl循环控制像素的颜色
画风
发布于 2012-08-10 00:07, 1175 次点击
颜色从(0,0,0),(0,0,1)……(255,255,255),,像素从第一个按顺序, 挨个设置像素的颜色? 小弟刚接触 求高人指点,谢谢啦
8 回复
#2
pangding
2012-08-10 00:48
没看出来这和 opengl 有什么关系。
#3
画风
2012-08-10 09:20
回复 2楼 pangding
就是用opengl写一个代码,把所有的像素,按顺序设置颜色,用上所有颜色就行了,从(0,0,0)到(255,255,255),谢谢啦
#4
pangding
2012-08-10 12:18
感觉最简单的就用个三重 for 循环不就好了。
#5
画风
2012-08-10 14:19
回复 4楼 pangding
但是我不知道怎么控制,还有我只查到,设置像素颜色时好像不能设置一个像素的,不知道怎么弄?希望帮一下忙,写一个程序让我看看吧?谢谢啦
#6
pangding
2012-08-10 21:34
我不是很熟悉 opengl 的编程。如果你已经实现了个大概思路的话,也许我能帮你改改。
#7
画风
2012-08-12 19:07
回复 6楼 pangding
我也是刚刚接触的,不会,所以上论坛求助的,呵呵,谢谢你
#8
画风
2012-08-12 21:10
回复 5楼 画风
float width;//窗口的width
float height;//窗口的height
void display(){
glClearColor(1,1,1,1);
glClear(GL_COLOR_BUFFER_BIT);
// glPointSize(5.0f);
float iStep=2/(width);
float jStep=2/(height);
glBegin(GL_POINTS);
float i=-1;
float j=-1;
bool flag=true;
for(float r=0;flag;r=r+0.01){
if(r>1.0)
r=0;
for(float g=0;g<1.0 && flag;g=g+0.01){
for(float b=0;b<1.0 && flag;b=b+0.01){
if( i>1 && j>1){
flag=false;
break;
}
glColor3f(r,g,b);
glVertex2f(i,j);
j=j+jStep;
if(j>1){
i=i+iStep;
if(i<1.0001){
j=-1.0;
}
}
}
}
}
glEnd();
glFlush();
glutSwapBuffers();
}
想问一下这个函数调用的GPU吗?是不是比直接使用基于CPU的编程语言,做同样的事更快? 听人说使用opengl也不一定调用了gpu,是这样吗? 麻烦你了
#9
best_1
2012-08-17 23:45
我刚学的DirectX 这个嘛 呵呵 等一段时间才来解答了
1