摘要: 这次的错误搞了我两天,我要发个日志记录一下T_T   之前没用过库,以为下下来之后,把头文件和cpp文件都加进工程里,搞好include就行。 库是在linux下写的,我与linux下专用的那些函数及头文件搏斗了很久,后来发现,库里面有用#ifdef判断当前系统的,根本不用我瞎折腾。。。   但是还是很多error,尤其是改了几个头文件后,VS2005几乎死掉,报了1... 阅读全文
posted @ 2010-09-27 20:40 筱夏 阅读(2539) 评论(0) 推荐(1) 编辑
摘要: 大三的时候上计算机图形学没认真听过课,书也不喜欢看,一直不懂Bezier曲线。这两天突然想起来,决定再看看书。其实是挺简单的公式,每个点的位置P(u)(0<=u<=1)是通过每个控制点Pk(k是控制点的索引从0到n,总共n+1个控制点)与相应的混合函数BEZ k,n(u)的乘积累加得到的。而一般的应用都是四个控制点的三次方程,保证曲线穿过第1和第4个控制点。既然知道了控制点确定为4个,... 阅读全文
posted @ 2010-09-16 19:09 筱夏 阅读(1081) 评论(1) 推荐(0) 编辑
摘要: 翻译自Introduction.to.3D.Game.Programming.with.DirectX.10D3D中,有点万物皆纹理的意思。z-buffer是纹理,frame-buffer也是纹理。纹理通常有两种用途,render target或者shader resource。分别对应以下的状态标志:D3D10_BIND_RENDER_TARGET | D3D10_BIND_SHADER_RES... 阅读全文
posted @ 2010-09-08 20:34 筱夏 阅读(3012) 评论(2) 推荐(1) 编辑
摘要: 昨天学姐运行我的程序,结果总是不对,原本以为注释掉几条语句就可以,结果直接崩了。因为是GPU程序,而我没办法使用EmuDebug,所以只能一点点注释来查错。刚开始学CUDA,真的不知道如何是好。这个错误隐约见过,我觉得是内存访问越界,可是又不明白,为什么在计算了那么多次之后才越界。昨晚百思不得其解,今天早上爬起来继续看代码的时候发现,从一维索引转二维索引有错误,改过来之后,终于没有再崩溃了。以前没... 阅读全文
posted @ 2010-09-03 15:25 筱夏 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 这个是练习使用纹理内存的,CUDA SDK中有个差不多的例子,叫simpleTexture,对图像进行旋转。拉伸更简单一些,只要算好了纹理坐标,直接读取就可以了。下面是设备端代码 resizepic.cu ,只是用下标除以大小,获取它的标准化纹理坐标,由于使用的是CUDA数组,所以会进行线性滤波,因此生成的图像比较平滑,没有马赛克主机端代码 hostpic.cu 基本上照着SDK写的,运行的时候出... 阅读全文
posted @ 2010-09-02 16:01 筱夏 阅读(8054) 评论(0) 推荐(1) 编辑
摘要: 要求:计算两个1000个项的向量的点乘。本来以为能很快写完的,结果跑出的答案是错的,后来对照着NVIDIA的示例,加上cutilCheckMsg("kernel launch failure");这句,运行到这里直接挂掉了。然后我想了一会儿,尝试性的把1000改成了100,运行成功了,再翻一下书发现Block最多线程是512个,于是我内牛满面的在那里重重的画了几笔,这算是我遇到的第一个CUDA错误... 阅读全文
posted @ 2010-08-28 15:16 筱夏 阅读(3920) 评论(0) 推荐(0) 编辑
摘要: 原文地址如下:http://msinilo.pl/blog/?p=614 。。。我翻译着玩的有一些很短的技巧和指导方针,每一个游戏开发人员都应该记住。没有复杂的事,都是常识。但是仍然很少有人去考虑底层的东西,尤其是游戏开发人员。今天的硬件体系使得cache可以成为我们最大的朋友,或者敌人。CPU在某些地方的额外的计算所带来的低效远小于一个cache miss(因此LUT并不总是最好的选择)。笔者并... 阅读全文
posted @ 2010-08-23 18:44 筱夏 阅读(640) 评论(0) 推荐(0) 编辑
摘要: 前面的顶点数组使得几何图元的显示方便了很多,但是如果每次都要向OPENGL发送一大块数据,而这数据其实并没有修改过,那么这传输就是冗余的。所以这里添加了缓冲区对象,将顶点数组存储在服务器端的缓冲区对象中。1. 创建缓冲区对象glGenBuffers(GLsizei n,GLuint *buffers) 任何非零的无符合整数都可以作为缓冲区对象的标识符使用。这个函数的作用就是向系统申请n个缓冲区,系... 阅读全文
posted @ 2010-08-23 18:42 筱夏 阅读(2721) 评论(0) 推荐(0) 编辑
摘要: 顶点数组允许通过少量函数调用访问顶点相关的数据,能够提高程序的性能。以前程序动辄几千个面片,一次又一次的调用glVertex()实在麻烦,再次后悔看书不认真中。。。使用顶点数组对集合图形进行渲染需要3个步骤:1. 启用数组调用glEnableClientState(GLenum array)函数,指定需要启用的数组,最多可达8个数组。同样的,调用glDisableClientState(GLenu... 阅读全文
posted @ 2010-08-20 14:23 筱夏 阅读(1858) 评论(0) 推荐(0) 编辑
摘要: 之前读的时候一直觉得红宝书是很艰涩难懂的,不如NEHE的教程简单。后来才发觉是自己没基础,几番折腾之后也只能用OPENGL做些简单的东西。半年没写,连glBegin都给忘了。图形学的大作业要求写个ZBuffer扫描线算法,虽然算法看的很明白,但到了要写的时候总还是很晕,不知道什么时候转换坐标,什么时候消隐。今天重看OPENGL编程指南,才发现这些早已在第一章就写得清清楚楚,心里暗悔早点看到便好了。... 阅读全文
posted @ 2010-08-20 14:22 筱夏 阅读(2554) 评论(0) 推荐(0) 编辑