随笔分类 -  3D游戏引擎编程

摘要:摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人”第二章。 图形绘制管线描述GPU渲染流程,即“给定视点、三维物体、光源、照明模式,和纹理等元素,如何绘制一幅二维图像”。本章内容涉及GPU的基 阅读全文
posted @ 2015-12-05 20:32 ☆A希亿 阅读(2086) 评论(0) 推荐(0) 编辑
摘要:alpha to coverage 在游戏中,经常使用带有半透明信息纹理的多边形模型来模拟复杂的物体,例如,草、树叶、铁丝网等。如果使用真正的模型,一颗边缘参差不齐的小草可能就要消耗掉几百个多边形;然而采用透明纹理,可以只用2~3个多边形就解决了。 然而,当使用这种有半透明信息的纹理时候,它的不... 阅读全文
posted @ 2015-09-30 20:05 ☆A希亿 阅读(1149) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.cnblogs.com/TracePlus/p/4037165.html因为,每家芯片的特性不同,根据向framebuffer写法的不同,分为tile-based的mobile cpu,如ImgTecPowerVR,ARM Mali,一部分老版本QualcommAdren... 阅读全文
posted @ 2015-07-06 21:41 ☆A希亿 阅读(544) 评论(0) 推荐(0) 编辑
摘要:转自:http://blog.csdn.net/xoyojank/article/details/5146297最先在这里看到:http://www.gamerendering.com/2008/12/20/radial-blur-filter/这效果在鬼泣4中切换场景时见过, 极品飞车12的运动模... 阅读全文
posted @ 2015-03-30 16:44 ☆A希亿 阅读(7995) 评论(0) 推荐(0) 编辑
摘要:中文列表函数名说明abs计算输入值的绝对值。acos返回输入值反余弦值。all测试非0值。any测试输入值中的任何非零值。asin返回输入值的反正弦值。atan返回输入值的反正切值。atan2返回y/x的反正切值。ceil返回大于或等于输入值的最小整数。clamp把输入值限制在[min, max]范... 阅读全文
posted @ 2015-03-27 11:09 ☆A希亿 阅读(1511) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.cnblogs.com/minggoddess/archive/2012/12/03/2800133.html光照图的理论和实践 这是我翻译的一篇文章,不知道哪年翻译的,没译完。这几天看见了,又拿出来接着翻译。可是还有那么多,不知道那天能弄出来。所以我就先把翻译的贴出来... 阅读全文
posted @ 2015-01-29 16:10 ☆A希亿 阅读(945) 评论(0) 推荐(0) 编辑
摘要:【Pixel-Fillrate】 “填充率“以每秒钟填充的像素点为单位,“三角形(多边形)生成速度“则表示每秒钟三角形(多边形)生成个数。现在的3D显卡的性能也主要看着两项指标,这两项指标的数值越大,显卡三维图像的处理能力就越强,显卡的档次也就越高。 填充率的故事 谈到3D加速卡,最常用的一个... 阅读全文
posted @ 2015-01-25 21:31 ☆A希亿 阅读(3442) 评论(0) 推荐(0) 编辑
摘要:转自:http://blog.csdn.net/christina123y/article/details/5963679在计算机图形学中,只要是变换,无论平移,旋转,缩放,都是乘一个矩阵。在模型视图变换时,顶点乘模型视图变换矩阵,而顶点对应的顶点法线向量(或其他的法线向量)则要乘模型视图矩阵的逆转... 阅读全文
posted @ 2015-01-23 12:52 ☆A希亿 阅读(1351) 评论(0) 推荐(0) 编辑
摘要:一、 1、法线归一化的一个意思是:通过叉乘得到一个面的面法线,然后进行归一化的目的是,求得单位长度的向量,就是说,法线向量的x,y,z都要除以向量长度。因为法线长度和面积成正比,但光照不能随面积变化,所以取一个单位值。当然点法线需要考虑通过该点的所有面的面法线。 2、法线的处理还有一个问题是:人们容... 阅读全文
posted @ 2015-01-23 12:41 ☆A希亿 阅读(2833) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.cnblogs.com/soroman/archive/2008/03/21/1115571.html思考:矩阵及变换,以及矩阵在DirectX和OpenGL中的运用1。矩阵和线性变换:一一对应矩阵是用来表示线性变换的一种工具,它和线性变换之间是一一对应的。考虑线性变换:... 阅读全文
posted @ 2015-01-23 11:00 ☆A希亿 阅读(775) 评论(0) 推荐(0) 编辑
摘要:1.固定渲染管线与可编程渲染管线的区别:1)、固定渲染管线 ——这是标准的几何&光照(T&L)管线,功能是固定的,它控制着世界、视、投影变换及固定光照控制和纹理混合。T&L管线可以被渲染状态控制,矩阵,光照和采制参数。2)、顶点着色器——图形开发人员可以对渲染管线中的顶点运算和像素运算分别进行编程处... 阅读全文
posted @ 2015-01-18 22:20 ☆A希亿 阅读(496) 评论(0) 推荐(0) 编辑
摘要:在自己最近的一个项目中,软件的界面部分使用了NGUI来进行制作。在制作过程中,遇到了一些问题,也获取了一些经验,总结下来,作为日后的积累。 1、NGUI图集的使用。 此次是第一个自己正儿八经的制作完整图集的项目,感受颇深。在使用NGUI制作界面时,图集的选用是一个关键,因为它直接关系到了... 阅读全文
posted @ 2014-11-02 23:25 ☆A希亿 阅读(1327) 评论(0) 推荐(0) 编辑
摘要:重要:在目前市面上常见的游戏引擎中,主要采用以下三种灯光实现方式:顶点照明渲染路径细节Vertex Lit Rendering Path Details正向渲染路径细节Forward Rendering Path Details延迟光照渲染路径的细节Deferred Lighting Renderi... 阅读全文
posted @ 2014-10-17 18:02 ☆A希亿 阅读(20891) 评论(1) 推荐(1) 编辑
摘要:转自:http://blog.csdn.net/tspatial_thunder/article/details/5937701现在的游戏图形部分越来多依靠GPU来渲染绘制。说起GPU先说着色器,着色器是可编程的(programmable),分为顶点着色器和像素着色器。着色器是一段运行在GPU上的程序,可以取代渲染的固定功能流水线中部分功能。在D3d9c可以用固定管道渲染(fixed function pipeline),也可以用可编程的管道(programmablefunction pipeline)渲染。下面大概总结下各自对vertex的绘制流程。看看传统的渲染流程和利用可编程管道渲染的异 阅读全文
posted @ 2014-01-08 21:49 ☆A希亿 阅读(800) 评论(0) 推荐(0) 编辑
摘要:自:http://www.cnblogs.com/zy776/archive/2007/03/21/683065.html计算机图形系统的发展以提供更快的图形数据处理和更真实的视觉效果为目标!基于光栅化(Rasterization)图形管线如图-2所示,图中下部虚线部分数据流向代表固定图形管线。应用... 阅读全文
posted @ 2014-01-08 11:22 ☆A希亿 阅读(332) 评论(0) 推荐(0) 编辑
摘要:脏矩形技术学习 很久以来由于工作上的繁忙没有写新东西了~hoho~ 本文基于2D表现的游戏,在当今3D大行其道的时代,说2D是否显得格格不入?这个问题我不作讨论,因为本人从事的一直都是2D游戏的开发,所以如果你认为讨论2D技术是一个过时的东西就此打住。 废话不多说,下面进入正题。 优化一直是我在程序中追求的东西之一,想想让自己的游戏在一个古董机器能流畅的运行或者说在当今的机器上,CPU占用率和内存占用率都很低的情况。(毕竟我非常讨厌一个游戏独占了我所有的CPU资源)。 如果从图形接口上作优化,常用的就是使用3D加速和CPU的特殊指令(虽然说DirectDraw能够使用2D硬件加速,但大部分机器 阅读全文
posted @ 2013-02-01 18:40 ☆A希亿 阅读(730) 评论(0) 推荐(0) 编辑
摘要:3D模板阴影原理 1:先从3dsMax中导出一个简单的场景,一个园环,球,平面。 2:园环直接面向光源,园环对球体来说是一个光线的阻挡物,园环在它上面形成阴影,同时,园环和球体对平面来说是光线的阻挡物,所以,同时在其上面形成阴影。3: 要产生模板阴影,先要找出在园环和球体上面面向光线的面,去除背向光线的面,通过测试光线同园环和球体上面每一个所组成的小角形的法线的夹角是否小于90度,即光线矢量同法线矢量的点积要大于零。 4:在余下的所有面向光线的面中,把每个面的每条边可以保存到一个Vector中,不过在保存之前,先把该条边同已保存在Vector中的每条边先进行逐一比较,如果,找到的这条边同它的两 阅读全文
posted @ 2012-03-30 19:01 ☆A希亿 阅读(1940) 评论(0) 推荐(0) 编辑
摘要:《Real Time 3D Terrain Engines Using CplusplusAnd DirectX9》(实时地形引擎)随书源码,gaia引擎源码下载:http://ishare.iask.sina.com.cn/f/23556371.html 阅读全文
posted @ 2012-03-17 21:54 ☆A希亿 阅读(1034) 评论(0) 推荐(1) 编辑
摘要:很多玩过飞行射击类游戏的朋友都对跟踪导弹印象深刻,手中有这样一款武器常常能够战无不胜,但是敌人射出的导弹则可能成为玩家的噩梦。其实实现导弹跟踪的方法并不复杂,只需要一些简单的平面解析几何知识就可以做到。算法分析假设导弹旋转角速度为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希亿 阅读(5361) 评论(2) 推荐(2) 编辑
摘要:只是粗略的分析原理,大虾轻喷~~Gaia引擎中没有场景管理器(scenemanager)这种东西,但是并不是没有场景管理,而是在cGameHost类中有一课场景树进行场景组织、一棵四叉树用来进行剪裁。class cGameHost class cGameHost : public CD3DApplication, public cSingleton<cGameHost>{。。。。。。 cSceneNode m_rootNode;//场景树根节点 cCamera m_defaultCamera; cCamera* m_pActi... 阅读全文
posted @ 2012-03-07 03:46 ☆A希亿 阅读(629) 评论(0) 推荐(1) 编辑