- 博客(11)
- 资源 (2)
- 收藏
- 关注
原创 shader之旅-7-平面阴影(planar shadow)
根据《real-time shadow》这本书第二章中的推导,实现了最简单的阴影技术。planar shadow通过一个投影矩阵将被灯光照射的物体的顶点沿着光线方向投影到接受阴影的平面。关键的问题是这个投影矩阵怎么得到。阴影所在平面用下式表示:其中n是法线,d是常量,x是平面上的点。灯光和被投影的顶点所在的直线用下式来表示:,其中l是光源的位置,v是被投影的顶点,t是系数。
2015-05-26 14:35:08 1987
原创 shader之旅-6-尝试各种光照
在这一次,尝试了许多光照。包括标准的ADS点光源的,phong着色的,聚光灯的,用half vector计算高光,还有flat着色。对于每一次着色,需要计算ambient, diffuse, specular。按照计算位置分,在vertex shader中计算颜色,然后自动插值,就是gouraud shading,不插值就是flat shading;在fragment shader中计算颜
2015-04-09 14:34:41 377
原创 shader之旅-5-加入光照
在加入光照之前,先重构一下以前的工程。具体如下:1. 在CMakeLists.txt中用环境变量读取glsdk的位置2. 茶壶的数据放到一个公共的目录,并在程序中用宏来获取3. 程序中shader的目录也用宏来获取,该宏在CMakeLists.txt设置下面讨论一下光照的问题:为了方便编程,没有将光源的信息,材质的信息通过uniform传入shader,而是在shader中直接
2015-04-01 10:49:49 482
原创 shader之旅-4-读取显示法线
在加入光照之前,需要为shader添加一个法线数据,所以扩展了读取obj代码,使得能够处理法线。刚开始想自己计算法线,但是显示出来之后并不对,仔细想了想发现因为使用的索引绘制,所以每个顶点只有一个法线,这就麻烦了。所以还是找一个带有法线的obj文件然后解析吧。解析obj文件时又发现需要将顶点normalize,不然显示起来不好调节摄像头的距离。显示法线用到了geometry
2015-01-15 16:45:07 878
原创 shader学习之旅-3-从文件读取模型数据和着色器程序
对前面的代码进行了重构,添加了新功能:1.从文件读取shader;2.读取简单的obj格式文件misc.cpp中是实现这两个功能的代码。下一步就可以开始各种shader效果的探索了。代码地址还是这里
2015-01-14 21:24:04 971
原创 shader学习之旅-2-添加摄像机控制
在上一篇中建立的框架只是简单的显示了一个静态三角形,这一篇我添加了摄像头控制的功能。背后的原理可以参考这个教程,我就是通过它开始接触三维图形编程的。这个教程详细的介绍了三维图形中用到的矩阵变换的原理,也是非常详细。在写这个工程时遇到了一个印象深刻的问题,使用glm时因为数值类型不统一导致模板参数推倒失败。还有在X window环境下glutMouseWheelFunc不能用,需
2015-01-14 16:49:32 552
原创 shader学习之旅-1-建立程序框架
今后一段时间,我会开始记录自己学习shader的历程,计划主要以《Graphic Shaders:Theory and proctice》为主。好,下面开始。首先,先建立一个可以使用的playground。编写opengl程序最后借助一些方便的库,主要解决opengl函数加载,向量计算,模型数据加载等等问题。我选择了Unofficial OpenGL Software Developm
2015-01-12 21:32:44 557
原创 编译PixelLight遇到的问题
刚开始发现他会下载依赖的库,但是服务器上可能没有更新,所以md5校验失败,而且我的系统上已经安装了一些库了,所以不需要下载了。于是我就搜索了一下FindLua.cmake找到了之后不知道放到什么地方了。看文档上说是放到/usr/local/share/cmake/Modules结果放进去不管用。于是又用cmake --help-module-list得到可以找到的module,然后用locate指
2014-01-30 14:38:10 692
原创 DES加密详解
在网上搜集了一些资料,弄明白了DES加密算法,下面整理一下。DES算法的密钥是64位,其中实际用到了56位,第8, 16, 24, 32, 40, 48, 56, 64位留作奇偶校验。在加解密的时候,该算法将数据以64位为单位进行处理,也就是处理64位然后输出64位。下面是加密大致的流程图。 首先介绍一下右边的流程图,也就是从64位密钥生成
2011-02-15 16:02:00 1845 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人