- 博客(441)
- 资源 (25)
- 收藏
- 关注
转载 DirectX Rendering Pipeline
DirectX 9:可以在战魂的blog可以下到完整的大图。 以下三张是Wolfgang Engel大师制作的,因为FQ才能看到,所以转过来了DirectX 10: DirectX 11: DirectComputer:
2017-10-17 23:56:48
918
转载 MipMap的LOD实现原理
当使用MipMap时我们可能会遇到tex2D,tex2Dbias,tex2Dgrad,tex2Dlod几种纹理采样函数。在PS中tex2D自动计算应该使用的纹理层。tex2Dbias需要在t.w中指定一个偏移量来把自动计算出的纹理层全部偏移指定的值。tex2Dgrad需要提供屏幕坐标x和y方向上的梯度来确定应该使用的纹理层。tex2Dlod需要在t.w中明确指定要使用的纹理
2016-08-27 14:40:42
3110
转载 Dynamic 2D Imposters: A Simple, Efficient DirectX 9 Implementation
Introduction使用 2 Dimposters 的技术正在世界上电脑游戏变成越来越流行。目标是在没有降低细节的情况下采用将部分场景通过缓存的方式保存到显存里。场景中的三维物体被采集到一些分散的图片中。然后场景中的真实三维物体在渲染的时候被缓存的Impostor替代。通过这种方式Impostor就成为了三维物体简化方式。因为现代的游戏变比较大而且要求远比以往要多的细节,开发者正在
2016-08-14 22:45:28
1161
转载 理解 ReadDirectoryChangesW
理解 ReadDirectoryChangesW原作者:Jim Beveridge原文:http://qualapps.blogspot.com/2010/05/understanding-readdirectorychangesw.html?amp渣翻译:bbcallen@gmail.com世界上最长,最详细的 ReadDirectoryChangesW 的使用方法描述。
2016-04-04 02:50:10
1749
转载 常和异常处理(windows平台)
原文地址: http://crashrpt.sourceforge.net/docs/html/exception_handling.html#getting_exception_contextAbout Exceptions and Exception HandlingAbout Exception当程序遇到一个异常或一个严重的错误时,通常意味着它不能继续正常运行并且
2016-02-06 00:11:26
1071
转载 物理渲染-基于物理的光照模型
文章所用图片来自相关领域文献,如有侵权请联系撤除, 转载本文请注明出处1.关于光照模型 对于图形学领域和图形学开发来说,实时渲染的光照模型是一个最最基础的问题,简单的来讲,光照模型就是用来描述在真实环境下,物体表面一点在在光照下的反射颜色值.有许许多多的光照模型试图用数学的公式来模拟这个问题,当然这即是一个物理问题,也是一个数学问题.大学时最初接触计算机图形学时,对书本上关于
2015-08-25 22:03:08
1342
转载 Shader assembly of fresnel approximation
//----------------------------------------------------------------------------------------------------// Fresnel test shader by hanecci//// This software is released under the Unlicense. (
2015-08-25 12:27:20
963
转载 三种凹凸材质算法总结
一、Normal Mapping 图1在Pixel Shader中,光照方程中diffuse分量的计算是通过从像素点到光源的单位向量和该点的单位法向量进行点积得到的。如图1,diffuse=dot(L,N).如果使用一张法线贴图(3个通道的纹理),纹理中每个像素的三个通道对应X、Y、Z三个空间向量,组成一个法线,对现有的每个像素的法线
2015-08-23 23:53:23
2109
转载 Spherical Harmonics Lighting in DirectX
1、Per-Vertex SH Data Generation with D3DXD3DX函数产生的数据是SH系数的集合,可以跨平台使用。对于Per-Vertex SH coefficient,使用D3DXSHPRTSimulation12345HRESULT WINAPI D3DXSHPRTS
2015-08-23 23:52:03
1097
转载 Spherical Harmonics Lighting代码实现(续)
上一篇文章我们已经可以求出由SH基函数组成特定复合函数的因子,现在我们就来实现三维空间的SHL,光源来自HDR图像。该算法使用上一篇文章的SH因子计算过程、HDR图像导入过程,同时也使用了光线/物体相交过程。这里新引进几个结构体。SHRay-使用两个SHVector3d表示射线的起点和方向。SHRGBColor-表示RGB颜色值,每个分量都是double精度的浮点数。S
2015-08-23 23:49:00
1497
转载 Spherical Harmonics Lighting的代码实现(基于OpenGL)
1、二维空间的勒让德多项式勒让德多项式定义在[-1,1]范围内,其递归式是下面这个函数的参数是给定的x,给定的l和m,其中l必须是正整数,而且m在[-l,l]范围内。1234567891011//勒让德多项式计算方法double ALPSt
2015-08-23 23:48:14
1058
转载 Spherical Harmonics Lighting
1、背景知识1.1 光照表示之前我们都只考虑光源点和物体表面点的光照作用,而现在,我们考虑物体表面点延伸的微型平面,这个微型平面作为半球形的底部,因此光照射进来的范围就是整个半球形,这也是BRDF的基础。 1.2 数据压缩对于压缩信号来说,很多压缩技术基于这样一个思路:使用不同基函数的不同组合来组成一个更为复杂的数字信号表示。保存数字信号的最繁琐方法是保存每一个数据
2015-08-23 23:45:00
1877
转载 高光和金属反射光照模型
Phong模型让物体看起来具有塑料感,需要其他模型来得到更精确的金属和高光材质。高光的颜色取决于材质类型,比如白色适合塑料,金属类导体的高光颜色最好是和材质颜色一样。 1、Ward反射模型有各向同性和各向异性两种形式。两种形式下的漫反射分量都是常数。下面是各向同性的形式。sigma是材质的粗糙度(常数) 效果:roughness=0.25下面
2015-08-23 23:40:12
2998
转载 漫反射光照模型
Lambertian漫反射模型假设反射光均匀分布在所有方向,简单方便。 1、Oren-Nayar漫反射一些粗糙的表面具有很大程度逆反射的性质(反射向量和入射光线在发现的同一边)。sigma是表面的粗糙度该算法在光照向量和观察向量比较接近时最有效。 效果:roughness=sqrt(0.5); 2、Minnaert漫反射特别适合天鹅绒外观的建模。
2015-08-23 23:38:41
2863
转载 Cascaded Shadow Map(CSM)中的一些问题
Cascaded Shadow Map(CSM)是目前引擎中主流的阴影技术,效率与效果均不错。它与传统的单张Shadow Map的区别主要在于将视锥体进行了层次的分解,每一层单独计算相关的SM,这样在渲染大场景的阴影就可以避免传统的SM的各种缺点。典型的CSM原理基本上如下图所示:虽然看起来原理简单,但是在实际中想实现一个健壮的CSM并不容易,涉到各种问题,其中一些是这种方法本身就
2015-07-24 00:11:37
817
转载 memory prefetch浅析
最近在用vtune分析程序性能瓶颈时,发现一些内存访问的地方竟然成了cpu热点。经过仔细分析,发现这些热点主要是对大数组非连续位置的访问的引起的。比较消耗cpu的原因应该是cache不命中。因为像这样局部性很差的内存访问逻辑,对cache是很不友好的。于是想到了prefetch……x86(以及其他很多体系结构)的CPU提供了prefetch系列指令,用于将指定地址的内存预取到cache
2015-07-23 21:21:28
15848
3
转载 D3DPOOL(资源池)
D3DPOOL(资源池)D3DPOOL定义了资源对应的内存类型,资源可以是texture surface, vertex buffer等,从内存的角度来看,资源有以下几种类型。D3DPOOL_DEFAULTD3DPOOL_MANAGEDD3DPOOL_SYSTEMMEMD3DPOOL_SCRATCHD3DPOOL_FORCE_DWORDD3DPOOL
2015-05-27 23:19:19
696
转载 D3DUSAGE详解
翻译自:http://msdn.microsoft.com/en-us/library/windows/desktop/bb172625(v=vs.85).aspx显存与非D3DUSAGE_DYNAMIC:创建缓存时,如果未使用标记 D3DUSAGE_DYNAMIC ,则称所创建的缓存为静态缓存(static buffer)。静态缓存一般被放置在显存中,以保证存储于其中的数据得到最
2015-05-27 22:40:38
1070
转载 D3DLOCK详解
翻译自:http://msdn.microsoft.com/zh-cn/library/windows/desktop/bb172568(v=vs.85).aspx一个或者多个组合的锁定选项,用来描述资源锁定类型的表现。D3DLOCK_DISCARD:使用方式会强制为:D3DUSAGE_DYNAMIC。应用程序将会丢弃锁定区域内的所有内存。CPU不会因锁定而等待,可以有
2015-05-27 22:39:48
784
转载 D3DPOOL详解
定义资源缓存的存储位置。 VIDEO MEMORY(VM):显卡上的显存,CPU只能通过AGP或PCI-E总线访问,读写速度都是非常慢的,CPU连续写VM稍微快于读,因为CPU写VM时会在CACHE中分配32或64个字节(取决于CACHE LINE长度)的写缓冲,当缓冲满后会一次性写入VM。SYSTEM MEMORY(SM):就是系统内存,存放在System Memor
2015-05-27 22:38:12
1339
转载 Understanding GPU Derivatives(ddx,ddy)
Complex filtering depends on knowing just how much of the texture (or shading) we need to filter. Modern GPUs such as the GeForce FX provide partial derivative functions to help us. For any value
2015-02-08 16:43:27
1484
转载 MFC 多线程及线程同步
一、MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。 工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的A
2015-01-21 23:42:30
953
转载 SIMD(MMX/SSE/AVX)变量命名规范心得
当使用Intrinsics函数来操作SIMD指令集(MMX/SSE/AVX等)时,会面对不同长度的SIMD数据类型,其中又分为多种紧缩格式。为此,我设计了一套SIMD变量命名规范,可以有效的提高代码的可读性。一、SIMD数据类型简介 SIMD数据类型有——__m64:64位紧缩整数(MMX)。__m128:128位紧缩单精度(SSE)。__m128d:128位紧缩双
2014-12-14 13:12:17
884
转载 Cryengine渲染引擎剖析
这个帖可能在这儿发比较奇怪,不过我是一个信仰黑客精神的程序员,也非常支持KlayGE的研发,希望发一些我的原创资料,和作者,以及KlayGE的作用者交流,甚至有一些麻烦的问题,也希望作者可以解答,如果KlayGE的研发能够涉及到这些东西,那就最好了。作为一个刚从业不久的引擎开发人员,为了能快速有效地提高自己引擎的渲染质量,使用了各种办法来解析Cryengine的渲染手法。在此我将以专业
2014-11-29 21:07:33
1332
转载 用fxc.exe编译shader文件(*.fx, *.hlsl)的设置
原文出自:http://msdn.microsoft.com/en-us/library/windows/desktop/bb509709(v=vs.85).aspx#Profiles 拿DX11 SDK中BasicCompute11为例子右击BasicCompute11.hlsl -> properities -> Custom Build Tool -> command l
2014-10-13 23:44:24
2538
转载 在VS中让Shader自动编译
将Shader文件加入工程,在文件属性中找到Custom Build Step(自定义生成步骤)设置如下Vertex ShaderCommand Line:"%DXSDK_DIR%\Utilities\Bin\x86\fxc.exe" /nologo /O1 /LD /Zpr /Tps_3_0 /Fo"$(OutDir)\$(InputName).wpu" "$(InputPa
2014-10-13 23:42:43
1388
转载 fxc的使用及shader调试技巧
如果当前使用的版本是dx10的fxc,则当前fxc不支持ps_1_x的shader,在编译该类shader时需加上/Gec,fxc会自动的把ps_1_x版本的shader编译成ps_2_x的版本。当然该shader只能在支持shader2的机器上运行。如果要使用传统版本的fxc即dx9下的fxc,这时要使用/LD,此时就支持ps_1_x到ps_3_x的所有的shader版本。查看所
2014-10-13 23:41:35
1854
转载 【译】《GPU GEMS 3》----Next-Generation SpeedTree Rendering 翻译[4]
4.3.2 叠加阴影贴图图4-15 照明比较(a)预计算漫反射贴图 (b)逐像素阴影照明 (c)普通光照 (d)双面光照 4.4.2 镜面光照明 除了调节双面的照明,我们修改镜面光照,以提高其真实性。首先,在普通的镜面光照射下,远处的数目偏向微弱的闪光,所以我们随着距离的拉远而降低镜面光。下一步,我们我们注意到现实中的树叶有获取其他的
2014-09-21 15:36:28
1333
转载 【译】《GPU GEMS 3》----Next-Generation SpeedTree Rendering 翻译[3]
4.3 阴影 有了轮廓的效果提升,我们还要继续为提高阴影的质量而前进。因为对每个游戏引擎来说,一般情况下阴影技术都会有所不同,out-of-the-box SpeedTree的阴影是在程序未运行时便预计算好的,并且是固定不变的,所以SpeedTree能够工作在许多不同的引擎上。但这种方法有这些缺点:· 当树木的模型随风运动时,阴影的动画只能运用纹理坐标的变化,
2014-09-21 15:34:09
1091
转载 【译】《GPU GEMS 3》----Next-Generation SpeedTree Rendering 翻译[1]
最近在研究树木的渲染,看了一些相关的技术说明,几乎都是老外写的,再次为中国游戏产业的前景感到担忧。看了几天的英文,索性也把其中的重要部分翻译了出来,在这里与大家共享,先贴出《GPU GEMS 3》第4章的翻译,第一次写翻译,不免有错漏的地方,欢迎大家指出。如需转载,请先与本人联系。name:LeYond ,qq:413952706 第四章 下一代SpeedTree渲染4
2014-09-21 15:33:13
1343
转载 CryENGINE 3游戏引擎新特性完全详解
作为声名显赫的CryENGINE引擎的第三代,CryENGINE 3继承了前辈在画质方面的突出造诣,而且这次不仅限于PC平台,还可用于PS3和X360等主机平台,这也是Crytek首次进军游戏机领域。在看过两段视频和一些截图之后,我们再来从技术角度细细品味一下新引擎,看看都有什么新的技术和特性。 一、第三代“沙盒”(Sandbox)2001年引入的这个“沙盒”是全球首款“所
2014-09-15 21:35:32
1864
转载 Deferred Shading VS Deferred Lighting
鉴于传统的Forward Rendering对于多光源渲染时的低效问题,各种Deferred Rendering的方法被提出并且广泛使用。比如Deferred Shading以及其之后的Deferred Lighting。Deferred方法相对于传统Forward Rendering最主要区别都是提高了对多光源渲染时的效率,它是是将光源的计算转到屏幕空间来进行,进而不浪费无效的光源着色。
2014-09-14 22:28:19
867
转载 从深度缓冲里重建位置信息
(从深度缓冲里重建位置信息) 首先我必须让大家知道,我们现在讨论的是什么问题?我们研究的是延时渲染中一个非常有用的应用:从一个深度值中还原前一帧渲染像素的3D位置信息(可以是在视图空间也可以是在世界空间的)。在实践中,其实并不复杂。对任意像素进行渲染的时候,你本来就知道它2D的位置 ,采样一个深度值中便可以得到它完整的3D位置信息。不过重建信息时候仍然很容易陷入困境中,虽然你有很多
2014-09-14 17:03:07
1658
转载 Inside Geometry Instancing(上)
翻译:claymanclayman_joe@yahoo.com.cn仅供个人学习使用,勿用于任何商业用途,转载请注明作者^_^注:呵呵,发现我对翻译东西上瘾了。这次翻译了《GPU Gem2》中第三章的内容,大家共同学习^_^在交互式程序中,丰富用户体验的重要方法之一就是呈现一个充满大量各种有趣物体的世界。从数不清的草丛、树木到普通杂物:所有这些都能提高画面最终的效果
2014-09-09 21:45:07
577
转载 Inside Geometry Instancing(下)
3.3.3 Vertex Constants Instancing 在vertex constants instancing方法中,我们利用顶点常量来储存实体属性。就渲染性能而言,顶点常量批次是非常快的,同时支持实体位置的移动,但这些特点都是以牺牲可控性为代价的。 以下是这种方法主要的限制:l 根
2014-09-09 21:44:54
506
转载 Tabula Rasa中的延迟着色技术
Deferred Shading,看过《Gems2》 的应该都了解了。无论是Unreal3、Crysis还是星际2,都已经支持或者准备支持这个技术。不过因为国内这种环境,真正在项目中能用到的可能并不多,不知道这次星际2出来后,情况会不会有所变化。^_^本文是对Gems2这篇文章的一个补充,小生在做此次外包的时候,由于需要,翻译了这篇文章,不敢独享,遂贴于此,望能抛砖引玉,愿众位前辈
2014-09-07 18:02:18
1000
转载 一个简单实用的SSAO实现
by José María Méndez 原文链接: http://www.gamedev.net/reference/programming/features/simpleSSAO/ 绪论 全局照明(global illumination, GI)是一个计算机图形学术语, 它指的是所有表面之间相互作用的光照现象(光线来回跳动, 折射, 或者被遮挡), 例如: 渗色(col
2014-09-03 12:37:27
703
转载 DXT纹理压缩
我们知道游戏中对于3D物体表面细节的表现最重要的还是靠贴图来实现的,那么越是高分辨率越是真彩色的贴图自然表现力也是越强,但是同时带来的问题是所需占用的内存会成倍的上升,而节省内存这一点在目前的游戏中还是非常非常重要的。 所以各个平台上都在使用纹理压缩的技术,让纹理贴图在内存占用和显示效果能达到一个尽可能的平衡。在DirectX中,使用一种叫做DXT的纹理压缩技术,目前这种技术被大部分显卡所支持
2014-08-29 23:58:30
810
转载 Bezier曲线原理及实现代码(c++)
Bezier曲线原理及实现代码(c++) 一、原理: 贝塞尔曲线于1962年,由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计。贝塞尔曲线最初由 Paul de Casteljau 于1959年运用 de Casteljau 算法开发,以稳定数值的方法求出贝塞尔曲线。线性贝塞尔曲线给定
2014-08-23 19:45:14
3482
转载 用Pix调试HLSL
很多学Directx特别初学者最头痛应该是shader的调试问题了。一般的编译器包括vs都不支持shader的调试。还好微软出了个Pix,其功能相当强大,而不仅仅是debug。这里我们入门主要总结下其debug的功能。 Pix的调试原理和一般的调试很不一样,它是先把程序运行一遍,然后把中间每一步所有的shader变量,寄存器等等都记录下来,然后再调出来看,以此模拟Directx的过程。
2014-08-01 17:26:12
818
Visual-Assist-X-10.9-Build-2366_支持vs2019.rar
2020-12-01
Unity Magica Cloth.1.7.0.7z
2020-12-01
Unity Easy Movie Texture Video Texture v3.72
2020-12-01
FalagardSkinning
2011-10-18
FalagardSkinning.pdf
2011-10-18
nFringeSetup1.16+config
2010-12-23
计算机学科专业基础综合复习指南(数据结构部分)
2010-10-01
Oracle11gPLSQLProgramming
2010-05-30
C#编写的远程监控程序源码
2010-04-16
C#聊天软件带浏览器源码(毕业设计)
2010-04-09
C#聊天程序源码(网络编程)
2010-04-08
igoogle网站源码
2010-04-07
C# API精灵 助手 函数查询
2010-04-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人