08 2010 档案

摘要:要求:计算两个1000个项的向量的点乘。本来以为能很快写完的,结果跑出的答案是错的,后来对照着NVIDIA的示例,加上cutilCheckMsg("kernel launch failure");这句,运行到这里直接挂掉了。然后我想了一会儿,尝试性的把1000改成了100,运行成功了,再翻一下书发现Block最多线程是512个,于是我内牛满面的在那里重重的画了几笔,这算是我遇到的第一个CUDA错误... 阅读全文
posted @ 2010-08-28 15:16 筱夏 阅读(3955) 评论(0) 推荐(0)
摘要:原文地址如下:http://msinilo.pl/blog/?p=614 。。。我翻译着玩的有一些很短的技巧和指导方针,每一个游戏开发人员都应该记住。没有复杂的事,都是常识。但是仍然很少有人去考虑底层的东西,尤其是游戏开发人员。今天的硬件体系使得cache可以成为我们最大的朋友,或者敌人。CPU在某些地方的额外的计算所带来的低效远小于一个cache miss(因此LUT并不总是最好的选择)。笔者并... 阅读全文
posted @ 2010-08-23 18:44 筱夏 阅读(643) 评论(0) 推荐(0)
摘要:前面的顶点数组使得几何图元的显示方便了很多,但是如果每次都要向OPENGL发送一大块数据,而这数据其实并没有修改过,那么这传输就是冗余的。所以这里添加了缓冲区对象,将顶点数组存储在服务器端的缓冲区对象中。1. 创建缓冲区对象glGenBuffers(GLsizei n,GLuint *buffers) 任何非零的无符合整数都可以作为缓冲区对象的标识符使用。这个函数的作用就是向系统申请n个缓冲区,系... 阅读全文
posted @ 2010-08-23 18:42 筱夏 阅读(2727) 评论(0) 推荐(0)
摘要:顶点数组允许通过少量函数调用访问顶点相关的数据,能够提高程序的性能。以前程序动辄几千个面片,一次又一次的调用glVertex()实在麻烦,再次后悔看书不认真中。。。使用顶点数组对集合图形进行渲染需要3个步骤:1. 启用数组调用glEnableClientState(GLenum array)函数,指定需要启用的数组,最多可达8个数组。同样的,调用glDisableClientState(GLenu... 阅读全文
posted @ 2010-08-20 14:23 筱夏 阅读(1869) 评论(0) 推荐(0)
摘要:之前读的时候一直觉得红宝书是很艰涩难懂的,不如NEHE的教程简单。后来才发觉是自己没基础,几番折腾之后也只能用OPENGL做些简单的东西。半年没写,连glBegin都给忘了。图形学的大作业要求写个ZBuffer扫描线算法,虽然算法看的很明白,但到了要写的时候总还是很晕,不知道什么时候转换坐标,什么时候消隐。今天重看OPENGL编程指南,才发现这些早已在第一章就写得清清楚楚,心里暗悔早点看到便好了。... 阅读全文
posted @ 2010-08-20 14:22 筱夏 阅读(2567) 评论(0) 推荐(0)
摘要:下面是谓词逻辑。在coq里,量词的表示如下:全称量词:forall存在量词:exists同样都有自己的引入规则和删除规则1. forall引入规则 intros x 输入intros x就可以提取出一个前提x,使得结论成为F。intros前面有讲很多,这里就不多说了。2. forall删除规则 apply H 对于已知的前提H : forall x:A , F.可以用它来简化结论,比如对于H : ... 阅读全文
posted @ 2010-08-19 09:44 筱夏 阅读(1245) 评论(0) 推荐(0)
摘要:用coq做了一个作业,所以现在会一点点证明了。不过这只是coq中的很小很小的一部分,现在把我的理解写出来。 首先隆重介绍命题逻辑的5种基本连接词: ~ 非 /\ 合取 \/ 析取 -> 蕴含 <-> 等价 每种连接都有两种基本规则: introduction rule 引入规则 elimination rule 删除规则 这些规则是用来证明一个命题是否正确的根本。下... 阅读全文
posted @ 2010-08-19 09:28 筱夏 阅读(4250) 评论(2) 推荐(4)