摘要: 《现代编译原理》,俗称,虎书。因为这本书对实践的要求比较高,所以选择了这本书来作为编译原理的学习书籍,想一步一步的记录下来,最终完成一个完整的编译器。但是,一个人看书总是感觉很孤独。今天看第一章的题目,看完了都不知道要干什么。无奈找了一本中文版的,翻译的也不如人意,还不如看英文的。最后去晚上找了... 阅读全文
posted @ 2015-04-12 21:23 BlackWalnut 阅读(1902) 评论(9) 推荐(1) 编辑
摘要: 我们这里讨论的光源类型都有一个相同点,就是,我们考量的都是光源上的一个点,对于物体表面上一个点的影响,也就是说立体角趋近为零的情况。 这里光源分为两类,一类是方向光,假设光源在无限远处。另一类是点光源,假设光源的大小相对与光源和物体表面的距离可以忽略。 方向光在前面介绍过了,它的对物体的辐照... 阅读全文
posted @ 2015-04-11 22:21 BlackWalnut 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 辐射度测定(radiometry) 《real time rendering》在这章上来就说了一大堆光照方面的物理术语,不知该怎么翻译。后来在维基百科上看到这个表,清楚了很多(这里的w是瓦特的意思,单位是焦耳,表示能量,等等于波长乘以普朗克常量)http://zh.wikipedia.org... 阅读全文
posted @ 2015-04-10 21:48 BlackWalnut 阅读(333) 评论(0) 推荐(0) 编辑
摘要: NormalMap的实现标志着对渲染流水线的各个环节以及矩阵变化有了正确和深入的认识。这里记录一下学习过程,以及关于NormalMap的诸多细节。 刚开始想要实现NormalMap程序的时候,查阅的是《Real Time Rendering》和橙皮书。这本书里从纹理映射开始讲,提到Normal... 阅读全文
posted @ 2015-04-06 22:36 BlackWalnut 阅读(4017) 评论(1) 推荐(0) 编辑
摘要: 对于真是世界的渲染,有三个重要的组成部分,光源,材质,以及摄像机。下面,我们一个一个来简单介绍一下。 光源:方向光,点光源,聚光灯。但是,在和物体表面交互的时候,光源对物体表面的影响是依赖光的辐照度(irradiance)EL的,也就是单位面积上通过光的能量,这个能量由受到光和表面的夹角以及光... 阅读全文
posted @ 2015-04-03 21:37 BlackWalnut 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 四元数产生于1843年,是复数的一个扩展,所以里面包含了一些复数的运算。直到1985年才在图形学中使用。 四元数的优势是,相对与矩阵和欧拉角,四元数更直观和方便。四元数还可以用作某些方向上的插值,而欧拉角可能并不能很好的完成。 四元数使用四个数字表示。通常,前三个和旋转的轴密切相关,最后一个... 阅读全文
posted @ 2015-03-31 23:54 BlackWalnut 阅读(515) 评论(0) 推荐(0) 编辑
摘要: 这里不介绍算法原理,只说说在实现过程中遇到的问题,以及背后的原因。开发环境:opengl 2.0 glsl 1.0。 第一个问题:产生深度纹理。 在opengl中每一次离屏渲染需要向opengl提供一个renderframe,一个renderframe包含一个texture和一个render... 阅读全文
posted @ 2015-02-01 10:36 BlackWalnut 阅读(2826) 评论(0) 推荐(0) 编辑
摘要: Cook-Torrence 光照模型如下: 这个Io就是计算后最终的光强,主要是用来计算镜面反射光,漫反射和环境光的计算和Phong模型一致。F:Fresnel反射系数。主要用来说明反射光强度占入射光强的比例。《3D计算机图形学(opengl版)》中由介绍。Fresnel系数和Snell系数的关系... 阅读全文
posted @ 2015-01-27 17:54 BlackWalnut 阅读(353) 评论(0) 推荐(0) 编辑
摘要: glsl是什么就不多说了。这里只介绍一下glsl中一些限定符。 glsl中包含两类具有定义性质的符号,一类是和c++中定义变量的一样的符号,用来说明存放数据的类型,如float,int,bool。还有一类是的功能类似于c++中的private,protect,public,是用来说明变量被访... 阅读全文
posted @ 2015-01-24 16:07 BlackWalnut 阅读(1281) 评论(0) 推荐(0) 编辑
摘要: 使用的是Xcode 5.1.1 版本 1.调整字体 点击左上角的Xcode->Preference->Font & colors 。需要注意到是,只有选择下图中黑色框框里面的一行或者多行才能在红色圆圈里面看到字体的大小,点击红色圆圈最右面的T可以更改字体的颜色,大小等属性。 2.设置路径... 阅读全文
posted @ 2015-01-23 20:32 BlackWalnut 阅读(1089) 评论(0) 推荐(0) 编辑