随笔分类 -  3D数学和图形学

摘要:中文列表函数名说明abs计算输入值的绝对值。acos返回输入值反余弦值。all测试非0值。any测试输入值中的任何非零值。asin返回输入值的反正弦值。atan返回输入值的反正切值。atan2返回y/x的反正切值。ceil返回大于或等于输入值的最小整数。clamp把输入值限制在[min, max]范... 阅读全文
posted @ 2015-03-27 11:09 ☆A希亿 阅读(1512) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.cnblogs.com/minggoddess/archive/2012/12/03/2800133.html光照图的理论和实践 这是我翻译的一篇文章,不知道哪年翻译的,没译完。这几天看见了,又拿出来接着翻译。可是还有那么多,不知道那天能弄出来。所以我就先把翻译的贴出来... 阅读全文
posted @ 2015-01-29 16:10 ☆A希亿 阅读(948) 评论(0) 推荐(0) 编辑
摘要:【Pixel-Fillrate】 “填充率“以每秒钟填充的像素点为单位,“三角形(多边形)生成速度“则表示每秒钟三角形(多边形)生成个数。现在的3D显卡的性能也主要看着两项指标,这两项指标的数值越大,显卡三维图像的处理能力就越强,显卡的档次也就越高。 填充率的故事 谈到3D加速卡,最常用的一个... 阅读全文
posted @ 2015-01-25 21:31 ☆A希亿 阅读(3462) 评论(0) 推荐(0) 编辑
摘要:转自:http://blog.csdn.net/christina123y/article/details/5963679在计算机图形学中,只要是变换,无论平移,旋转,缩放,都是乘一个矩阵。在模型视图变换时,顶点乘模型视图变换矩阵,而顶点对应的顶点法线向量(或其他的法线向量)则要乘模型视图矩阵的逆转... 阅读全文
posted @ 2015-01-23 12:52 ☆A希亿 阅读(1364) 评论(0) 推荐(0) 编辑
摘要:一、 1、法线归一化的一个意思是:通过叉乘得到一个面的面法线,然后进行归一化的目的是,求得单位长度的向量,就是说,法线向量的x,y,z都要除以向量长度。因为法线长度和面积成正比,但光照不能随面积变化,所以取一个单位值。当然点法线需要考虑通过该点的所有面的面法线。 2、法线的处理还有一个问题是:人们容... 阅读全文
posted @ 2015-01-23 12:41 ☆A希亿 阅读(2856) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.cnblogs.com/soroman/archive/2008/03/21/1115571.html思考:矩阵及变换,以及矩阵在DirectX和OpenGL中的运用1。矩阵和线性变换:一一对应矩阵是用来表示线性变换的一种工具,它和线性变换之间是一一对应的。考虑线性变换:... 阅读全文
posted @ 2015-01-23 11:00 ☆A希亿 阅读(779) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.gameres.com/thread_256279_1_1.htmlGameRes发布,文/paladin_t,转载请注明GameRes和作者追击、群聚是极常用到的敌人行为模式。靠拢玩家位置的移动叫追击;群聚指一批敌人集体采用统一的行动,就像一群群沙丁鱼一样。群聚敌人往往... 阅读全文
posted @ 2015-01-21 00:51 ☆A希亿 阅读(563) 评论(0) 推荐(0) 编辑
摘要:1.固定渲染管线与可编程渲染管线的区别:1)、固定渲染管线 ——这是标准的几何&光照(T&L)管线,功能是固定的,它控制着世界、视、投影变换及固定光照控制和纹理混合。T&L管线可以被渲染状态控制,矩阵,光照和采制参数。2)、顶点着色器——图形开发人员可以对渲染管线中的顶点运算和像素运算分别进行编程处... 阅读全文
posted @ 2015-01-18 22:20 ☆A希亿 阅读(497) 评论(0) 推荐(0) 编辑
摘要:这部短片使用了中点位移法来模拟闪电。中点位移法通常是用于生成分形地形的算法,你会发现闪电的形状类似于一个理想化的山脉的边缘。下面节选的这段闪电递归程序可以帮你完成所有的工作。123456789101112131415function drawLightning(x1,y1,x2,y2,displac... 阅读全文
posted @ 2014-12-13 00:31 ☆A希亿 阅读(1260) 评论(0) 推荐(0) 编辑
摘要:重要:在目前市面上常见的游戏引擎中,主要采用以下三种灯光实现方式:顶点照明渲染路径细节Vertex Lit Rendering Path Details正向渲染路径细节Forward Rendering Path Details延迟光照渲染路径的细节Deferred Lighting Renderi... 阅读全文
posted @ 2014-10-17 18:02 ☆A希亿 阅读(20898) 评论(1) 推荐(1) 编辑
摘要:先贴一个图: 游戏物体的属性视图中调整的角度就是欧拉角啦。。 如果细心,就会发现,单独去调整xyz的时候它并不是按照世界坐标系中的xyz轴来实施旋转的,它表示的是旋转的欧拉角。 什么是欧拉角呢?请看这里:http://www.cnblogs.com/wonderKK/p/3969408.html 通 阅读全文
posted @ 2014-09-14 01:32 ☆A希亿 阅读(21866) 评论(0) 推荐(1) 编辑
摘要:自:http://www.cnitblog.com/luckydmz/archive/2010/09/07/68674.html首先来看一下什么是欧拉角(Euler angles)?构件在三维空间中的有限转动,可依次用三个相对转角表示,即进动角、章动角和自旋角,这三个转角统称为欧拉角。——引自百度百... 阅读全文
posted @ 2014-09-13 01:53 ☆A希亿 阅读(17685) 评论(0) 推荐(0) 编辑
摘要:自:http://www.cnblogs.com/zy776/archive/2007/03/21/683065.html计算机图形系统的发展以提供更快的图形数据处理和更真实的视觉效果为目标!基于光栅化(Rasterization)图形管线如图-2所示,图中下部虚线部分数据流向代表固定图形管线。应用... 阅读全文
posted @ 2014-01-08 11:22 ☆A希亿 阅读(336) 评论(0) 推荐(0) 编辑
摘要:脏矩形技术学习 很久以来由于工作上的繁忙没有写新东西了~hoho~ 本文基于2D表现的游戏,在当今3D大行其道的时代,说2D是否显得格格不入?这个问题我不作讨论,因为本人从事的一直都是2D游戏的开发,所以如果你认为讨论2D技术是一个过时的东西就此打住。 废话不多说,下面进入正题。 优化一直是我在程序中追求的东西之一,想想让自己的游戏在一个古董机器能流畅的运行或者说在当今的机器上,CPU占用率和内存占用率都很低的情况。(毕竟我非常讨厌一个游戏独占了我所有的CPU资源)。 如果从图形接口上作优化,常用的就是使用3D加速和CPU的特殊指令(虽然说DirectDraw能够使用2D硬件加速,但大部分机器 阅读全文
posted @ 2013-02-01 18:40 ☆A希亿 阅读(733) 评论(0) 推荐(0) 编辑
摘要:[*1]翻阅 [Matrix3D]的帮助文档, 可以看到下面的图表和说明:Matrix3D类使用了一个4 × 4的方阵:它包含四个行和列的数字以实现变换需要。 矩阵的前三行存储每个3D轴(X,Y,Z)的数据, 转换信息在最后一列,前三列的数据表示方向和缩放信息,比例因子是位于前三列的对角线上的数字。以下是Matrix3D元素的表示形式:但是“X轴”,“Y轴”和“Z轴”的位置和文档中关于“矩阵的前三行存储每个3D轴(X,Y,Z)的数据”的说法不一致, 因此,在正文中那个图才是它们的正确位置。[*2]帮助中对Matrix3D.rawData的Vector对象做了如下说明:它一个由16个数 阅读全文
posted @ 2012-08-21 14:23 ☆A希亿 阅读(721) 评论(0) 推荐(0) 编辑
摘要:解读Flash矩阵Matrix:scale(a,d);比例变换就是将平面上任意一点的横坐标放大或缩小S11倍,纵坐标放大或缩小S22倍,即rotate(弧度),弧度 =(角度/ 180)* Math.PI旋转变换就是将平面上任意一点绕原点旋转θ角,一般规定逆时针方向为正,顺时针方向为负translate(tx,ty)平移交换指的是将平面上任意一点沿X方向移动C。,沿Y方向移动ty平移交换不能直接用2X2矩阵来表示。下述齐次坐标变换矩阵则可解决这个问题,所谓齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示,在空间直角坐标系中,任意一点可用一个三维坐标矩阵[x y z]表示。如果将该点用 阅读全文
posted @ 2012-08-20 17:46 ☆A希亿 阅读(1011) 评论(0) 推荐(0) 编辑
摘要:光照模型3D渲染中,物体表面的光照计算公式为:I=环境光(Iambient) +漫反射光(Idiffuse) +镜面高光(Ispecular);其中,环境光(ambient)计算公式为:Iambient= Aintensity* Acolor;(Aintensity表示环境光强度,Acolor表示环境光颜色)漫反射光(diffuse)计算公式为:Idiffuse= Dintensity*Dcolor*N.L;(Dintensity表示漫反射强度,Dcolor表示漫反射光颜色,N为该点的法向量,L为光源向量)镜面光照(specular)计算公式为:Ispecular= Sintensity*Sc 阅读全文
posted @ 2012-04-10 22:24 ☆A希亿 阅读(2217) 评论(0) 推荐(0) 编辑
摘要:3D模板阴影原理 1:先从3dsMax中导出一个简单的场景,一个园环,球,平面。 2:园环直接面向光源,园环对球体来说是一个光线的阻挡物,园环在它上面形成阴影,同时,园环和球体对平面来说是光线的阻挡物,所以,同时在其上面形成阴影。3: 要产生模板阴影,先要找出在园环和球体上面面向光线的面,去除背向光线的面,通过测试光线同园环和球体上面每一个所组成的小角形的法线的夹角是否小于90度,即光线矢量同法线矢量的点积要大于零。 4:在余下的所有面向光线的面中,把每个面的每条边可以保存到一个Vector中,不过在保存之前,先把该条边同已保存在Vector中的每条边先进行逐一比较,如果,找到的这条边同它的两 阅读全文
posted @ 2012-03-30 19:01 ☆A希亿 阅读(1951) 评论(0) 推荐(0) 编辑
摘要:很多玩过飞行射击类游戏的朋友都对跟踪导弹印象深刻,手中有这样一款武器常常能够战无不胜,但是敌人射出的导弹则可能成为玩家的噩梦。其实实现导弹跟踪的方法并不复杂,只需要一些简单的平面解析几何知识就可以做到。算法分析假设导弹旋转角速度为omega,运动速度为v。下图显示了导弹和目标在坐标轴中的初始状态。初始时刻,目标与导弹的运动方向都是-Y,位置分别为(x1,y1),(x2,y2),连接导弹与目标的坐标,得到一条线段,该线段与-Y轴夹角为c;导弹与-Y方向的夹角为b,b是导弹已旋转的角度,此时为0;导弹方向与线段的夹角为a,a就是导弹还需要旋转的角度。此时:c=90-Math.atan2(y2-y1 阅读全文
posted @ 2012-03-08 22:43 ☆A希亿 阅读(5389) 评论(2) 推荐(2) 编辑
摘要:给出方向(a,b,c)缩放因子x,求在这个方向上的缩放矩阵,然后再绕这个方向旋转90°。下面给出旋转部分。其中最难理解的应该是下面说说它的由来:下面A3=A4=wA2=最后得到A3=A2*cosθ+A4*sinθ即 阅读全文
posted @ 2011-12-09 22:49 ☆A希亿 阅读(1273) 评论(0) 推荐(1) 编辑