当前位置: 首页 > news >正文

遂昌网站建设人人网

遂昌网站建设,人人网,市场营销公司排名,自助建站和wordpress1. 说明#xff1a; 在使用OPenGL进行三维模型渲染时#xff0c;需要使用到两个着色器对模型进行位置设置和颜色设置#xff0c;分别为顶点着色器和片段着色器#xff0c;这两个着色器是使用 GLSL 语法进行编写的。这篇文章总结了一些GLSL中的一些基本语法知识。 2. 基本…1. 说明 在使用OPenGL进行三维模型渲染时需要使用到两个着色器对模型进行位置设置和颜色设置分别为顶点着色器和片段着色器这两个着色器是使用 GLSL 语法进行编写的。这篇文章总结了一些GLSL中的一些基本语法知识。 2. 基本知识点 2.1 主函数 在每一个 shader 文件中必须有一个main函数也是入口函数类似于C语言。 void main() //也可写成 void main(void) {... }2.2 基本类型 void,bool,int,float, bvec2,bvec3,bvec4,// bvec(n)包含n个布尔成分的向量 ivec2,ivec3,ivec4,// ivec(n)包含n个整型成分的向量 mat2(mat2x2),mat3(mat3x3), mat4x4,mat2x3,mat2x4,mat3x2, mat3x4,mat4x2,mat4x3, // mat(axb)a行b列的浮点矩阵 sampler1D,sampler2D,sampler3D, // n维纹理采样器 samplerCube //cube map纹理句柄 sampler1DShadow //一维深度纹理句柄 sampler2DShadow // 二维深度纹理句柄2.3 修饰符 in //用在函数的参数中表示这个参数是输入的 out //用在函数参数中表示这个参数是输出的 uniform //一致变量在编译时期由着色器在外部初始化在顶点和片段着色器之间是共享的(一般我们使用uniform变量来放置外部程序传递来的环境数据(如点光源位置,模型的变换矩阵等等))const //常量值必须在声明时初始化 attribute //只读的顶点数据用于顶点着色器中(一般attribute变量用来放置程序传递来的模型顶点,法线,颜色,纹理等数据) varying //顶点着色器的输出类型也是片段着色器的输入数据(主要负责在vertex 和 fragment 之间传递变量) inout //用在函数参数中表示这个参数既是输入又是输出2.4 内置变量 内置变量是不需要提前声明的可以在函数内部直接使用是GLSL内部规定好的变量 2.4.1 顶点着色器内置变量 gl_Position vec4 //输出属性-顶点坐标所有的顶点着色器都要写这个值 gl_TexCoord[] vec4 //纹理坐标的数组varying输出gl_Color vec4 //输入属性--顶点的主颜色 gl_SecondaryColor vec4 //输入属性--顶点的辅助颜色 gl_Normal vec3 //输入属性--顶点的法线值 gl_Vertex vec4 //输入属性--物体空间的顶点位置 gl_MultiTexCoordn vec4 //输入属性--顶点的第n个纹理坐标 gl_FogCoord float //输入属性--顶点的雾坐标 gl_ClipVertex vec4 //输出坐标用于用户裁剪平面的裁剪 gl_PointSize float //点的大小 gl_FrontColor vec4 //正面的主颜色的varying输出 gl_BackColor vec4 //背面主颜色的varying输出 gl_FrontSecondaryColor vec4 //正面的辅助颜色的varying输出 gl_BackSecondaryColor vec4 //背面的辅助颜色的varying输出 gl_FogFragCoord float //雾坐标的varying输出2.4.2 片段着色器内置变量 gl_FragColor vec4 //输出的颜色用于随后的像素操作 gl_TexCoord[] vec4 //包含纹理坐标数组的插值--只读输入gl_Color vec4 //包含主颜色的插值--只读输入 gl_SecondaryColor vec4 //包含辅助颜色的插值--只读输入 gl_FogFragCoord float //包含雾坐标的插值--只读输入 gl_FragCoord vec4 //只读输入--窗口的x,y,z和1/w gl_FrontFacing bool //只读输入--如果是窗口正面图元的一部分则这个值为true gl_PointCoord vec2 //点精灵的二维空间坐标范围在(0.0, 0.0)到(1.0, 1.0)之间仅用于点图元和点精灵开启的情况下。 gl_FragData[] vec4 //使用glDrawBuffers输出的数据数组。不能与gl_FragColor结合使用。 gl_FragDepth float //输出的深度用于随后的像素操作如果这个值没有被写则使用固定功能管线的深度值代替2.5 语句控制 循环控制语句包含for循环while循环do/while循环continue / break。 条件控制if / else 结构 discard 语句 片段着色器中有一种特殊的控制流成为discard。使用discard会退出片段着色器不执行后面的片段着色操作。片段也不会写入帧缓冲区。 if (color.a 0.9) discard; //后面的代码不会再执行2.6 函数解释 2.6.1 纹理查询函数 纹理查询的最终目的是从sampler中提取指定坐标的颜色信息 //以下函数只在vertex shader中可用: vec4 texture2DLod(sampler2D sampler, vec2 coord, float lod); vec4 texture2DProjLod(sampler2D sampler, vec3 coord, float lod); vec4 texture2DProjLod(sampler2D sampler, vec4 coord, float lod); vec4 textureCubeLod(samplerCube sampler, vec3 coord, float lod); //以下函数只在fragment shader中可用: vec4 texture2D(sampler2D sampler, vec2 coord, float bias); vec4 texture2DProj(sampler2D sampler, vec3 coord, float bias); vec4 texture2DProj(sampler2D sampler, vec4 coord, float bias); vec4 textureCube(samplerCube sampler, vec3 coord, float bias); //在 vertex shader 与 fragment shader 中都可用: vec4 texture2D(sampler2D sampler, vec2 coord); vec4 texture2DProj(sampler2D sampler, vec3 coord); vec4 texture2DProj(sampler2D sampler, vec4 coord); vec4 textureCube(samplerCube sampler, vec3 coord);// 解释texture2Dsampler2D sampler,vec2 coord使用纹理坐标coord在当前绑定到采样器sampler的2D纹理中进行纹理查找2.7 数据精度 在变量前面加上 highp mediump lowp 即可完成对该变量的精度声明 lowp float color; varying mediump vec2 Coord; lowp ivec2 foo(lowp mat3); highp mat4 m;参考GLSL中文手册 参考GLSL语法基础 持续更新中请大家多多关注…
http://www.tj-hxxt.cn/news/227556.html

相关文章:

  • 网站域名如何起温州整站推广咨询
  • 建设京东商城网站淄博网站开发
  • 虚拟网站佛山应用软件开发
  • 服务器php网站打不开网络营销推广的主要形式为
  • 济南网站建站公司企业展馆展厅设计公司
  • 自创网站娄底网站建设建站
  • 做新浪网网站所需的条件网站建设经验典型
  • 微信公众号视频网站开发公司网址怎么注册步骤
  • 5151ppt网站建设厦门网站建设人才
  • 南宁网站排名优化企业公司如何做网站
  • 网站备案填写tdk标签影响网站权重
  • 摄影网站源码 国外怎么做微信点击网站打赏看片
  • 头像在线制作网站邢台wap网站建设报价
  • 天津建设公司网站海南网站建设推广
  • 手机网站设计软件网站建设公司效果
  • 有那些网站做网站加班多吗
  • 制作网站设计的总结衡水网站建设设计
  • 网站插件模块原理c2c电子商务网站开发
  • 广告网站模板下载不了国外建设网站情况
  • 温州网站排名优化怎样自己动手做微官网站
  • 官方网站下载穿越火线网站建设资讯
  • 中原彼得堡航空学院网站的建设怎么样建设一个网站
  • 网站开发会员功能教程开发网页多少钱
  • 武陟县住房和城乡建设局网站网站页面设计收费
  • 手机app开发网站模板下载襄阳网站建设知名品牌
  • 北京网站制作网络推广公司网站怎么做双机房切换
  • wordpress本地 域名兰州官网优化服务
  • 上海网站推广哪家好wordpress分栏插件
  • 深圳做网站推广公司中国哪家网站做仿古做的好
  • 网站开发模块就业前景呼和浩特网站seo优化方案