随笔分类 -  D3D

摘要:混合模式可以将两个图层的色彩值紧密结合在一起,从而创造出大量的效果。在这些效果的背后实际是一些简单的数学公式在起作用。下面我将介绍photoshop cs2中所有混合模式的数学计算公式。另外还介绍了不透明度。下面所介绍的公式仅适用于RGB图像。对于Lab颜色图像而言,这些公式将不再适用。Opacit... 阅读全文
posted @ 2014-04-14 10:53 小 楼 一 夜 听 春 雨 阅读(8882) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/graphics/archive/2012/07/12/2476413.html什么是View Transform我们可以用照相机的原理来阐释3D图形的绘制过程,想象一下,我们在摄影的时候都需要做哪些工作,大致可分为如下几个步骤摆放好待拍摄的物品,或者人物。调整好拍摄角度。调整焦距。拍摄。好了,来分析一下,上面的第一步就相当于世界变换了,将一个模型置于一个公认的坐标系中,这里所谓的公认,也就是大家都遵守的,目的是保证待拍摄的物体和照相机在同一个坐标系。第二步相当于视图变换,这个过程是调整Camera到合适的位置以便拍摄,在3D程序中,也就是设置Vi 阅读全文
posted @ 2014-01-20 20:26 小 楼 一 夜 听 春 雨 阅读(1019) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/cxrs/archive/2009/10/17/1585038.html1、什么是Shadow Maping? Shadow Mapping是由LanceWilliams于1978年在一篇名为"Castingcurvedshadowsoncurvedsurfaces"的文章中提出的,这篇文章是ShadowMap技术之根源。其实原理很简单,如果光源和目标点之间的连线没有任何物体阻挡的话,则目标点没有在阴影中;如果有物体遮挡,则目标点处在阴影中。而ShadowMap,就是一张记录了每个象素处用于比较遮挡关系信息的Texture.产生 阅读全文
posted @ 2013-12-21 18:02 小 楼 一 夜 听 春 雨 阅读(517) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/huazai434/article/details/5650146一,法线贴图实际上是一张纹理图,但纹理中存储的并不是颜色值,而是法向量坐标。这项技术的主要目的是实现物体表面的粗糙细节。二,法向量在纹理中的存储形式。对于24位纹理格式,r g b 三个元素中分别存储了法向量的三个坐标值。然而,法向量三个坐标值 的取值范围均为(-1.1),而纹理格式中rgb分量的范围是(0,255),因此我们必须做相应的变换。变换方程如下:f(x)=(0.5x+0.5)*255当我们从纹理文件中读取纹素值后,我们便需要将其从(0,255)转换成(-1,1)。由于tex2 阅读全文
posted @ 2013-11-21 17:31 小 楼 一 夜 听 春 雨 阅读(861) 评论(0) 推荐(0) 编辑
摘要:我在学习D3D的深度测试和Alpha混合的时候,有一些遗憾。书上提供的例子里说一定要先渲染不透明物体,再渲染透明物体,对渲染状态的设置也有特殊要求。我看的很晕。自己查图形学的书,上网找资料,结果还是糊里糊涂。在和一个正在做游戏开发的大学同学的一点点的讨论中,我慢慢理解了深度测试和Alpha混合的关系,也就是为什么要那样设置渲染状态,为什么对渲染顺序有特殊要求。在继续看之前,我推荐您看一下这个链接里的内容http://www.cnblogs.com/cocoaleaves/archive/2009/04/19/1438978.html,其中讲了一些理论知识,但是不够精细。所以我做了下面的补充。我 阅读全文
posted @ 2013-11-20 17:42 小 楼 一 夜 听 春 雨 阅读(2740) 评论(0) 推荐(0) 编辑
摘要:重要注释——矩阵的顺序:有一件事需要牢记,HLSL允许你使用2种不同方式处理矩阵和向量相乘——mul(v,m)或者mul(m,v)。二者之间唯一的区别就是矩阵被有效地变换。在OGRE中传递矩阵你应该使用mul(m,v)——因为这与渲染器从像RenderMonkey一样的工具中生成的结果保持一致,并且也和Cg一致,但是与使用mul(v,m)的Dx9 SDK和FX合成器不一致——在使用那些渲染器时,你不得不转换mul()的参数。注意,如果你在渲染器中使用了float3x4 / matrix3x4类型,且绑定了OGRE自动定义(例如骨骼矩阵),那么你在程序定义时或许需要使用column_major_ 阅读全文
posted @ 2013-11-15 11:43 小 楼 一 夜 听 春 雨 阅读(1102) 评论(0) 推荐(0) 编辑
摘要:像素和纹素,都是点,像素是左上角第一个像素为中心开始计算;纹素,以左上角的点为中心开始计算的;存取纹理时,D3D的像素中心不在纹理点的中心,所以要偏半个像素,也就是:纹理坐标U = u +0.5 * (1 / screenSize.x); V = v + 0.5 * (1 / screentSize.y) ;参考:http://www.cnblogs.com/ttthink/archive/2009/10/13/1582588.htmlhttp://www.opengpu.org/bbs/forum.php?mod=viewthread&tid=2912http://www.25k5. 阅读全文
posted @ 2013-11-13 17:55 小 楼 一 夜 听 春 雨 阅读(1412) 评论(0) 推荐(0) 编辑
摘要:Sets whether or not this pass renders with depth-buffer writing on or not.Format: depth_write If depth-buffer writing is on, whenever a pixel is written to the frame buffer the depth buffer is updated with the depth value of that new pixel, thus affecting future rendering operations if future pixels 阅读全文
posted @ 2013-11-12 14:57 小 楼 一 夜 听 春 雨 阅读(485) 评论(0) 推荐(0) 编辑
摘要:使用Z-偏移量 在一个三维场景中,我们可以对共面的多边形使用z-偏移量来使它们不再共面。这项技术通常用于在场景中正确的显示阴影。例如,一堵墙上的阴影与这堵墙的深度值是相同的,如果我们先渲染了墙再来渲染阴影,那么阴影就有可能看不到,或者会出现一些深度上的失真。这时,我们可以颠倒渲染的顺序希望能使得到的效果也产生相应的颠倒,但是深度上的失真仍然无法避免。 在渲染共面的多边形时,我们可以给z值增加一些偏移量,这样就能正确的显示共面的多边形了。要给多边形增加一个z-偏移量,我们可以在渲染前调用IDirect3DDevice3::SetRenderState方法,并将dwRenderStateTyp.. 阅读全文
posted @ 2013-11-12 14:49 小 楼 一 夜 听 春 雨 阅读(468) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/xoyojank/article/details/4352090选人界面的角色出现时的效果非常酷, 一直不知道咋做的还是中speedtree在镜头前时的消隐也是这种溶解效果, 跟的圆形透明消隐差不多, 但是这种方法不用alphablend, 效率高些. (当时我形容是被虫子啃了...这机器上没装, 不截图了)最近研究ShadowMap的Alpha穿透, 用到了clip()函数, 恍然大悟, 原来如此啊~clip (DirectX HLSL)Discards the current pixel if the specified value is less 阅读全文
posted @ 2013-11-09 17:32 小 楼 一 夜 听 春 雨 阅读(416) 评论(0) 推荐(0) 编辑
摘要:一) 有效的性能评测 对于任何一个3D应用程序来说,追求场景画面真实感是一个无止尽的目标,其结果就是让我们的场景越来越复杂,模型更加精细,这必然给图形硬件带来极大的负荷以致于无法达到实时绘制帧率。因此,渲染优化是必不可少的。在渲染优化之前,我们需要对应用程序性能进行系统的评测,找出瓶颈,对症下药。对于3D应用程序来说,影响性能的十分多,同时不同的硬件配置条件下,瓶径也会有所不同。因此,对应用程序进行有效的性能评测,不仅需要对整个渲染管线原理有深入地了解,此外借助一些评测工具能让我们的工作事倍功半。 我们知道渲染流水线的速度是由最慢的阶段决... 阅读全文
posted @ 2013-11-09 15:10 小 楼 一 夜 听 春 雨 阅读(1249) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/xoyojank/article/details/2028898热浪扭曲•每个人都对自然界中的这种大气效果很熟悉•光线在穿过不同密度的介质时会弯曲热微光•热空气密度比冷空气小•密度影响介质的折射率•热空气上升的同时会被冷空气替代, 这会改变光射入眼睛的路线•渲染场景到RGBA离屏缓存(可渲染的纹理)•颜色写入RGB值•扭曲度写入Alpha通道•绘制全屏长方形到后备缓冲区•对离屏缓冲采样以获得扭曲度•用扰动贴图来确定扰动向量, 用扭曲度放缩后偏移原始纹理坐标•基于扰动纹理坐标的可增长泊松分布(根据扭曲度来进行偏移)扭曲度•逐像素判断当前像素被扭曲的程度• 阅读全文
posted @ 2013-11-07 20:40 小 楼 一 夜 听 春 雨 阅读(825) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/ixnehc/articles/1282350.html先从最基础的写起吧,关于Device的渲染流程.D3D9的Device就是D3D给我们提供的一个绘制3D图形的工具,它的绘制流程大致是这样的:*.首先Device的使用者要准备好顶点数据,也就是一个顶点的数组,称为A*.然后这个数组A被传入device的渲染管线*.device内部依次对每个顶点进行处理,有两种模式,固定管线和shader模式,所谓固定管线就是device内部实现的一个固定的程 序,用户只能通过设定各种参数(一些RenderState)来控制它,当然这不够灵活,所以有了shad 阅读全文
posted @ 2013-11-06 22:44 小 楼 一 夜 听 春 雨 阅读(1545) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.zwqxin.com/archives/shaderglsl/review-normal-map-bump-map.htmlNormal Map法线贴图,想必每个学习计算机图形学的人都不陌生。今天在这里按我的理解总结一下,作为复习,也作为深入学习吧。——ZwqXin.com自从看完那本《数学在计算机图形学上的应用》后,一直想好好地真正实践一次法线贴图/凹凸贴图呢(以前是根据橙书弄了一下罢了)。昨天偶尔看到篇涉及BumpMap的文,正好觉得是个机会,便在网上狂找相关资料——果然,越看越觉得自己还有很多理论的地方需要弄明白呢。说起Normal Map(法线贴图),就会想 阅读全文
posted @ 2013-11-04 16:13 小 楼 一 夜 听 春 雨 阅读(945) 评论(0) 推荐(0) 编辑
摘要:什么是法线贴图技术呢?这是一种用来实现3D效果的一种技术,要想理解这种技术还请您听我慢慢道来。 我们知道,在游戏中经常会有这样的情况,就是一个平面——这个平面在现实中并不是一 个“平”面,例如砖墙的表面带有石质浮雕等等。这样的情况如果要求游戏开发人员将复杂的3D细节都做出来是不现实的,因为即使不计较在建模时候的复杂度, 过多的3D细节也同样会大量消耗显示芯片的性能,让游戏根本没有可玩性。如何利用贴图实现凹凸效果呢? 可行的方法就是将这个平面用一个贴图覆盖,用贴图的纹理实现一定的凹凸效果。但是这种方法实现的效果并不是很好,因为如果视角一变化,看起来就会像一张简单的画有图案的平面了。 后来... 阅读全文
posted @ 2013-11-04 16:04 小 楼 一 夜 听 春 雨 阅读(659) 评论(0) 推荐(0) 编辑
摘要:cube maptexture可以理解为6个面的纸盒, sample的时候使用vector射线型的sample.volume texture可以理解是一摞2D texture,sample的时候用第几摞+2D坐标来sample.虽然都是非2D,sample都用3维数据,差异大啊.CubeMap 在实时渲染中应用十分广泛. 通过视线和法线计算出的反射光线来查询CubeMap可以创建一个真实的反射镜面体, 通过视线和法线计算出的折射光线来查询CubeMap可以创建一个透明体. 由于查询速度快的原因,在实时的CG渲染中应用十分的广泛.我们的CubeMap大都是从外部的图片得来的, 图片是不可以变化的 阅读全文
posted @ 2013-10-30 21:23 小 楼 一 夜 听 春 雨 阅读(1174) 评论(0) 推荐(0) 编辑
摘要:我常常这么大胆的认为,搞科学的人总是喜欢用各种让常人难以理解的复杂方式去处理某些其实可能很简单的事情,这种情况在他自身擅长的、有着诸多对手竞争的领域上极为常见。比如吧,搞DirectX的人用了左手坐标系,搞OpenGL的人偏偏就要用右手坐标系。这种情况的目的,是让他们那些搞科学的人得以突出他们的存在感和优越感。这种增加了这么多记忆成本只为了让他们爽一爽的事儿,对于我这种被科学搞了的人来说 ,就只剩下纠结和郁闷这两种感觉了。以上是某天看书看烦了的感想。Anyway,在学习RenderMonkey的过程中,纠结于书上的各个例子无法正确实现,总是有顶点的矩阵变换出问题。最后发现是代数没学好,好吧。。 阅读全文
posted @ 2013-10-29 19:53 小 楼 一 夜 听 春 雨 阅读(801) 评论(0) 推荐(0) 编辑
摘要:http://daehgib.blog.163.com/blog/static/1861071422011579551134/透视投影是3D固定流水线的重要组成部分,是将相机空间中的点从视锥体(frustum)变换到规则观察体(Canonical View Volume)中,待裁剪完毕后进行透视除法的行为。在算法中它是通过透视矩阵乘法和透视除法两步完成的。 透视投影变换是令很多刚刚进入3D图形领域的开发人员感到迷惑乃至神秘的一个图形技术。其中的理解困难在于步骤繁琐,对一些基础知识过分依赖,一旦对它们中的任何地方感到陌生,立刻导致理解停止不前。 没错,主流的3D APIs如OpenGL、D3D的 阅读全文
posted @ 2013-10-25 17:26 小 楼 一 夜 听 春 雨 阅读(1477) 评论(0) 推荐(0) 编辑
摘要:摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人”投影纹理映射( Projective Texture Mapping )最初由 Segal 在文章 “Fast shadows and lighting effects using texture maaping” 中提出,用于映射一个纹理到物体上,就像将幻灯片投影到墙上一样。该方法不需要在应用程序中指定顶点纹理坐标,实际上,投影纹理映射中使用的纹理坐标是在顶点着色程序中通过视点矩阵和投影矩阵计算得到的,通常也被称作投影纹理坐标 (coo 阅读全文
posted @ 2013-10-25 15:26 小 楼 一 夜 听 春 雨 阅读(1355) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/xukunn1226/article/details/775644Projective Texture是比较常见的一种技术,实现起来代码也就区区的不过百行,了解其原理及技术细节是我们的重点,知其然,知其所以然。粗略的说就是想象场景中有台投影仪(Projector),texture就是我们投影的内容,把纹理放在近裁剪面(near clip plane)上,沿着投影仪的方向把纹理投影到场景中。Xheartblue兄翻译了一篇文章,很好的给投影纹理的原理进行的阐述[1],有兴趣阅读原文的可以访问这里[2],这本书可以是好东东啊!!在这里有几个概念不能混淆了: 阅读全文
posted @ 2013-10-24 20:26 小 楼 一 夜 听 春 雨 阅读(999) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示