graphics
文章平均质量分 62
lovelyloulou
Computer Vision,machine learning,Computer Graphics
展开
-
直线的扫描转换-中点线算法推导
无数次的把这个算法忘掉,还是重新记录一下的好 通过斜截式y=dy/dx+B 其中dy=y1-y0, dx=x1-x0, 导出直线隐式函数F(x,y)=dy*x-dx*y+dx*B=0可知对直线下方的点F(x,y)为正,直线上方的点为负 对下一步将要选择的垂直方向上相邻的两像素NE与E,其中点为M,当前选择了的像素坐标为(xp,yp)则M为F(xp原创 2010-01-15 14:57:00 · 3283 阅读 · 0 评论 -
QGraphicsItem中子Item与父Item的消息传递问题
现在要做一个需要在父item上添加控制点(子item)来调整父item形状的功能。关键是子item移动之后,要把自己的位置信息交给父item,让父item更新自己的形状。查看了很久Qt的document,需要在父ITEM中用setFiltersChildEvents(true)来设置允许拦截所有给子item的消息,然后再重载这个函数:bool sceneEventF原创 2011-11-21 20:19:54 · 4244 阅读 · 1 评论 -
Qt中移动QGraphicsItem的注意问题,path的闭合
主要针对QGraphicsPathItem一般一个复杂的封闭曲线可能是由多条简单曲线拼接而成比如我的项目中,使用了分段bezier,每段bezier至多为二次。每段bezier我都保存了其3个或者2个control point于是我构造path的时候,每次都先moveTo到bezier的起点,然后quadTo或者lineTo封闭曲线是构造原创 2011-11-18 19:25:21 · 3548 阅读 · 0 评论 -
Opengl Depth Value Transformation
出自 http://www.opengl.org/archives/resources/faq/technical/depthbuffer.htm 老是忘记。。于是干脆直接粘到这里方便自己找。Why is my depth buffer precision so poor?The depth buffer precision in eye coord转载 2013-06-20 22:27:38 · 1673 阅读 · 0 评论 -
VS2010配置GLUT的方法
分别把这5个文件放到如下文件夹中:glut.h ---> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\glglut.dll,glut32.dll ---> C:\Windows\SysWO转载 2011-10-09 14:38:48 · 6378 阅读 · 0 评论 -
做poster的悲剧过程
国庆第一天得到消息说我中了siggraph asia的poster,把我从国庆不知道怎么玩的忧愁中解放了出来,这毕竟是我的第一篇文章,后来也证明,我的国庆确实不用再考虑怎么玩了。于是1,2号就在做poster,用ppt,下载了模板,开始各种改。3号把做好的ppt交给老师看,5号的原创 2011-10-07 12:14:03 · 7601 阅读 · 1 评论 -
Gouraud着色,拉格朗日线性插值
做个记录HOHO#define _RGB32BIT(a,r,g,b) ((b) + ((g) << 8) + ((r) << 16) + ((a) << 24))struct RGBA{ int r,g,b,a; RGBA(int _r,int _g,int _b,int _a) { r = _r; g = _g;原创 2010-01-20 20:22:00 · 1526 阅读 · 2 评论 -
OpenGL 配置
OpenGL官方网站(英文)http://www.opengl.org安装GLUT工具包 GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。 Windows环境下的GLUT下载地址:(大小约为150k) http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip 无法从以上地址原创 2010-01-26 14:19:00 · 1575 阅读 · 0 评论 -
ShadowMap渲染阴影方法及问题
ShadowMap基于的原理:SM算法是一个2-pass绘制算法,第一pass从光源视点绘制场景,生成SM纹理,第2pass从视点视图按常规方法绘制场景 从光源的位置观察场景,这时候我们看不到的地方就是该有阴影的地方,于是可以使用比较像素到光源距离的方法来确定某个像素是否在阴影之中。 于是我们需要记录我们看得到的像素的距离值,以便做比较。 首先,创建在光源位置处的观察坐标系原创 2010-02-26 15:12:00 · 3501 阅读 · 0 评论 -
将深度值压缩进颜色通道的方法
规格化的深度值和颜色值都在[0,1]区间内, 但是大多Z-BUUFER中的深度值都有24位的精度,而每个颜色分量都只有8位精度,所以需要将深度值分拆,分别放入多个颜色通道中。 可以简单将一个24位的深度值分别放入3个8位的通道中,即R,G,B需取小数(二进制) 前8位放入R中,方法为: color.r = floor( depth * 256 ) / 256 即将深度值左移8原创 2010-04-14 14:59:00 · 1112 阅读 · 0 评论 -
高斯模糊原理及实现
高斯模糊即对指定像素和其周围像素进行加权平均来得到最终结果,使用高斯分布作为滤波器。 高斯分布即为正太分布,1维和2维正态分布密度函数如下 这里设μ=0, ρ=0.u为期望,σ为标准差,μ±σ为函数图像的拐点,σ越大曲线越矮越宽,即采样范围越大。 在这两个函数中,x,y表示相对于中心像素(0,0)的偏移量(以像素为单位) 这两个函数的结果表示在x或(x原创 2010-04-14 16:02:00 · 19908 阅读 · 0 评论 -
FPS中子弹飞行轨迹随视点位置变化而变化的问题
这几天做FPS,倒是好好的考验了下我的三维坐标变换。 开始直接将子弹的初始坐标和初始方向设置在view-space中,这样比较方便 那么初始坐标应该是view-space中枪口的坐标 接下来把view-space中的初始坐标和方向都变换到世界坐标系下,而后所有的变换都在世界坐标系下进行,都使用子弹在世界坐标系下的坐标。 结果我做出来发现一个问题,就是当人物移动原创 2010-05-02 16:17:00 · 1552 阅读 · 0 评论 -
法线贴图
<br />今天终于做了个凹凸映射,前段时间又耍了不少,罪过啊。。。由于电子书上居然少了关键的一页,只好把推导记录在这个地方,顺便总结一下,也算是加深印象。<br /> <br />法线图的构造是从高度图中提取每个像素的高度,对每个像素的法向量,要计算U,V方向上的切向量,这两个切向量依赖于这个像素的相邻的两个像素的高度差,最后法向量等于这两个切向量的叉乘。由于法向量存储在纹理中,所以需要将值转换到0,255范围内。<br /> <br /> <br />凹凸映射的光照计算需要在切线空间(tangent s原创 2010-06-22 15:11:00 · 2036 阅读 · 0 评论 -
反射折射和菲涅耳近似
<br />先来几个图:<br /><br /> <br /> <br />首先需要有一个单位球,球心就放在摄像机处,随时保持。 <br />接下来载入我们的立方体贴图,当然是已经做好的,然后贴到球上,注意关掉ZWRITE和背面裁剪,这样就完成一个静态的环境贴图了。<br />如果要做动态的,那么需要自己渲染出一个立方体贴图,这时需要将摄像机放到要做反射折射的物体中心,以90度的FOV,绘制所观察到的景物到立方体贴图的每个面上,这样可以保证立方体贴图的无缝连接,自然就需要上下左右地绘制6次,来生成一个实时的原创 2010-06-23 18:30:00 · 6070 阅读 · 1 评论