Direct3D/OpenGL
文章平均质量分 86
jiexuan357
记录学习的点点滴滴。
闻道有先后,术业有专攻,如是而已。
展开
-
半透明渲染新技术摘录
原文地址:http://www.cnblogs.com/lancidie/archive/2011/08/18/2144797.html转载 2014-11-01 17:47:46 · 782 阅读 · 0 评论 -
DirectX 11 SDK文档(五)
总结 在前面的教程中,我们成功地在应用程序窗口的中央绘制了一个三角形,我们没有吧注意力集中在顶点缓冲区里的坐标信息。在这个教程中,我们将详细描述3D坐标和Transformation。3D空间 在前面的教程中,我们很明智地把三个顶点信息放置在屏幕上。然而,不具有一般性。那么,我们需要一个系统来表示在3D空间中的对象和一个系统将他们显示出来。转载 2012-07-20 20:53:35 · 810 阅读 · 0 评论 -
DirectX 11 SDK文档(六)
总结 在前面的教程中,我们将模型空间中的立方体渲染到屏幕上。在这个教程中,我们将扩展变换的概念,并使用这些变换展示简单的动画。变换 在3D图形学中,变换经常用来操作顶点和向量。也用来将一个对象从一个空间变换到另一个空间。变换能够能够用矩阵进行多种操作。这里有3个典型的原始变换:平移(与原点的位置关系),旋转(与X,Y,Z轴的方向关系),缩放(与原点的距离转载 2012-07-20 20:54:05 · 1241 阅读 · 0 评论 -
DirectX 11 SDK文档(三)
总结 在前面的教程中,我们创建了一个小型的,能够显示单颜色的窗口的Direct3D 11应用程序。在这个教程中,我们将扩展这个应用程序将一个三角形显示在屏幕上,我们将贯穿这个过程来创建关于三角形的数据结构。效果如上图。三角形的元素 一个三角形由三个点组成,也可以叫做顶点。用一个顶点数组来定义一个三角形,为了GPU能够渲染这个三角形,我们必须告诉GPU三角形的三个顶点转载 2012-07-20 20:52:32 · 1122 阅读 · 0 评论 -
DirectX 11 SDK文档(一)
原文地址:http://blog.csdn.net/cmt100/article/details/6343274总结 这是一个初步的教程。我们将通过必要的步骤来创建一个Win32 Application。我们创建一个空白的窗口为DirectX 11做准备。创建窗口 每一个窗口应用程序需要至少一个窗口对象。甚至在开始获得Dire转载 2012-07-20 20:50:25 · 3019 阅读 · 0 评论 -
关于Whisperwind数学库的选择:XnaMath
in Whisperwind(我的开源游戏项目) , by 李素颙in Whisperwind(我的开源游戏项目) , by 李素颙最近又开始愁数学库的问题了,折腾了一天,总算定了下来,大抵上如下:一般的开源引擎或是商业引擎基本上的选择都是自己去写,写一个通用库然后按照自己需要支持的平台去针对性优化,如果实力强悍这种方法当然是最好的,易控转载 2012-07-20 21:20:38 · 950 阅读 · 0 评论 -
DirectX 11 SDK文档(八)
总结 在前面的教程中,我们介绍了光照。现在我们为立方体添加纹理。我们将介绍静态缓存的概念,并解释如何使用缓存以最小的带宽来加快处理。纹理映射 纹理映射是指2D纹理到3D几何模型的投影。我们可以认为它是一种包装。为了完成这项任务,我们不得不确定2D图像跟表面上顶点的关系。 这个立方体比较适合进行纹理坐标的设置。对于复杂的模型,手动地设置纹转载 2012-07-20 20:54:51 · 803 阅读 · 0 评论 -
4、纹理
Copyright © MikeFeng QQ: 76848502 纹理在D3D中是一个非常重要的概念,它的出现改变了以前3D物体表面不真实的状况,为程序员提供了将2维图像应用到3维物体上去的功能。请做好心理准备,因为新的概念将像暴风骤雨般的袭来,而在没有弄懂基本概念之前是不可能进行下一步的学习的。下面是一些术语的大致概念:纹理( Textrue ):将要应用到3维(或者2维转载 2012-07-09 00:32:03 · 466 阅读 · 0 评论 -
四元数旋转公式的证明
四元数旋转公式的证明对于左手坐标系,顺时针旋转有:V’q = Q*Vq*Q*;其中V’q为旋转后的四元数。假设旋转轴单位向量为q,要旋转的向量为v.旋转角度为θ,则四元素有:Vq =0+v=v;Q=cos(θ/2)+sin(θ/2)q;Q*= cos(θ/2)-sin(θ/2)q;带入上面公式有:V’q=(cos(θ/2)+sin(θ/2)q)*(0+v)*(cos转载 2012-07-09 00:22:09 · 1444 阅读 · 0 评论 -
深入探索透视投影变换(续)
-潘宏-2009.4.14-本人水平有限,疏忽错误在所难免,还请各位数学高手、编程高手不吝赐教-email: popyy@netease.com 在上一篇文章中我们讨论了透视投影变换的原理,分析了OpenGL所使用的透视投影矩阵的生成方法。正如我们所说,不同的图形API因为左右手坐标系、行向量列向量矩阵以及变换范围等等的不同导致了矩阵的差异,可以有几十个不同的透视投影矩阵转载 2012-07-09 00:04:37 · 559 阅读 · 0 评论 -
DirectX 11 SDK文档(二)
总结 这是第一个教程,我们将通过必要的元素来创建一个小型的DirectX 11应用程序。每个DirectX 11应用程序必须拥有这些元素得以正常运转。这些元素包括创建一个窗口对象和设备对象,并且能够显示一种颜色的窗口。创建DirectX 11 设备 创建窗口对象和消息循环请参见DirectX 11 SDK文档(一)。现在我们有一个能够显示的窗口,接下来我们转载 2012-07-20 20:51:57 · 745 阅读 · 0 评论 -
DirectX 11 SDK文档(四)
总结 在前面的教程中,我们创建了顶点缓冲区,并且传送了一个三角形的数据给GPU渲染。现在,我们通过graphics pipeline来看看,它每个步骤是怎么工作的。渲染器的概念,对系统的影响将被一一解释。Graphics Pipeline 在前面的教程中,我们创建了顶点缓冲区,并且我们将顶点格式和顶点渲染器联系在一起。现在,我们将解释渲染器是如何工作的。转载 2012-07-20 20:53:00 · 970 阅读 · 0 评论 -
DirectX 11 SDK文档(七)
总结 在前面的教程中,这个世界看起来令人厌烦,因为所有的对象以同一种方式显示。在这个教程将介绍简单的光照概念,并介绍如何去应用它。这个技术是方向光。光照 在这个教程中,将介绍最基础的光照类型是方向光。方向光不论对象跟光源的距离,都受到统一的关照。当光照到一个表面时,光照的发射计算这个表面和光线的夹角大小。当光线直接照射到表面时,表面会将所有的光反射回去,转载 2012-07-20 20:54:26 · 669 阅读 · 0 评论 -
游戏中常用的模型勾边
原帖地址:http://www.cnblogs.com/hellohuan/p/3670666.html转载 2014-04-23 09:07:47 · 1237 阅读 · 0 评论 -
《OpenGLES 2.0 Programming Guide》学习笔记
原帖地址:http://blog.csdn.net/n5/article/details/72423061 介绍OpenGLESgles由KhronosGroup创立,目前有3个版本1.0,1.1(统称1.x)和2.0。ES1.0,1.1由OpenGL1.3,1.5继承而来,ES2.0由OpenGL2.0继承而来。OpenGLES 2.0的specifications有转载 2014-03-23 21:11:38 · 665 阅读 · 0 评论 -
高效真实的云渲染算法
原文地址:http://www.cnblogs.com/effulgent/archive/2008/10/06/1305029.html原文:Realistic and Fast Cloud RenderingNinianeWangMicrosoftCorporation(nowatGoogleInc.)niniane@ofb.netNovember11,20转载 2013-12-09 11:27:09 · 952 阅读 · 0 评论 -
D3D的视矩阵是如何构造的
原帖地址:http://blog.csdn.net/ysbcg/article/details/2163770可以看到 D3DXMatrixLookAtLH 的说明中是用如下的说明来解释如何构造这个矩阵的zaxis = normal(At - Eye)xaxis = normal(cross(Up, zaxis))yaxis = cross(zaxis, xax转载 2013-05-10 09:01:51 · 572 阅读 · 0 评论 -
3D API中,字体绘制的Batch优化
原文地址:http://blog.csdn.net/nhsoft/article/details/7788547在3D引擎中绘制字符是很恶心的事情。一个个绘制吧又太慢。组成一个大mesh吧。又太耗引擎的人品。而且还是得lock/unlock vb。才绘制了一百多个字。 fps从600掉到80多。经过跟别人的讨论。pos之类的数据用shader constant来传递会效转载 2012-12-03 13:30:38 · 414 阅读 · 0 评论 -
投影矩阵的推导
译者微博链接http://hi.baidu.com/twjblog/item/cbbcf213c4b5c0f5ddeeca2c本文乃译文,原文地址为http://www.codeguru.com/cpp/misc/misc/math/article.php/c10123__1/Deriving-Projection-Matrices.htm,由于本人能力有限,有译的不明白的地方转载 2012-10-25 14:25:19 · 1057 阅读 · 0 评论 -
d3d多渲染窗口结构
使用d3d的交换链可以方便的实现多渲染窗口结构,类的层次结构如下图所示:D3DRes用来定义dx设备丢失的处理,所有需要关心设备丢失的资源都从此类继承,然后重写设备丢失回调函数和设备重置回调函数即可方便的处理设备丢失。RenderTarget用来定义基本的渲染目标,成员包括长宽及大小的定义,及渲染目标的虚接口定义(比如:缓冲区切换等)。Win32Window封装win32接转载 2012-10-22 21:23:13 · 656 阅读 · 0 评论 -
Direct3D9 中的Gamma矫正
纹理内容常常是存在sRGB格式中的。关于这个格式的细节是可以被找到的。通常,像素管线假定颜色是线性的以便融合(blending)操作可以在线性空间中进行。因为sRGB中的内容是Gamma较正,所以融合操作在线性空间中处理会导致错误的结果。显卡在读到有关sRGB内容的时候便会取消Gamma较正以避免错误的发生。然后当输出像素的时候再将像素信息写回sRGB格式中。在这种情况下,所有像素管线中的操作就可转载 2012-10-16 14:26:35 · 830 阅读 · 0 评论 -
GLSL/HLSL易犯错误和注意点
渲染API容易出错,根源于其本质是个状态机,作一个渲染时,几十上百个状态都必须设置正确,才能得到正确的图像,这就很容易出点小差错.1.GLSL的vec4有3种分量形式xyzw/rgba/stpq, 注意到的r分量是指颜色r分量, 习惯上的纹理坐标分量strq的r由于和颜色r冲突,改作p.2.Global Amibient也要乘以材质Material.3.HLSL没有shadow转载 2012-08-30 01:28:10 · 1017 阅读 · 0 评论 -
物体绕任意向量的旋转——四元数法、旋转矩阵法、欧拉角法的比较
3D空间中的旋转可用旋转矩阵、欧拉角或四元数等形式来表示,他们不过都是数学工具,其中在绕任意向量的旋转方面,旋转矩阵和四元数两种工具用的较多,欧拉角由于存在万向节死锁等问题,使用存在限制。(本文假设坐标系为左手坐标系中,旋转方向为顺时针。)所求问题:给定任意单位轴q(q1,q2,q3)(向量),求向量p(x,y,z)(或点p)饶q旋转theta角度的变换后的新向量p'(或点转载 2012-07-09 00:18:17 · 5443 阅读 · 0 评论 -
面向GPU的多LOD因子的大规模场景可视化策略
面向GPU的多LOD因子的大规模场景可视化策略张嘉华 梁成 陈利强 陈春华newzjh@msn.com aliceliang@163.net sailmer@hotmail.com musalan@msn.com华南理工大学计算机科学与工程学院(510640)图 1. 多LOD因子控制的大规模地形渲染(C1=1.03,C2=19.55,C3=0.868 下山转载 2012-06-26 23:22:53 · 1201 阅读 · 0 评论 -
四元数旋转
http://caterpillar.onlyfun.net/Gossip/ComputerGraphics/QuaternionsRotate.htm在討論「四元數」之前,我們來想想對三維直角座標而言,在物體旋轉會有何影響,可以擴充三維直角座標系統的旋轉為三角度系統(Three-angle system),在Game Programming Gems中有提供這麼一段:Quat转载 2012-07-09 00:16:55 · 750 阅读 · 0 评论 -
向量几何在游戏编程中的使用6
3-D空间中的基变换与坐标变换-Twinsen编写-本人水平有限,疏忽错误在所难免,还请各位数学高手、编程高手不吝赐教-我的Email-address: popyy@netease.com一、空间坐标系的基和基矩阵在3-D空间中,我们用空间坐标系来规范物体的位置,空间坐标系由3个相互垂直的坐标轴组成,我们就把它们作为我们观察3-D空间的基础,空间中物体的位置可以转载 2012-07-09 00:12:04 · 670 阅读 · 0 评论 -
深入探索透视投影变换
深入探索透视投影变换-Twinsen编写-本人水平有限,疏忽错误在所难免,还请各位数学高手、编程高手不吝赐教-email: popyy@netease.com 透视投影是3D固定流水线的重要组成部分,是将相机空间中的点从视锥体(frustum)变换到规则观察体(Canonical View Volume)中,待裁剪完毕后进行透视除法的行为。在算法中它是通过透视矩阵乘法和转载 2012-07-09 00:07:43 · 636 阅读 · 0 评论 -
推导相机变换矩阵
-潘宏-2009.12.31-本人水平有限,疏忽错误在所难免,还请各位数学高手、编程高手不吝赐教-email: popyy@netease.com 一些网友写信给我希望能够了解固定流水线中世界空间到相机空间变换矩阵的具体推导过程。其实之前我在《向量几何在游戏编程中的使用6》中已经简单的把相机变换作为一个使用基理论的例子进行了说明,但可能仍然不够具体。这篇文章中,我会尽力阐述相机转载 2012-07-09 00:05:27 · 593 阅读 · 0 评论 -
Quaternion(四元数)和旋转
Quaternion 的定义四元数一般定义如下: q=w+xi+yj+zk其中 w,x,y,z是实数。同时,有: i*i=-1 j*j=-1 k*k=-1四元数也可以表示为: q=[w,v]其中v=(x,y,z)是矢量,w是标量,虽然v是矢量,但不能简单的理解为3D空间的矢量,它是4维空间中的的矢量,也是非常转载 2012-07-08 03:10:02 · 1346 阅读 · 0 评论 -
计算三角形网格的tangent space
转自:http://absolute.iteye.com/blog/213872又一篇学习笔记,参考Mathematics for 3D Game Programming and Computer Graphics和ShaderX4上一篇关于tangent space计算的文章写的东西。对于计算时需要分裂顶点的内容看的还不是太清楚-_-b。另外,目前的算法还不能完美处理镜像或者在纹理不连续转载 2012-06-25 20:34:26 · 472 阅读 · 0 评论 -
游戏程序中的骨骼插件
文/潘李亮引言 在3D引擎中,骨骼动画系统是非常重要的一个组成部分,虽然在一个游戏的真正开发过程中,一个优秀的游戏引擎也许不需要用户去关心它的骨骼动画系统是如何实现的,但是还是有很多人希望了解这样的一个技术。本文将会介绍骨骼动画系统里的一个基础部件:3Ds MAX 的骨骼动画导出插件。3Ds Max SDK和插件系统最新版本MAX9的MAXSDK包含在安装转载 2012-06-25 11:47:19 · 451 阅读 · 0 评论 -
一起学习Shadow mapping
原文链接:http://www.cnblogs.com/cxrs/archive/2009/10/17/1585038.html1、什么是Shadow Maping? Shadow Mapping是由Lance Williams于1978年在一篇名为"Casting curved shadows on curved surfaces"的文章中提出的,这篇文章是ShadowMap技转载 2012-06-25 12:08:59 · 345 阅读 · 0 评论 -
3DSMax8.0SDK在VS2005下运行
看了好几天Max导出插件,实在是找不到自己想要的东西,没办法,昨天下了一个完整Max8,想看看完整SDK里的例子。但是发现这些东西在VS2005下居然运行不起来。郁闷。上网百度,发现有位仁兄也遇到这类问题并已经完美解决了。在这里先行谢过并保存之以备后用。到了解决方法,具体步骤如下:1.进入..\3DSMax8SDK\howto\3dsmaxPluginWizard。2.以文转载 2012-06-25 02:03:24 · 361 阅读 · 0 评论 -
1、框架
Copyright © MikeFeng QQ: 76848502 友情提醒:所谓的框架是指SDK目录下\Samples\C++\Common路径下的DXUT系列函数包装。学习框架的前提是必须有足够的Windows API,GUI编程经验,必须熟悉Windows的消息机制,回调机制,最好有万行左右的C/C++编程经验。MFC在这里没有任何用处。另外我觉得最好在看程序之前对于D3D的所有转载 2012-07-09 00:29:55 · 395 阅读 · 0 评论 -
2、顶点缓冲
Copyright © MikeFeng QQ: 76848502 D3D9以一种比较易于理解的方式让程序员来组织游戏画面,这种方式就是顶点缓冲。程序员可以自己定义一组记录多边形定点颜色,纹理位置等的数组,让D3D9去自动生成多边形内部每个像素的信息。为了和以后的vertex shader相区别,我们现在谈论的都是固定功能的顶点处理( Fixed-Function )。 上面转载 2012-07-09 00:30:26 · 475 阅读 · 0 评论 -
3、索引缓冲
索引缓冲Index Buffer是由用户定义的,用来告诉D3D渲染顶点顺序的WORD或者DWORD数组。索引缓冲离不开顶点缓冲,但是顶点缓冲却不一定需要索引缓冲。创建索引缓冲的过程和创建顶点缓冲类似,首先是声明,然后在OnCreateDevice中初始化和创建,在OnFrameRender中渲染,在OnDestroyDevice中销毁。相关代码如下:声明:LPDIREC转载 2012-07-09 00:31:06 · 494 阅读 · 0 评论 -
DXUT 设计指南
DXUT设计指南 DXUT是一个建立在Direct3D API之上的,被大部分Direct3D指南和例子所使用的层。它的目标是创建Direct3D例子、原型、工具,更容易的建立坚固、专业的游戏。DXUT概观初始化DXUT使用基于DXUT的程序窗口使用DXUT设备使用DXUT主循环处理DXUT的错误DXUT高级设备选择DXUT高级功能转载 2012-07-09 00:35:29 · 683 阅读 · 0 评论 -
7、多重纹理和纹理混合
Copyright © MikeFeng QQ: 76848502 多重纹理MultiTexture:使用多张纹理来渲染一个场景,只调用一次(DrawPrimitive) 纹理混合TextureBlending:按要求混合在同一个位置的像素点上色彩或透明度 在多重纹理(multitexturing)出现之前,DirectX支持的是多次渲染(multipass转载 2012-07-09 00:33:46 · 1055 阅读 · 0 评论 -
6、光照和材质
Copyright © MikeFeng QQ: 76848502 D3D支持三种光:环境光(Ambient Light),漫反射(Diffuse Light)和镜面反射(Specular Light)。镜面反射需要更多计算,因此D3D默认关闭镜面反射。可以通过给SetRenderState传D3DRS_AMBIENT来设置环境光。 在现实世界中,我们看到一个红色的物转载 2012-07-09 00:32:58 · 1320 阅读 · 0 评论 -
推导正交投影变换
-潘宏-2009.4.20 -本人水平有限,疏忽错误在所难免,还请各位数学高手、编程高手不吝赐教-email: popyy@netease.com 之前我们在《深入探索透视投影变换》以及《深入探索透视投影变换(续)》中研究了OpenGL、D3D以及M3G的透视投影变换的原理以及生成方法。这些方法在当前的主流图形API中得到了普遍使用。但关于投影应用,还有一类经常使用的投转载 2012-07-09 00:00:38 · 903 阅读 · 0 评论