Skip to content

Archive

Archive for January, 2011
在有些设备上只有float没有double,比如前几代GPU、部分移动设备等。当非得用到double精度的时候该怎么办? 我记得去年在某个地方见到过用2个float模拟double的作法,经过一番玩命地搜索,得来全不费功夫,就在CUDA SDK的Mandelbrot例子里找到了2个float模拟double乘法的函数。甚至,GTX280上的double也是类似的方法模拟出来的,所以慢的惊人,只有float八分之一的速度。(EDIT: Mandelbrot在GTX480上,float和double都可以到60-70 fps,模拟的话只有20-30 fps,Fermi的double速度上去了) 先show一下模拟乘法的函数dsmul: // This function multiplies DS numbers A and B to yield the DS product C. __device__ inline void dsmu ...
在KlayGE中的延迟渲染(一)里,我们推出了lighting pass里的计算,本篇将讲解G-Buffer阶段和Shading pass阶段。 G-Buffer分配 在Deferred Rendering的框架中,不管是Deferred Shading还是Deferred Lighting,G-Buffer的分配都是非常关键的。上一篇得出的lighting pass公式如下: [latex]float4(1, 1, 1, (\mathbf{n} \cdot \mathbf{h_n})^{\alpha} F(c_{spec}, \mathbf{l_{cn}},\mathbf{h_n})) \times \mathbf{c}_{lightn} (\mathbf{n} \cdot \mathbf{l_{cn}})[/latex] 从公式可以看出,在light pass里需要的量有n,h,alpha,cspec,lc。因为h = (v + lc) / 2(见游戏中基于物理的渲染系列文章),而lc = normalize(l - p)(l是光源位 ...
老早就想写这篇了,但一直没空,现在抽个空写写吧。 Motivation 编译期字符串Hash的想法源于一个常见做法,字符串比较。比如在KlayGE的effect系统中,有很多if ("cull_mode" == state_name)这样的比较。加速这个操作的方法之一就是hash。但是如果改成if (0x8F1E5E5F == state_name_hash)又非常不直观。如果能有一个编译期的hash方法,先称之为CT_HASH,就可以if(CT_HASH("cull_mode") == state_name_hash),既保证直观,又保证开发效率。 尝试 要在编译期做事情首先都会想到template,但是C++的template没法提供字符串的操作,就算boost::mpl::string,也必须把一个一个字符分开塞给它才行,就像这样: boost::mpl::string<'c', 'u', 'l', ...
Here is a quick summary of it’s features : - Create countless different explosions. Each explosion is randomized and all important parameters can be changed - Exports to PNG complete with an alpha channel. No more black backgrounds and additive blending for your explosions anymore. The result texture inlcudes a full alpha channel - Different texture sizes (from 256×256 up to 4096×4096, depending on wether your graphics card can manage that) - Different grid sizes for setting the number of animation frames on a texture (4×4, 8×8, 16×16) - Use your own particle textures. Either use the in ...
KlayGE中的延迟渲染系列文章将讲述在KlayGE 3.11的Deferred Rendering例子中使用的延迟渲染方法,由5篇文章组成。 Deferred Lighting的框架 KlayGE 3.11的例子已经从Deferred Shading改成了更节省带宽的Deferred Lighting。这里先对Deferred Lighting作一个简要的介绍,并假设读者已经了解了Deferred Shading。 Deferred Lighting的渲染架构可以分为三个阶段: G-Buffer的生成 for each light { Lighting pass } Shading pass 与Deferred Shading不同的是,shading(也就是和材质相关)的计算仅仅发生在最后一个阶段。所以,G-Buffer中需要保存的信息得到极大地减小,甚至不再需要MRT。 Lighting pass Lighting pass ...
前几天,Intel放出了众多渲染的文章和代码,主要是为了表现Sandy Bridge的能力,包括Cloth,Onloaded shadow map,crowd simulation,smoke,Adaptive Volumetric Shadow Maps,volumetric fluid simulation等,还有原先放出来过的Deferred Rendering。AVX指令集挺好,极大地扩展了SSE的能力,有机会我会在Softart里面试试看。 但是在那些demo之中,我还发现了一个极其惨不忍睹的海洋渲染,链接在http://software.intel.com/en-us/articles/ocean-fog-demo-page/,想挑战自己生理极限的可以下载一个运行看看。只要继承显卡就能跑...在这里我就贴一张截图罢了。连续动画其实更明显,可以看到他的悲催网格分布: artifact众多,水面 ...
刚找到一个好东西:http://www.ir-ltd.net/infinite-3d-head-scan-released/。可以下载一个3D扫描生成的人头数据,而且是Creative Commons Attribution 3.0 Unported License协议的,只要提到原出处就可以任意使用! http://www.ir-ltd.net/uploads/Infinite_Scan_Ver0.1.rar (80 MB’s) Object file and textures. http://www.ir-ltd.net/uploads/Infinite_Scan_Displacements_Ver0.1.rar (65 MB’s) Displacements Maps. http://www.ir-ltd.net/uploads/Infinite_Ztl.rar (70 MB’s) Stripped down basic, 7 Subdivision Level ZBrush file. 再贴一些用它生成的渲染图:
昨天发了招募贴之后大家响应积极,非常感谢!发邮件给我的朋友们我已经给予回复,如有遗漏者请提醒我一下。
KlayGE的下一个版本3.12正在计划中,大约在2011年6月份发布。目前打算做一些特性,如果朋友们有其他的建议或要求,可以回帖提出来。 必然出现 这些新特性一定会出现在KlayGE 3.12中,都有明确的实现方法,不确定性较小。 Dual Paraboloid Shadow Maps。加速点光源的shadow map,参考文献:http://sites.google.com/site/osmanbrian2/dpsm.pdf。 Gamma correction。输入texture和输出render target都经过gamma矫正,参考文献:http://filmicgames.com/archives/299。 Temporal AA。帧间anti alias,减轻远处像素的alias,参考实现:http://www.yakiimo3d.com/2010/09/28/dx11-perspective-matrix-jittering-temporal-aa/。 MLAA。 ...
来自http://news.mydrivers.com/1/183/183598.htm AMD今天终于在CES 2011开幕之际正式发布了筹备多年的Fusion APU融合加速处理器,也宣告了融合时代的正式带来。 AMD Fusion APU分为两大系列,现在面世的是基于山猫(Bobcat)处理器架构、DX11 GPU图形核心的低功耗版本,最多两个处理器核心,采用台积电40nm工艺制造。AMD称,山猫是其2003年以来的首个全新x86内核,专为低功耗便携 式设备而设计。 AMD Fusion APU首套平台代号“Brazos”,又称“2011低功耗平台”,芯片组统一采用单芯片设计的Hudson-M1,处理器包括两个子系列: - Zatcate E系列:E-350 1.6GHz双核心、E-240 1.5GHz单核心,热设计功耗18W,面向主流笔记本、一体机、小型台式 ...