
图形学
luyuncsd123
这个作者很懒,什么都没留下…
展开
-
相机变换矩阵
一些网友写信给我希望能够了解固定流水线中世界空间到相机空间变换矩阵的具体推导过程。其实之前我在《向量几何在游戏编程中的使用6》中已经简单的把相机变换作为一个使用基理论的例子进行了说明,但可能仍然不够具体。这篇文章中,我会尽力阐述相机变换的整个来龙去脉。希望能够对正在学习固定流水线的朋友们有所帮助。这里我们仍然会在推导相机变换之前介绍几个理论知识,目的是为了更好的理解推导过程。我们马上开始!什么转载 2013-11-03 01:01:52 · 2176 阅读 · 1 评论 -
[Shader 着色器] 学习前了解知识
引言 shader到底是干什么用的?shader的工作原理是什么? 其实当我们对这个问题还很懵懂的时候,就已经开始急不可耐的要四处搜寻有关shader的资料,恨不得立刻上手写一个出来。但看了一些资料甚至看了不少cg的语法之后,我们还是很迷茫,UNITY_MATRIX_MVP到底是个什么矩阵?它和v.vertex相乘出来的又是什么玩意?当这些问题困扰我们很久之后,我们才发现,原来我们是站在浮转载 2013-10-29 21:14:27 · 11152 阅读 · 0 评论 -
渲染管线
关于渲染管线将什么呢?无非就是在OpenGL的管道当中各个部分的功能以及如何在管道当中形成了我们想要的最终的一幅图.(像素).而管线当中的操作可分为以下几个部分: 阶段1. 指定几何对象. 如:点 线 三角形.等一些几何图元..OpenGL绘制几何图元的方法有以下三种: 一次一个顶点.即使用glBegin() glVertex() glEnd() 指定几何对转载 2013-09-04 17:19:21 · 1621 阅读 · 0 评论 -
一般方程与参数方程求直线交点
一般方程与参数方程求直线交点一、 一个例子:如上图,有两条直线,设L1,L2。L1上有两点(0, 0)、(10,10),L2上有两点(0,10)、(10,0),它们的交点是(5,5)。求解交点有两种效率较高的常用方法,一般方程法与参数方程法,以下将分别描述其原理及实现。二、 一般方程法:直线的一般方程为转载 2013-11-23 11:44:52 · 6796 阅读 · 0 评论 -
官网转的 3D
3D图象算法3D简介 我们首先从坐标系统开始。你也许知道在2D里我们经常使用Ren?笛卡儿坐标系统在平面上来识别点。我们使用二维(X,Y):X表示水平轴坐标,Y表示纵轴坐标。在3维坐标系,我们增加了Z,一般用它来表示深度。所以为表示三维坐标系的一个点,我们用三个参数(X,Y,Z)。这里有不同的笛卡儿转载 2013-11-23 12:43:33 · 1259 阅读 · 0 评论 -
mac 下使用Eclipse使用OpenCV
1. 建立一个Mac C++工程,包含一个cpp文件。2. 右击工程名, 选择“Properties”,在属性配置页中选择,点击C/C++ Build, 在下拉选项中选择 Settings. 在右边的选项卡中选择 Tool Settings。3. 在GCC C++ Compiler选项列表中选择Includes,在Include paths(-l)中添加安装好的opencv的头文件转载 2013-12-31 15:13:43 · 2986 阅读 · 0 评论 -
Unity3D研究院之主角面朝方向一定区域内对象角度计算(四十五)
Unity3D研究院之主角面朝方向一定区域内对象角度计算(四十五) ... ...2013-3-4 13:30| 发布者: chino| 查看: 1263| 评论: 1|原作者: MOMO摘要: 写在前面的话,前两天有个朋友在QQ上问我 如何获取主角面朝方向一定区域中的敌人对象。这个命题看似简单,其实里面蕴含了很多数学方面的东西。今天刚好有时间我就彻底的把这个疑转载 2013-12-20 13:44:30 · 2176 阅读 · 0 评论 -
在Mac OS X 用C++编写OpenGL程序
Mac OS X中自带的OpenGL库和GLUT库,我们在编译自己的C++代码的时候,只需要将这两个框架加入进去就好。命令的形式编译如下:[cpp] view plaincopyg++ -framework OpenGL -framework GLUT -o TestPrj main.cpp 那么上面的命令怎样在编译转载 2014-01-08 09:47:35 · 4929 阅读 · 1 评论 -
gl中的重要函数
一.初始化void glutInit(int* argc, char** argv)这个函数用来初始化GLUT库。对应main函数的形式应是:int main(int argc, char* argv[]);这个函数从main函数获取其两个参数。void glutInitWindowSize(int width, int height);void glutInitWin转载 2014-03-02 15:03:13 · 1488 阅读 · 0 评论 -
坐标变换 及矩阵变换
为了对一个点进行变换(平移、伸缩、旋转等),可以用一个4 × 4 的的变换矩阵来表示,如最常见的是使用一个模型视图变换矩阵,来变换点、线、多边形以及其它几何体,也可以变换多边形表面的切向量。变换思路如下:设置一个4 × 4 的矩阵中元素的值,使其表示某一具体的变换。然后将某一点的坐标或者某一向量的分量放入一个1 × 4 的行向量v中。乘积vX就生成了经过变换的向量v˜,例如,如果X表示转载 2013-10-31 11:32:02 · 20429 阅读 · 0 评论 -
XNA Billboard(公告板技术)
XNA Billboard(公告板技术) 公告板技术是3D游戏中用的非常多的一种技术,主要是用于控制场景中的Texture的方向,让他始终以一定的角度对着我们的镜头(一般是垂直于镜头)。如我们在3D游戏中看到的怪物的蓝、红和怪物名字、一些花草树木等,无论我们在哪个方向看它总是对着我们。如下图所示: 12转载 2014-03-20 09:58:15 · 1484 阅读 · 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 评论 -
图形设备与系统
图形显示设备 图形输出包括图形的显示和图形的绘制,图形显示指的是在屏幕上输出图形 图形绘制通常指把图形画在纸上,也称硬拷贝,打印机和绘图仪是两种最常用的硬拷贝设备。阴极射线管 CRT Cathode Ray Tube 由于荧光物质在高速电子的轰击下会发生电子跃迁,即电子吸收到能量从低能态变为高能态。由于高能态很不稳定,在很短的时间原创 2013-08-22 08:48:42 · 1143 阅读 · 0 评论 -
帧缓冲器:分页
帧缓冲器 帧缓冲器的容量往往设计得比屏幕画面的位图大得多,也就是说,帧缓冲器可以同时存放多幅画面的位图,这时帧缓冲器区域可分成若干页面,每个页面存放一幅位图,并通过控制器就实现不同画面的切换。页面的大小可以划分得比屏幕位图大得多,甚至是整个帧缓冲器,这时,从程序员的角度来看,可输出显示的画面将远大于实际的物理屏幕,此时物理屏幕仅是一个窗口,它显示的不过是全部原创 2013-08-22 10:02:25 · 1919 阅读 · 0 评论 -
投影
投影变换:把三维物体变为二维图形表示的过程称为投影变换。如何产生真实感图形?何谓真实感图形逼真的示意的人们观察现实世界产生的真实感来源于空间位置关系----近大远小的透视关系和遮挡关系光线传播引起的物体表面颜色的自然分布解决方法----建立光照明模型、开发真实感图形绘制方法。三维物体研究1、投影 2、三维形体表示 3、消除隐藏面和隐藏线 4、建立光照原创 2013-08-23 18:07:59 · 653 阅读 · 0 评论 -
裁剪、反走样
裁剪 裁剪:确定图形中哪些部分落在显示区之内,哪些落在显示区之外,以便只显示落在显示区内的那部分图形。这个选择过程称为裁剪。 图形裁剪算法,直接影响图形系统的效率。点的裁剪 假设窗口的左下角坐标为(xL,yB),右上角坐标为(xR,yT),对于给定点P(x,y),则P点在窗口内的条件是要满足下列不等式: xL 直线的裁剪直线段裁剪算法是复杂图形裁剪的基础。原创 2013-08-23 14:15:33 · 961 阅读 · 0 评论 -
图形变换
交换的数学基础 矩阵乘法的结合律及分配律 A(B ·C) = (A ·B)C (A+B) · C = A · C+ B · C C ·(A+B) = C ·A + C · B 矩阵的乘法不适合交换律齐次坐标所谓齐次坐标表示法就是由n+1维向量表示一个n维向量。如n维向量(P1,P2, … ,Pn)表示为(hP1,hP2,hPn,h)原创 2013-08-23 15:11:47 · 928 阅读 · 0 评论 -
GL入门
头文件#include #include #include 库文件:opengl.lib, glaux.lib, glu32.lib支持类型(系统之间兼容)GLfloat, GLint, GLenum, etc.原创 2013-08-25 20:15:29 · 1108 阅读 · 0 评论 -
OpenGL入门学习
OpenGL入门学习说起编程作图,大概还有很多人想起TC的#include 吧?但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率、16色来做吗?显然是不行的。本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物。OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。1、与C语言紧密结合转载 2013-08-25 21:04:34 · 3816 阅读 · 0 评论 -
3D 常用公式
3D Program 常用公式 1 两个向量A和B的标量积 (参见第五章): ABABABABxxyyzz 2原创 2013-09-02 11:50:52 · 7403 阅读 · 0 评论 -
OpenGL的计算机图形学
一、Gobal VS Local Lighting局部光照(Local illumation) 简单说就是只考虑光源到模型表面的照射效果。特点:速度快,真实度欠佳。全局光照(Global illumination) 简单的说就是考虑到环境中所有表面和光源相互作用的照射效果。特点:速度慢,真实度高。相关课件截图:二、Ray Tr转载 2013-10-22 22:45:59 · 5967 阅读 · 1 评论 -
向量几何在游戏编程中的使用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 评论 -
图形学导读
图形学目录原创 2013-08-21 22:52:41 · 1058 阅读 · 0 评论