shader
IIIIIIIIIIIIIOO
这个作者很懒,什么都没留下…
展开
-
Tabula Rasa中的延迟着色技术
Deferred Shading,看过《Gems2》 的应该都了解了。无论是Unreal3、Crysis还是星际2,都已经支持或者准备支持这个技术。不过因为国内这种环境,真正在项目中能用到的可能并不多,不知道这次星际2出来后,情况会不会有所变化。^_^本文是对Gems2这篇文章的一个补充,小生在做此次外包的时候,由于需要,翻译了这篇文章,不敢独享,遂贴于此,望能抛砖引玉,愿众位前辈转载 2014-09-07 18:02:18 · 984 阅读 · 0 评论 -
高光和金属反射光照模型
Phong模型让物体看起来具有塑料感,需要其他模型来得到更精确的金属和高光材质。高光的颜色取决于材质类型,比如白色适合塑料,金属类导体的高光颜色最好是和材质颜色一样。 1、Ward反射模型有各向同性和各向异性两种形式。两种形式下的漫反射分量都是常数。下面是各向同性的形式。sigma是材质的粗糙度(常数) 效果:roughness=0.25下面转载 2015-08-23 23:40:12 · 2963 阅读 · 0 评论 -
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 · 1073 阅读 · 0 评论 -
三种凹凸材质算法总结
一、Normal Mapping 图1在Pixel Shader中,光照方程中diffuse分量的计算是通过从像素点到光源的单位向量和该点的单位法向量进行点积得到的。如图1,diffuse=dot(L,N).如果使用一张法线贴图(3个通道的纹理),纹理中每个像素的三个通道对应X、Y、Z三个空间向量,组成一个法线,对现有的每个像素的法线转载 2015-08-23 23:53:23 · 2049 阅读 · 0 评论 -
Spherical Harmonics Lighting的代码实现(基于OpenGL)
1、二维空间的勒让德多项式勒让德多项式定义在[-1,1]范围内,其递归式是下面这个函数的参数是给定的x,给定的l和m,其中l必须是正整数,而且m在[-l,l]范围内。1234567891011//勒让德多项式计算方法double ALPSt转载 2015-08-23 23:48:14 · 1032 阅读 · 0 评论 -
Spherical Harmonics Lighting代码实现(续)
上一篇文章我们已经可以求出由SH基函数组成特定复合函数的因子,现在我们就来实现三维空间的SHL,光源来自HDR图像。该算法使用上一篇文章的SH因子计算过程、HDR图像导入过程,同时也使用了光线/物体相交过程。这里新引进几个结构体。SHRay-使用两个SHVector3d表示射线的起点和方向。SHRGBColor-表示RGB颜色值,每个分量都是double精度的浮点数。S转载 2015-08-23 23:49:00 · 1472 阅读 · 0 评论 -
漫反射光照模型
Lambertian漫反射模型假设反射光均匀分布在所有方向,简单方便。 1、Oren-Nayar漫反射一些粗糙的表面具有很大程度逆反射的性质(反射向量和入射光线在发现的同一边)。sigma是表面的粗糙度该算法在光照向量和观察向量比较接近时最有效。 效果:roughness=sqrt(0.5); 2、Minnaert漫反射特别适合天鹅绒外观的建模。转载 2015-08-23 23:38:41 · 2795 阅读 · 0 评论 -
Spherical Harmonics Lighting
1、背景知识1.1 光照表示之前我们都只考虑光源点和物体表面点的光照作用,而现在,我们考虑物体表面点延伸的微型平面,这个微型平面作为半球形的底部,因此光照射进来的范围就是整个半球形,这也是BRDF的基础。 1.2 数据压缩对于压缩信号来说,很多压缩技术基于这样一个思路:使用不同基函数的不同组合来组成一个更为复杂的数字信号表示。保存数字信号的最繁琐方法是保存每一个数据转载 2015-08-23 23:45:00 · 1859 阅读 · 0 评论 -
在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 · 1366 阅读 · 0 评论 -
用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 · 2502 阅读 · 0 评论 -
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 · 1772 阅读 · 0 评论 -
Deferred Shading VS Deferred Lighting
鉴于传统的Forward Rendering对于多光源渲染时的低效问题,各种Deferred Rendering的方法被提出并且广泛使用。比如Deferred Shading以及其之后的Deferred Lighting。Deferred方法相对于传统Forward Rendering最主要区别都是提高了对多光源渲染时的效率,它是是将光源的计算转到屏幕空间来进行,进而不浪费无效的光源着色。转载 2014-09-14 22:28:19 · 850 阅读 · 0 评论 -
从深度缓冲里重建位置信息
(从深度缓冲里重建位置信息) 首先我必须让大家知道,我们现在讨论的是什么问题?我们研究的是延时渲染中一个非常有用的应用:从一个深度值中还原前一帧渲染像素的3D位置信息(可以是在视图空间也可以是在世界空间的)。在实践中,其实并不复杂。对任意像素进行渲染的时候,你本来就知道它2D的位置 ,采样一个深度值中便可以得到它完整的3D位置信息。不过重建信息时候仍然很容易陷入困境中,虽然你有很多转载 2014-09-14 17:03:07 · 1625 阅读 · 0 评论 -
Inside Geometry Instancing(下)
3.3.3 Vertex Constants Instancing 在vertex constants instancing方法中,我们利用顶点常量来储存实体属性。就渲染性能而言,顶点常量批次是非常快的,同时支持实体位置的移动,但这些特点都是以牺牲可控性为代价的。 以下是这种方法主要的限制:l 根转载 2014-09-09 21:44:54 · 495 阅读 · 0 评论 -
【译】《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 · 1313 阅读 · 0 评论 -
【译】《GPU GEMS 3》----Next-Generation SpeedTree Rendering 翻译[3]
4.3 阴影 有了轮廓的效果提升,我们还要继续为提高阴影的质量而前进。因为对每个游戏引擎来说,一般情况下阴影技术都会有所不同,out-of-the-box SpeedTree的阴影是在程序未运行时便预计算好的,并且是固定不变的,所以SpeedTree能够工作在许多不同的引擎上。但这种方法有这些缺点:· 当树木的模型随风运动时,阴影的动画只能运用纹理坐标的变化,转载 2014-09-21 15:34:09 · 1077 阅读 · 0 评论 -
【译】《GPU GEMS 3》----Next-Generation SpeedTree Rendering 翻译[1]
最近在研究树木的渲染,看了一些相关的技术说明,几乎都是老外写的,再次为中国游戏产业的前景感到担忧。看了几天的英文,索性也把其中的重要部分翻译了出来,在这里与大家共享,先贴出《GPU GEMS 3》第4章的翻译,第一次写翻译,不免有错漏的地方,欢迎大家指出。如需转载,请先与本人联系。name:LeYond ,qq:413952706 第四章 下一代SpeedTree渲染4转载 2014-09-21 15:33:13 · 1284 阅读 · 0 评论 -
Shader assembly of fresnel approximation
//----------------------------------------------------------------------------------------------------// Fresnel test shader by hanecci//// This software is released under the Unlicense. (转载 2015-08-25 12:27:20 · 948 阅读 · 0 评论