老样子,有问题请参照nehe的opengl教程。
OpenGL中基本纹理过滤方式大致有三种,分别是NEAREST,LINEAR和Mipmapping,纹理质量依次递增。由于代码重复,这里就提一下设置过滤方式。
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR_MIPMAP_NEAREST);
OpenGL中的光源有环境光和漫射光组成,定义时和设置颜色差不多(RGB+alpha参数)。
1.定义
GLfloat LightAmbient[]= { 0.5f, 0.5f, 0.5f, 1.0f }; //环境光
GLfloat LightDiffuse[]= { 1.0f, 1.0f, 1.0f, 1.0f }; //漫射光
GLfloat LightPosition[]= { 0.0f, 0.0f, 2.0f, 1.0f }; //光源位置
2.设置
glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient); //设置环境光
glLightfv(GL_LIGHT1, GL_DIFFUSE, LightDiffuse); //设置漫射光
glLightfv(GL_LIGHT1, GL_POSITION,LightPosition); //设置光源位置
3.启用
glEnable(GL_LIGHT1);
混合(颜色混合)是OpenGL中实现特效的常用手段,最常用的就是实现透明效果。关于混合的原理,nehe在教程中给出了一条数学公式:(Rs As + Rd (1 - As), Gs As + Gd (1 - As), Bs As + Bs (1 - As), As As + Ad (1 - As)),其实就是图形的RGB分量*alpha值+纹理的RGB分量*(1-alpha值),具体实现时无需关心原理,只需使用glColor4f()创建图形,设定相应的alpha值(0.0~1.0),再用glBlendFunc()进行混合即可。
glColor4f(1.0f,1.0f,1.0f,0.5f); //创建图形,alpha值为0.5f,表示半透明
glBlendFunc(GL_SRC_ALPHA,GL_ONE);//进行混合
分享到:
相关推荐
OPENGL光照和纹理技术实例.rar OPENGL光照和纹理技术实例.rar
用OpenGL 绘制我校校门 并光照纹理
OpenGL中纹理贴图、滤波、光照和雾化效果编程初步 源代码
OpenGL 混合OpenGL 混合OpenGL 混合OpenGL 混合OpenGL 混合OpenGL 混合OpenGL 混合OpenGL 混合OpenGL 混合OpenGL 混合OpenGL 混合OpenGL 混合OpenGL 混合OpenGL 混合OpenGL 混合OpenGL 混合OpenGL 混合OpenGL 混合...
opengl有纹理有贴图有光照有影子的青花瓷茶壶,影子采用的是光照模型,存在BUG,不足之处多多谅解。
opengl纹理图opengl纹理图opengl纹理图opengl纹理图
在Android平台,使用OpenGLES3.0实现纹理纹理、颜色混合代码实现举例。 具体案例文章讲解请见: https://xiaxl.blog.csdn.net/article/details/121634894
OpenGL光照效果 OpenGL光照效果 OpenGL光照效果
OpenGL实验八犹他茶壶光照、阴影、纹理,光照效果源码、阴影效果源码、纹理效果源码,及实验截图、实验报告。
使用OpenGl完成纹理光照的添加,使用a,b键进行平移,c,d键进行旋转,L键控制光照开关。纹理与源文件放在同一个文件加下。
NURBS曲面的创建,并实现简单纹理映射与光照模型
OpenGL光照效果 OpenGL光照效果 OpenGL光照效果
通过看这篇文档,你可以很好的了解opengl中纹理贴图的技术,希望对你有所帮助。
绘制阴影,需要用到深度纹理,即从光源角度看模型并绘制一张纹理图,纹理图的颜色代表了模型上的点离光源的深度,只有离光源较近的点才会绘制到深度纹理图中,被遮挡的点不会被绘制到深度纹理图中。判断地平面中的点...
在OpenGL观察实验的基础上,通过实现实验内容,掌握OpenGL中消隐和光照的设置,并验证课程中消隐和光照的内容。 模型尺寸参见OpenGL观察实验。要求修改代码达到以下要求: 1.通过设置材料使得桌面和四条腿的颜色各不...
openGL 纹理使用 总结
MFC 单文档 实现opengl 三维旋转 缩放 光照MFC 单文档 实现opengl 三维旋转 缩放 光照MFC 单文档 实现opengl 三维旋转 缩放 光照MFC 单文档 实现opengl 三维旋转 缩放 光照MFC 单文档 实现opengl 三维旋转 缩放 光照...
使用OpenGL实现纹理播放视频技术,源代码,经调试后,可以直接运行
该程序给出了openGL中二位纹理生成代码,对于初学者来说理解openGL中纹理函数有帮助。
opengles加载3d模型(纹理+光照)