openGL及GLSL的小知识
来源:互联网 发布:灰色模型软件 编辑:程序博客网 时间:2024/05/20 00:12
- GLSL的变量的限定符的作用
uniform
表明是外部程序传递给顶点着色器和片段着色器的变量
attribute
表明是只能在顶点着色器使用的变量,用来表示顶点坐标,法线,纹理坐标
varying
表明是用于顶点着色器和片段着色器之间传递数据之用
- openGL中纹理参数的设定
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
指当纹理图象被使用到一个大于它的曲面上时(即:有可能纹理图象中的一个像素会被应用到实际绘制时的多个像素。例如将一幅256*256的纹理图象应用到一个512*512的正方形),把纹理图像拉伸到和曲面一样大,并盖上去,使用最接近的一个纹素的颜色(即覆盖此像素的纹素颜色)作为需要贴图的像素颜色。这种方式速度快,视觉效果差,可以用来产生shadow map。
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
指当纹理图象被使用到一个大于它的曲面上时(即:有可能纹理图象中的一个像素会被应用到实际绘制时的多个像素。例如将一幅256*256的纹理图象应用到一个512*512的正方形),把纹理图像拉伸到和曲面一样大,并盖上去,使用纹理中坐标最接近的若干个颜色(即覆盖此像素的纹素颜色及其周围的纹素颜色),通过加权平均算法得到需要绘制的像素颜色。这种方式速度慢,但视觉效果好。
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
指当纹理图象被使用到一个小于它的曲面上时(即:有可能纹理图象中的一个像素会被应用到实际绘制时的多个像素。例如将一幅256*256的纹理图象应用到一个512*512的正方形),把纹理图像拉伸到和曲面一样大,并盖上去,使用最接近的一个纹素的颜色(即覆盖此像素面积最大的纹素颜色)作为需要贴图的像素颜色。这种方式速度快,视觉效果差,可以用来产生shadow map。
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
指当纹理图象被使用到一个小于它的曲面上时(即:有可能纹理图象中的一个像素会被应用到实际绘制时的多个像素。例如将一幅256*256的纹理图象应用到一个512*512的正方形),把纹理图像缩小到和曲面一样大,并盖上去,使用纹理中坐标最接近的若干个颜色(即覆盖此像素的几个纹素颜色),通过加权平均算法得到需要绘制的像素颜色。这种方式速度慢,但视觉效果好。
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);//设定纹理坐标的第一个分量
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);//设定纹理坐标的第二分量
指当纹理坐标的第一维坐标值大于1.0或小于0.0时,应该“截断”,即超过1.0的按1.0处理,不足0.0的按0.0处理。例如:某二维纹理,在绘制某形状时,一像素需要得到纹理中坐标为(3.5, 0.5)的像素的颜色,其中第一维的坐标值3.5超过了1.0,则在GL_CLAMP方式中将被转化为(1.0, 0.5)。如果不指定这个参数,则默认为GL_REPEAT。
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);//设定纹理坐标的第一个分量
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);//设定纹理坐标的第二分量指当纹理坐标的第一维坐标值大于1.0或小于0.0时,应该“重复”,即对坐标值加上一个合适的整数(可以是正数或负数),得到一个在[0.0, 1.0]范围内的值,然后用这个值作为新的纹理坐标。例如:某二维纹理,在绘制某形状时,一像素需要得到纹理中坐标为(3.5, 0.5)的像素的颜色,其中第一维的坐标值3.5超过了1.0,在GL_REPEAT方式中将被转化为(0.5, 0.5)。如果不指定这个参数,则默认为GL_REPEAT。
- openGL及GLSL的小知识
- OpenGL的GLSL编程初探
- OpenGL GLSL
- OpenGl中使用着色器的基本步骤及GLSL渲染简单示例
- OpenGL与GLSL之间变量的传递
- OpenGL 着色器语言GLSL的数据类型
- OpenGL/glsl实现bumpmaping的各种细节
- OpenGL&GLSL坑爹的multiple texture
- cuda glsl opengl 等等之间的关系
- OpenGL支持的GLSL Versions 版本对应
- OpenGL GLSL 一维纹理的使用
- opengl glsl 深度计算
- OpenGL GLSL uniform variable
- OpenGL GLSL Blocks
- OpenGL GLSL Blocks example
- OpenGL GLSL Shader Subroutines
- OpenGL 与 GLSL 版本
- OpenGL 与 GLSL 版本
- 黑马程序员-java学习4
- 那些纷繁的多表查询
- 小孩报数问题
- Mongodb基础用法及查询操作
- 缩略语字符串翻译为日常用语字符串的实现
- openGL及GLSL的小知识
- 从服务器上下载excel
- ibatiS和hibernate的区别
- 从服务器上下载excel
- c/c++笔试题(3)
- ubuntu debian 设置locale和时区
- Android 获取系统应用信息
- Oracle Clusterware 工具集(2)——应用层!
- 黑马程序员-java学习5