理论知识转载地址:http://blog.csdn.net/ym19860303/article/details/25545933 1.Lambert模型(漫反射) 环境光: Iambdiff = Kd*Ia 其中Ia 表示环境光强度,Kd(0<K<1)为材质对环境光的反射系数,Iambdiff是漫 ...
分类:
其他好文 时间:
2016-05-11 21:39:53
阅读次数:
316
写在前面
接着上一节内容,开发环境搭建好后,我们当然想立即编写3D应用程序了。不过我们还需要些耐心,因为OpenGL是一套底层的API,因而我们要掌握的基本知识稍微多一点,在开始绘制3D图形之前,本节我们将通过绘制一个三角形的程序来熟悉现代OpenGL的概念和流程。通过本节可以了解到:
缓存对象VAO和VBO
GLSL着色器程序的编译、链接和使用方法
OpenGL绘图的基本流程
绘...
分类:
其他好文 时间:
2016-05-06 15:38:25
阅读次数:
287
cube-mapping-skybox 效果: 我们基于观察方向向量I和物体的法线向量N计算出反射向量R。我们可以使用GLSL的内建函数reflect来计算这个反射向量。最后向量R作为一个方向向量对cubemap进行索引/采样,返回一个环境的颜色值。最后的效果看起来就像物体反射了天空盒。 反射(re ...
分类:
其他好文 时间:
2016-05-04 22:31:40
阅读次数:
257
1 引子 上次读书笔记主要是学习了应用三维坐标变换矩阵对二维的图形进行变换,并附带介绍了GLSL语言的编译、链接相关的知识,之后介绍了GLSL中变量的修饰符,着重介绍了uniform修饰符,来向着色器程序传入输入参数。 这次读书笔记的内容相对有趣一些,主要是和园友们分享讨论三维坐标变换矩阵在三维几何 ...
分类:
其他好文 时间:
2016-05-03 14:25:13
阅读次数:
318
1 引子 上次读书笔记主要是学习了应用三维坐标变换矩阵对二维的图形进行变换,并附带介绍了GLSL语言的编译、链接相关的知识,之后介绍了GLSL中变量的修饰符,着重介绍了uniform修饰符,来向着色器程序传入输入参数。 这次读书笔记的内容相对有趣一些,主要是和园友们分享讨论三维坐标变换矩阵在三维几何 ...
分类:
其他好文 时间:
2016-05-02 19:47:04
阅读次数:
247
三大主流编程语言 HLSL/GLSL/Cg Shader Language Shader Language的发展方向是设计出在便携性方面可以和C++、Java等相比的高级语言,“赋予程序员灵活而方便的编程方式”,并“尽可能的控制渲染过程”同时“利用图形硬件的并行性,提高算法效率”。 Shader L ...
分类:
编程语言 时间:
2016-04-21 20:08:15
阅读次数:
709
基于虎书实现LALR(1)分析并生成GLSL编译器前端代码(C#) 为了完美解析GLSL源码,获取其中的信息(都有哪些in/out/uniform等),我决定做个GLSL编译器的前端(以后简称编译器或FrontEndParser)。 以前我做过一个CGCompiler,可以自动生成LL(1)文法的编 ...
基于虎书实现LALR(1)分析并生成GLSL编译器前端(C#) 为了完美解析GLSL源码,获取其中的信息(都有哪些in/out/uniform等),我决定做个GLSL编译器的前端(以后简称编译器)。 以前我做过一个CGCompiler,能自动生成LL(1)文法的编译器代码(C#语言的)。于是我从《T ...
您可以在下图的例子中观察血条类型的模型是如何实现的。此demo顺便加上了后面要介绍的血条型文字(teapot)和UI文字(Hello Label!)。在StringModel的基础上,只需借助IUILayout机制即可实现opengl里的标签控件。
分类:
其他好文 时间:
2016-02-22 12:12:11
阅读次数:
306
本项目的目的:使开发者可以直接用C#书写GLSL代码。
现在编写GLSL的shader程序时,并没有什么好的开发环境。智能提示、代码补全、自动排版都没有。
GLSL是类似C语言的。几乎所有的GLSL里出现的语法形式都可以用C#以相同的方式写出来。那么用C#来写"GLSL代码",之后再自动转换为纯粹的...