
数学图形
luyuncsd123
这个作者很懒,什么都没留下…
展开
-
3D顶点转换和法线转换
Part1 转换流程之顶点转换 物体顶点是相对于物体自身坐标系而言的数据,要进行一系列转换才最后显示在屏幕上:1.物体坐标系到世界坐标系。 乘以World矩阵,包含了物体的平移旋转和缩放。2.世界坐标系到相机坐标系。 乘以View矩阵。 该矩阵实际上是相机相对于世界坐标系转换的逆矩阵。 所以相机的世界坐标系位置可以用View矩阵的逆矩阵的平移向量表示出来。原创 2013-08-11 08:22:44 · 1850 阅读 · 0 评论 -
相机变换矩阵
一些网友写信给我希望能够了解固定流水线中世界空间到相机空间变换矩阵的具体推导过程。其实之前我在《向量几何在游戏编程中的使用6》中已经简单的把相机变换作为一个使用基理论的例子进行了说明,但可能仍然不够具体。这篇文章中,我会尽力阐述相机变换的整个来龙去脉。希望能够对正在学习固定流水线的朋友们有所帮助。这里我们仍然会在推导相机变换之前介绍几个理论知识,目的是为了更好的理解推导过程。我们马上开始!什么转载 2013-11-03 01:01:52 · 2176 阅读 · 1 评论 -
渲染管线
关于渲染管线将什么呢?无非就是在OpenGL的管道当中各个部分的功能以及如何在管道当中形成了我们想要的最终的一幅图.(像素).而管线当中的操作可分为以下几个部分: 阶段1. 指定几何对象. 如:点 线 三角形.等一些几何图元..OpenGL绘制几何图元的方法有以下三种: 一次一个顶点.即使用glBegin() glVertex() glEnd() 指定几何对转载 2013-09-04 17:19:21 · 1621 阅读 · 0 评论 -
凹三角形和凸三角形
凸三角形: 任意n个顶点的凸多边形都能分解为n-2个三角形。由几何知识可知,三角形内角和为180度。所有三角形内角和为(n-2)*180度。可以看到,这个和总是等于多边形的内角和。 对一个凸多边形,内角不会大于外角。(外角不是补角,一对内角外角的和等于360度) 另一种检测凸性的方法就是检测多边形上是否有凹点。如果一个都没有找到,就是原创 2014-02-16 10:50:17 · 13271 阅读 · 1 评论 -
透明混合
简单的透明OpenGL中的绝大多数特效都与某些类型的(色彩)混合有关。混色的定义为,将某个象素的颜色和已绘制在屏幕上与其对应的象素颜色相互结合。至于如何结合这两个颜色则依赖于颜色的alpha通道的分量值,以及/或者所使用的混色函数。Alpha通常是位于颜色值末尾的第4个颜色组成分量。前面这些课我们都是用GL_RGB来指定颜色的三个分量。相应的GL_RGBA可以指定alpha分量的值。更进一步,原创 2014-03-15 20:28:14 · 1013 阅读 · 0 评论 -
主要来看一下矩阵的旋转运算:
主要来看一下矩阵的旋转运算:转载 2014-03-15 23:12:25 · 1619 阅读 · 0 评论 -
坐标变换 及矩阵变换
为了对一个点进行变换(平移、伸缩、旋转等),可以用一个4 × 4 的的变换矩阵来表示,如最常见的是使用一个模型视图变换矩阵,来变换点、线、多边形以及其它几何体,也可以变换多边形表面的切向量。变换思路如下:设置一个4 × 4 的矩阵中元素的值,使其表示某一具体的变换。然后将某一点的坐标或者某一向量的分量放入一个1 × 4 的行向量v中。乘积vX就生成了经过变换的向量v˜,例如,如果X表示转载 2013-10-31 11:32:02 · 20429 阅读 · 0 评论 -
线段 矩形 矩形与矩形 相交
[csharp] view plaincopyprint?/* 功能:判断线段和矩形是否相交 先判断线段的俩个端点是否在矩形的内部,在就必然相交 其次判断线段的包围盒是否和矩形相交,不相交的话线段和矩形肯定也不相交 最后判断,矩形的四个顶点是否位于线段的两侧,是则必然相交,否则就不相交转载 2014-03-30 13:40:39 · 2158 阅读 · 1 评论 -
也来看看智慧题
1、小明爬楼梯,每次只能爬1层或者原创 2014-04-12 17:24:12 · 1047 阅读 · 0 评论 -
法线贴图
法线贴图 什么是法线贴图技术呢?这是一种用来实现3D效果的一种技术,要想理解这种技术还请您听我慢慢道来。 我们知道,在游戏中经常会有这样的情况,就是一个平面——这个平面在现实中并不是一个“平”面,例如砖墙的表面带有石质浮雕等等。这样的情况如果要求游戏开发人员将复杂的3D细节都做出来是不现实的,因为即使不计较在建模时候的复杂度,过多的3D细节也同样会大量消耗显示芯片的性能,转载 2014-03-20 09:37:13 · 1509 阅读 · 0 评论 -
纹理与材质
纹理更偏向于“图”,而材质更偏向于“属性”。 打个比方说,对同一个立方体模型进行处理: 加纹理信息,可以认为是贴上图,比如木头的纹理图,大理石的纹理图。 加材质信息,可以认为是为这个立方体加上属性(这些属性主要是指反射系数、折射系数等),比如木头的属性或大理石的属性。 从另一个角度来看,加了纹理的模型是静态的和表面的,不会因为外界环境原创 2014-03-20 09:53:34 · 1644 阅读 · 0 评论 -
几个着色器及简易HLSL
前面我们学习了Directx 11如何在屏幕上绘制一个图形(三角形),其中涉及到着色器,我们只是使用了其中的方法,而没有讲解着色器是如何工作的,到底什么是着色器等等,今天将来了解一下着色器到底是什么!!!由于在Directx 11中包含了多种着色器,而有些着色器在一些高级的应用中才会用到,因此作为一个初学者,先了解顶点着色器和像素着色器就OK了,其它的在碰到的时候再进行深入了解。转载 2014-05-07 16:31:55 · 2808 阅读 · 0 评论 -
几大坐标变换
世界坐标系转换:世界坐标系转换其实就是将顶点从几何模型坐标系移到世界坐标系中,在游戏里就是构建游戏场景,将物品放置到一个场景里。通常在世界坐标系转换时,还将通过改变大小来控制基元物件的放大或缩小,通过改变方向来设置旋转,通过改变位置来进行转变。在一个场景中,每一个物件都有他自己的世界坐标系转换矩阵,这是由于每一个物件都有其自己的大小,方向和位置。 观察坐标系转换:转载 2014-05-07 16:41:49 · 1540 阅读 · 0 评论 -
深入探索透视投影变换
透视投影是3D固定流水线的重要组成部分,是将相机空间中的点从视锥体(frustum)变换到规则观察体(Canonical View Volume)中,待裁剪完毕后进行透视除法的行为。在算法中它是通过透视矩阵乘法和透视除法两步完成的。 透视投影变换是令很多刚刚进入3D图形领域的开发人员感到迷惑乃至神秘的一个图形技术。其中的理解困难在于步骤繁琐,对一些基础知识过分依赖,一旦对它们中的任转载 2013-11-03 00:58:42 · 1117 阅读 · 0 评论 -
向量几何在游戏编程中的使用5
物体的旋转-Twinsen编写-本人水平有限,疏忽错误在所难免,还请各位数学高手、编程高手不吝赐教-我的Email-address: popyy@netease.com欢迎回来这里!此次我们要讨论向量的旋转问题,包括平面绕点旋转和空间绕轴旋转两部分。对于游戏程序员来说,有了向量的旋转,就代表有了操纵游戏中物体旋转的钥匙,而不论它是一个平面精灵还是一组空间的网格体亦或转载 2013-11-03 00:50:19 · 1234 阅读 · 0 评论 -
向量几何在游戏编程中的使用4
2-D物体间的碰撞响应-Twinsen编写 -本人水平有限,疏忽错误在所难免,还请各位数学高手、编程高手不吝赐教-我的Email-address: popyy@netease.com这次我要分析两个球体之间的碰撞响应,这样我们就可以结合以前的知识来编写一款最基本的2-D台球游戏了,虽然粗糙了点,但却是个很好的开始,对吗?一、初步分析中学时候上物理课能够认真听转载 2013-11-03 00:47:41 · 1147 阅读 · 0 评论 -
3D数学基础No.1
Part 1 最基础的部分: 3D世界中的点和方向多用一个4D向量表示,前三个向量是XYZ,第四个分量是W. 第四个分量的引入有两个作用:一是为了区分向量和点。二是为了进行变换。 W=1表示点,可以平移。 W=0表示向量,平移对其不起作用。因为它只是用来表示方向的。 3D中常用的变换多是用矩阵和向量相乘来实现,和4D向量相乘,所需要的变换矩阵是4×4的形式,可以原创 2013-08-11 08:20:21 · 891 阅读 · 0 评论 -
游戏参考资料
http://www-cs-students.stanford.edu/~amitp/gameprog.htmlAmit’s game programming informationhttp://www.cgda.org/Game developer associationhttp://gpp.netfirms.com/Game ++ mega sitehttp://www原创 2013-08-24 11:39:53 · 993 阅读 · 0 评论 -
OpenGL入门学习
OpenGL入门学习说起编程作图,大概还有很多人想起TC的#include 吧?但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率、16色来做吗?显然是不行的。本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物。OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。1、与C语言紧密结合转载 2013-08-25 21:04:34 · 3816 阅读 · 0 评论 -
模板
/* Demo Name: Template*/#include#include#pragma comment(lib, "d3d9.lib")#pragma comment(lib, "d3dx9.lib")#define WINDOW_CLASS "UGPDX"#define WINDOW_NAME "Template"#define WINDOW原创 2013-08-17 11:23:32 · 817 阅读 · 0 评论 -
创建物体
HRESULT WINAPI D3DXCreateTeapot( LPDIRECTD3DDEVICE9 pDevice, LPD3DXMESH* ppMesh, LPD3DXBUFFER* ppAdjacency ); 如同程序清单3.1所示,pDevice是Direct3D设备对象,ppMesh是一个指向LPD3DXMESH对象的指针,LPD3D原创 2013-08-17 18:06:01 · 1351 阅读 · 0 评论 -
纹理 图像格式
Direct3D支持的图像文件格式有:■ 联合图像专家组(.jpg)■ Windows位图(.bmp)■ 光栅图像文件存储格式(.tga)■ 可移植的网络图像文件格式(.png)■ 直接绘图表面格式(.dds)■ 可移植的像素映射格式(.ppm)■ Windows设备无关位图格式(.dib)■ 高动态范围格式(.hdr)■ 可移植的浮点映射格式(.pfm)原创 2013-08-17 20:02:35 · 1664 阅读 · 0 评论 -
3D 常用公式
3D Program 常用公式 1 两个向量A和B的标量积 (参见第五章): ABABABABxxyyzz 2原创 2013-09-02 11:50:52 · 7403 阅读 · 0 评论 -
游戏常用算法
算法一:A*寻路初探译者序:很久以前就知道了A*算法,但是从未认真读过相关的文章,也没有看过代码,只是脑子里有个模糊的概念。这次决定从头开始,研究一下这个被人推崇备至的简单方法,作为学习人工智能的开始。这篇文章非常知名,国内应该有不少人翻译过它,我没有查找,觉得翻译本身也是对自身英文水平的锻炼。经过努力,终于完成了文档,也明白的A*算法的原理。毫无疑问,作者用形象的描述,简洁诙谐的语言由浅转载 2013-09-11 12:50:51 · 20712 阅读 · 1 评论 -
3d坐标变换
要谈坐标系变换,那么坐标系有哪些呢?依次有:物体坐标系,世界坐标系,相机坐标系,投影坐标系以及屏幕坐标系.我要讨论的就是这些坐标系间的转换。 这些坐标系不是凭空而来,他们都是为了完成计算机3D图形学最最最基本的目标而出现. 计算机3D图形学最最最基本的目标就是:将构建好的3D物体显示在2D屏幕坐标上. 初看好像就是将最初的物体坐标系转换到屏幕坐标系就可以了呀,为转载 2013-09-12 23:11:08 · 1972 阅读 · 0 评论 -
Unity3D占用内存太大的解决方法
Unity3D占用内存太大的解决方法最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化.Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其实两者区别不大。 Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一原创 2013-09-13 14:39:26 · 1943 阅读 · 0 评论 -
向量几何在游戏编程中的使用1
简单的2-D追踪-Twinsen编写-本人水平有限,疏忽错误在所难免,还请各位数学高手、编程高手不吝赐教-我的Email-address: popyy@netease.comAndre Lamothe说:“向量几何是游戏程序员最好的朋友”。一点不假,向量几何在游戏编程中的地位不容忽视,因为在游戏程序员的眼中,显示屏幕就是一个坐标系,运动物体的轨迹就是物体在这个坐标系曲线转载 2013-11-03 00:34:42 · 1342 阅读 · 0 评论 -
向量几何在游戏编程中的使用2
第一次我说了一下向量知识的基础内容和一点使用技巧,浅显的展示了它在游戏编程中的作用。这次深入一些,充分利用向量的性质模仿一个物理现象。首先,我要介绍一下将要使用的两个基本但非常重要的技巧。一、求与某个向量a正交的向量b根据向量内积的性质以及正交向量之间的关系,有:设a=(xa,ya),b=(xb,yb)a.b = 0=> xa*xb + ya*y转载 2013-11-03 00:42:52 · 1381 阅读 · 0 评论 -
向量几何在游戏编程中的使用3
一、使用向量进行障碍检测的原理上次说了使用向量模拟任意角度的反弹,这次谈谈它的前提---障碍碰撞。在游戏中进行障碍碰撞检测,基本思路是这样的:给定一个障碍范围,判断物体在这次移动后会不会进入这个范围,如果会,就发生碰撞,否则不发生碰撞。在实际操作中,是用物体的边界来判断还是其他部位判断完全取决于编程者。这时候,就可以从这个部位沿着速度的方向引出一条速度向量线,判断一下这条线段(从检转载 2013-11-03 00:46:12 · 1063 阅读 · 0 评论 -
渲染流水管线
图形渲染管线的各个阶段到底做了些什么,总是不甚清楚,每次翻书查阅,但是过了一阵遇到还是翻书,这次看Cg教程里写的不错,特地摘下来,以备查阅。 -by shenzi/2010.3.25 3D图形渲染管线 什么是渲染(Rendering) 渲染简单的理解可能可以是这样:就是将三维物体或三维场景的描述转化为一幅二维图像,生成的二维图像能很好的反应三维物体或三维场景(如图1):转载 2014-07-22 01:19:34 · 1629 阅读 · 0 评论