随笔分类 -  实时渲染

Adaptive Transparency
摘要:最近看到一篇OIT的文章,文章里介绍了一种新方法实现OIT,文章可以在这里找到http://software.intel.com/en-us/articles/adaptive-transparency/,http://software.intel.com/en-us/articles/adaptive-transparency-hpg-2011。文章内介绍的方法把经典alphablending的递归混合公式拆开,避开backtofront的渲染限制,从而实现OIT。 首先回顾一下经典alphablending公式:C0=α0c0Cn=αncn+(1-αn)Cn-1其中,α代表该颜色的覆... 阅读全文

posted @ 2013-05-14 16:28 rickerliang 阅读(825) 评论(0) 推荐(0)

纹理映射
摘要:实时渲染领域内,纹理拾取、映射及过滤涉及大量理论知识,本文是对这些知识的总结和梳理,方便日后查阅。本文本应该在2011年末的时候出现,由于从那时起我就被无尽的加班缠绕,直到最近才得以解脱,所以到现在才有时间完成这个总结。纹理拾取、映射及过滤在实际应用主要集中在pixelshader阶段。ShaderModel3.0引入vertextexturefetch(VTF,可实现HeightMapping和DisplacementMapping),开启了在非pixelshader阶段进行纹理拾取的大门,而最新的ShaderModel5.0,纹理拾取可以在任意shader阶段进行(例如tessellat. 阅读全文

posted @ 2013-03-30 01:49 rickerliang 阅读(7892) 评论(2) 推荐(3)

Quaternion简记
摘要:q=(x,y,z,w)=(u,w)u是虚部向量,w是实部,当然,也可以标记为(a+bi+cj+dk),这时a是实部,b,c,d是虚部向量以下是在quaternion上的相等加减乘除的定义(u,a)=(v,b) 紧当u=v a=b时成立(u,a)±(v,b)=(u±v,a±b)(u,a)(v,b)=(av+bu+u×v,ab-u·v)乘法略显怪异,但之后你会发现这样定义的乘法是很有用的令p=(u,p4)=(p1,p2,p3,p4) q=(v,q4)=(q1,q2,q3,q4),乘法展开,其中u×v = (p2q3-p3q2,p3q1-p 阅读全文

posted @ 2012-12-05 20:33 rickerliang 阅读(615) 评论(0) 推荐(0)

XNA::ComputeFrustumFromProjection的一些注释
摘要:ComputeFrustumFromProjection是通过投影矩阵计算出view space下frustum的函数,Frustum在XNA内用这个结构描述struct Frustum{XMFLOAT3 Origin;XMFLOAT4 Orientation;FLOAT RightSlope;FLOAT LeftSlope;FLOAT TopSlope;FLOAT BottomSlope;FLOAT Near, Far;} 其中,view space下frustum的origin是原点,orientation是identity transform,所以,函数主要工作是通过projec... 阅读全文

posted @ 2012-11-28 14:31 rickerliang 阅读(576) 评论(0) 推荐(0)

WebGL tutorial
摘要:不错,收藏http://learningwebgl.com/blog/?page_id=1217 阅读全文

posted @ 2011-07-29 17:13 rickerliang 阅读(254) 评论(0) 推荐(0)

Depth Of Field
摘要: 有这样一个物理现象,镜头对准被摄物体对焦,在底片上有清晰的成像,然而,在焦点前后一段短距离内的物体,在底片上仍然能得到较清晰的成像,离焦点更远的地方,光线开始扩散,影象变成模糊的,形成一个扩大的圆。这个圆叫做弥散圆。在焦点前后短距离内仍能得到较清晰的成像,是因为在这段距离内,弥散圆的直径比较小,在底片上人眼识别不出来。人眼不能识别的最大弥散圆直径称为允许弥散圆直径。在焦点前后,允许弥散圆直径之间的距离叫做焦深,前焦深和后焦深对应的物距之差就是景深,即Depth of Field(DOF)。如下图:图1 景深(Depth of field),弥散圆(Circle of confusio 阅读全文

posted @ 2011-06-02 16:55 rickerliang 阅读(3310) 评论(3) 推荐(5)

High Dynamic Range
摘要:本文描述的是实时渲染领域内的HDR高动态范围渲染技术,此技术可粗略理解为在LDR表面呈现HDR场景。 首先,DR动态范围是指某环境下某物理量最高值与最低值之比值。HDR全称High Dynamic Range,即高动态范围,通常指DR值达10的10次方以上。例如,室外太阳光的亮度与室内阴暗角落的地砖的亮度之比值可以达到10的10次方以上,这样的场景就可以称为具有高动态范围。 既然有高动态范围,相应也有低动态范围LDR,最明显的例子就是我们的电脑显示器。显示器的DR(即对比度)一般不会超过10的4次方。 如果不作任何处理,直接在LDR表面呈现HDR场景,可以预计,会出现过曝光或欠曝光情况,丢失. 阅读全文

posted @ 2011-05-25 11:45 rickerliang 阅读(2269) 评论(0) 推荐(0)

Screen Space Ambient Occlusion
摘要:Screen Space Ambient Occlusion 简称SSAO,是实现AO的一种方法,其运算量低且效果还可以接受,所以用作实时渲染AO算法。SSAO又细分有多种算法,其中有Crytek的SSAO,有nVidia的HBAO等,而最简便的是GameDev上一篇SSAO文章里的方法。无论什么方法,都是通过采样像素附近区域的几何信息,计算遮蔽因数。HBAO方法比较复杂,但有理论依据,而GameDev的方法比较简单,通过调整相关参数就能得到满意效果,如下图(是的,又是茶煲一个):本文也就是GameDev方法的中文注释。 既然SSAO称为SSAO,那么这个方法肯定是在Screen Space内 阅读全文

posted @ 2011-05-13 22:33 rickerliang 阅读(1546) 评论(6) 推荐(0)

资源汇总
摘要:《RealTime Rendering》对应的网站maintain一个历年众多conference的paper列表,珍贵的资源,极具价值 阅读全文

posted @ 2011-05-13 16:54 rickerliang 阅读(344) 评论(2) 推荐(0)

Deferred Shading
摘要:Deferred Shading Deferred Shading是现在比较流行实时渲染方式,这种渲染方式能把Geometry和Lighting之间的耦合解开,把Forward Shading的Geometry Pass*Lighting Pass复杂度下降为Geometry Pass+Lighting Pass,特别适合于渲染较多动态光源的场景,本文将快速浏览实现Deferred Shading的各个阶段,并提供一个带源代码的简单的例子程序,这个程序可以在SM2.0及以上的硬件上运行,通过dx9接口实现。 Deferred Shading介绍可参阅《RealTime Rendering》3r 阅读全文

posted @ 2011-05-07 22:13 rickerliang 阅读(4057) 评论(3) 推荐(3)

实时渲染下的多线程协作:实践
摘要:在《实时渲染下的多线程协作》一文中提出的无等待多线程协作机制可应用于实时渲染,这是由于实时渲染下,每一帧与下一帧存在相关性。设想一下存在一个无限快速的渲染设备,导致帧速无限大,dt无限小,那么,场景内物体的运动变化在frame n时与frame n+1时无限接近,我们可以近似地把frame n与frame n+1的变化累积起来,一次过地在frame n+1时呈现出来,而frame n我们什么也不错。 以下DEMO就是基于上述观点:首先,DEMO显示两个自旋的六面体,左下角六面体自旋角度由主线程计算,右下角六面体由自旋角度由辅助线程计算;其次,辅助线程为了模拟复杂运算,在每计算一个自旋转换矩阵. 阅读全文

posted @ 2011-04-24 21:12 rickerliang 阅读(784) 评论(2) 推荐(0)

实时渲染下的多线程协作
摘要:这里的指多线程意思是在Application阶段的多线程(请参阅<<Real Time Rendering>>3rd对一个实时3d程序处理阶段的划分:Application-Geometry-Rasterization)。本文在Application阶段展开探讨多线程协作,并提出可行方案。 首先,我们回顾一下多线程的应用场景。在一个围绕业务展开的应用程序内,多线程应用场景可以是:界面线程——数据处理线程;界面线程负责响应用户输入,并根据输入向数据处理线程发出请求,接着界面线程会提示进度条并保持界面的及时响应(例如响应用户的取消操作),直到等待数据处理线程的完成。界面线程 阅读全文

posted @ 2011-04-23 00:09 rickerliang 阅读(1059) 评论(0) 推荐(0)

导航