请教:在OPENGL中添加光源后有光晕,如何处理?
代码如下:voidOpenGL::Render()//OpenGL图形处理{//glClearColor(0.0f,0.0f,0.3f,1.0f);//设置刷新背景色gl...
代码如下:
void OpenGL::Render()//OpenGL图形处理
{
//glClearColor(0.0f, 0.0f, 0.3f, 1.0f); // 设置刷新背景色
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // 设置刷新背景色
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);// 刷新背景
glLoadIdentity(); // 重置当前的模型观察矩阵
GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glLightfv(GL_LIGHT0, GL_AMBIENT , light_position );
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glDepthFunc(GL_LESS);
glTranslatef(1.5f,0.0f,-10.0f); // 右移1.5单位,并移入屏幕 6.0
static double rquad = 0.0;
static double speed = 0.01;
if(rquad < -3)
{
speed = 0.01;
}
else if(rquad > 3)
{
speed = -0.01;
}
rquad += speed;
glTranslatef(rquad,0.0f,-0.0f);
glColor3f(0.5f,0.0f,0.0f); // 一次性将当前色设置为蓝色
auxSolidSphere(2.0);
glFlush(); // 更新窗口
SwapBuffers(hDC); // 切换缓冲区
}
其它部分是学OpenGL编3D游戏_CAI 的框架,请赐教 展开
void OpenGL::Render()//OpenGL图形处理
{
//glClearColor(0.0f, 0.0f, 0.3f, 1.0f); // 设置刷新背景色
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // 设置刷新背景色
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);// 刷新背景
glLoadIdentity(); // 重置当前的模型观察矩阵
GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glLightfv(GL_LIGHT0, GL_AMBIENT , light_position );
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glDepthFunc(GL_LESS);
glTranslatef(1.5f,0.0f,-10.0f); // 右移1.5单位,并移入屏幕 6.0
static double rquad = 0.0;
static double speed = 0.01;
if(rquad < -3)
{
speed = 0.01;
}
else if(rquad > 3)
{
speed = -0.01;
}
rquad += speed;
glTranslatef(rquad,0.0f,-0.0f);
glColor3f(0.5f,0.0f,0.0f); // 一次性将当前色设置为蓝色
auxSolidSphere(2.0);
glFlush(); // 更新窗口
SwapBuffers(hDC); // 切换缓冲区
}
其它部分是学OpenGL编3D游戏_CAI 的框架,请赐教 展开
1个回答
2013-07-25
展开全部
bloom效果即可,过程如下:
首先将场景渲染到纹理,然后将纹理downSample到1/4或1/16大小(就是缩小纹理,为了加快模糊计算)
然后将纹理模糊后放大到原大小,按一定比例混合到场景中去就有光晕效果了.
首先将场景渲染到纹理,然后将纹理downSample到1/4或1/16大小(就是缩小纹理,为了加快模糊计算)
然后将纹理模糊后放大到原大小,按一定比例混合到场景中去就有光晕效果了.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询