OpenGL中GLSL渲染茶壶光照完整程序】的更多相关文章

顶点着色器VertexShader.txt: uniform vec3 lightposition;//光源位置 uniform vec3 eyeposition;//相机位置 uniform vec4 ambient;//环境光颜色 uniform vec4 lightcolor;//光源颜色 uniform float Ns;//高光系数 uniform float attenuation;//光线的衰减系数 varying vec4 color;//向片段着色其传递的参数 void mai…
OpenGL值绘制三角形的方式常用的有三种,分别是GL_TRIANGLES.GL_TRIANGLE_STRIP.GL_TRIANGLE_FAN,其效果如依次是: 从左起:第一个方式是GL_TRIANGLES,第二个是GL_TRIANGLE_STRIP,第三个是GL_TRIANGLE_FAN.(一般规定逆时针卷绕为正方向) GL_TRIANGLES:每三个顶点绘制一个三角形,如果顶点数量不是3的倍数,则忽略最后一个或两个顶点. GL_TRIANGLE_STRIP:有两种情况, (1)当前顶点序号n…
一.OpenGL OpenGL,是一套绘制3D图形的API,当然它也可以用来绘制2D的物体.OpenGL有一大套可以用来操作模型和图片的函数,通常编写OpenGL库的人是显卡的制造者.我们买的显卡都支持特定版本的OpenGL. 下图是用OpenGL做的旋转的立方体. 二.渲染原理 2.1 渲染管道 在OpenGL中,所有东西都在一个3D的空间里,而我们的屏幕和窗口都是2D的,所以OpenGL需要将3D的坐标转换成2D的坐标,做这件事的是OpenGL中的渲染管道(graphics pipeline…
1. Opengl中的渲染模式有三种:(1)渲染模式,默认的模式:(2)选择模式, (3)反馈模式.如下 GLint glRenderMode(GLenum mode) mode可以选取以下三种模式之一:绘制模式(GL_RENDER),选择模式(GL_SELECT),反馈模式(GL_FEEDBACK). 函数的返回值可以确定选择模式下的命中次数或反馈模式下的图元数量. 2. OpenGL进行图形编程的时候,通常要用鼠标进行交互操作,比如用鼠标点选择画面中的物体,我们称之为拾取(Picking).…
OpenGL着色语言(OpenGL Shading Language,GLSL)是用来在OpenGL中着色编程的语言,是一种具有C/C++风格的高级过程语言,同样也以main函数开始,只不过执行过程是在GPU上.GLSL使用类型限定符而不是通过读取和写入操作来管理输入和输出.着色器主要分为顶点着色器(Vertex Shader)和片段着色器(Fragment Shader)两部分. 顶点着色器的主要功能是: 顶点法线变换及单位化 纹理坐标变换 光照参数生成 顶点着色器的输入内容包括: 着色器源代…
http://blog.csdn.net/hgl868/article/details/7872219 引言 一个OpenGL程序可以用多种方式和shader通信.注意这种通信是单向的,因为shader的输出只能是渲染到某些目标,比如颜色和深度缓存. OpenGL的部分状态可以被shader访问,因此程序改变OpenGL某些状态就可以与shader进行通信了.例如一个程序想把光的颜色传给shader,可以直接调用OpenGL接口,就像使用固定功能流水线时做的那样. 不过,使用OpenGL状态并不…
http://blog.csdn.net/racehorse/article/details/6634830 引言 一个OpenGL程序可以用多种方式和shader通信.注意这种通信是单向的,因为shader的输出只能是渲染到某些目标,比如颜色和深度缓存. OpenGL的部分状态可以被shader访问,因此程序改变OpenGL某些状态就可以与shader进行通信了.例如一个程序想把光的颜色传给shader,可以直接调用OpenGL接口,就像使用固定功能流水线时做的那样. 不 过,使用OpenGL…
http://blog.csdn.net/racehorse/article/details/6616256 设置GLSL 这一节讲述在OpenGL中配置GLSL,假设你已经写好了顶点shader和像素shader.如果你还没有准备好,可以从如下网址获得相关内容: http://www.3dshaders.com/home/ http://www.opengl.org/sdk/tools/ShaderDesigner/ http://developer.amd.com/archive/gpu/r…
CSharpGL(26)在opengl中实现控件布局/渲染文字 效果图 如图所示,可以将文字.坐标轴固定在窗口的一角. 下载 CSharpGL已在GitHub开源,欢迎对OpenGL有兴趣的同学加入(https://github.com/bitzhuwei/CSharpGL) UI控件布局关键点 ILayout 类似Winform控件那样,控件的位置.大小由其Anchor等属性决定.窗口大小改变时,控件的位置.大小会随之改变. 所以模仿Control类,直接使用Anchor作为UIRendere…
Lighting:https://www.evl.uic.edu/julian/cs488/2005-11-03/index.html 光照 OpenGL中的光照(Linghting)是很重要的,为什么重要?请看下图 上图中左图是有光照的效果,右图是没有光照的效果. 有光照的好处: 给人更多关于曲率和深度的视觉感受 给人更明显的3D效果 隐藏面清除 在照明和着色中,深度信息和法向量变得非常重要. 旧的painter算法是这样的: while (1) { get_viewing_point_fro…