OGRE Defferedshading实现和应用

基于Ogre的延迟渲染应用 基于Ogre的延迟渲染应用,讲的非常详细,很适合想了解这方面技术的初学者 立即下载

基于Ogre的DeferredShading(延迟渲染)的实现以及应用


    三年前开始接触ogre引擎,由于工作需要一直进行图形方面的研发和尝试,随着引擎技术的进步,ogre的与Cryengine3、Unreal3等一线图形引擎在画面上的差距越来越大,主要原因在于ogre目前的设计趋于一套开放性的架构,并不着眼于细节的完善,也就是说盖一栋别墅,如果你要住进去就要自己去装修....软件开发都说魔鬼是藏在细节里面,这样的开放式框架也给项目使用者带来很大门槛,更多的时间花在了完善ogre的功能上。

    在图形方面,ogre的默认图形架构属于最传统的方式,当今次时代引擎无一不进入延时渲染时代(Deferred Shading),这种渲染架构既保证了渲染效率又带来了新的渲染效果,Ogre例子里虽然也涉及DeferredShading的例子,但是并不实用(显然只是开发者用来告诉使用者Deferred Shading这个都东西可以有基于Ogre的DeferredShading(延迟渲染)的实现以及应用),针对这一点,基于ogre1.65(已经升级到1.75)我重新设计了一套Deferred Shading框架,接下来就由这个框架来简单介绍一下Deferred Shading(根据读者需求我会针对单个的技术写文章)。

首先,来几张DeferredShading框架下的Demo截图,该相关信息也将会发布在ogre Froums上,敬请期待。

 基于Ogre的DeferredShading(延迟渲染)的实现以及应用

基于Ogre的DeferredShading(延迟渲染)的实现以及应用

基于Ogre的DeferredShading(延迟渲染)的实现以及应用

基于Ogre的DeferredShading(延迟渲染)的实现以及应用

基于Ogre的DeferredShading(延迟渲染)的实现以及应用

基于Ogre的DeferredShading(延迟渲染)的实现以及应用

基于Ogre的DeferredShading(延迟渲染)的实现以及应用

基于Ogre的DeferredShading(延迟渲染)的实现以及应用



    很多人对森林那部分场景感兴趣,我简单做了下技术解析,主要针对渲染架构下的数据信息输出,以及各种渲染技术叠加所产生的效果,并包含一些单个技术的解析。

一下是我使用的渲染流程图表:

 基于Ogre的DeferredShading(延迟渲染)的实现以及应用

    包含深度数据以及法线数据,深度数据可以还原成每个像素的位置数据,有了这个信息我们实现了SSAO、Fog、Light shaft、Dof等众多效果。发线图除了应用于光照,对SSAO或者以后将要有的SSGI都有一定的贡献,我相信在将来的一段时间的图形新技术也免不了要依赖于G-Buffer,该图表充分反应了G-Buffer的重要性,而且提供了更广泛的扩展性。

 

基于Ogre的DeferredShading(延迟渲染)的实现以及应用

    上图是要说明的是各个效果之间的相互作用与叠加对图像产生的影响,我想表明的观点是,任何效果只有在相互融合的情况下才能发挥出应有的作用甚至超乎自己的想象,这需要你对场景特点的解读以及对自然界细心的观察,并经过反复的调整,对于美术人员来说,需要充分对这些效果进行透彻的理解(这点比较困难,美术人员理解方式与技术人员有较大不同),然后把心里所想的场景氛围一层层的剖析分解,再使用现有技术进行调整。

 

接下来我将做一些单个技术的解析:

 

光源

    在渲染场景物体的时候,我讲透明和非透明物体分开进行渲染,这是因为DeferredShading的先天性对Alpha测试处理的缺陷,只能使用前向渲染来处理里半透明物体,从另一个角度上来说半透明物体失去了DeferredShading光照的优势,所以DeferredShaing对处理写实场景具有很大优势。

在光源处理上,将太阳光进行了单独的处理,在美术的角度上,要想获得模型较好的光照效果,普遍使用三角光源来渲染模型样板,其实仔细的对自然光的观察,也可以将自然光拆分成三个光源,我姑且先起名为:(太阳)直射光,逆射光,天光。

    直射光描述太阳产生的方向光,让物体产生立体感,这个最容易理解。逆射光与方向光的方向相反,主要表现太阳光照射在物体上的反射光线,突出暗部边缘和于正面光源颜色的互补。天光则是描述阳光在空气中的散射,以垂直向下的方向光进行模拟,但是因为空气散射是四面八方没有固定的方向,我们可以修改一下phone模型的公式,将光照范围扩大一倍,这样混合的光感就更接近自然。

基于Ogre的DeferredShading(延迟渲染)的实现以及应用

(从左到右依次添加了方向光、逆光、天光)

VSM/PSSM(阴影)

    阴影是提升场景物体存在感和厚重感的重要手段,但阴影所带来的巨大的开销是最让人头痛的一件事,Cryengine和Unreal无一不在阴影上下足了功夫。为了保障效率,在Deferred Shading插件针对有无光源变化使用了两种解决方案:VSM、PSSM。

    在光源无变化的场景中的静态物体使用VSM技术和LightMap混合的方式,在一定范围内才是很正的阴影,超出之歌范围则自动过渡到LightMap烘焙的阴影部分,这样阴影的计算量就小了很多。在诸如有日夜变化的场景中,显然烘焙的阴影不能达到要求,这就需要所有物体都进行产生真实的阴影,也就是使用开销很大的PSSM技术,该技术有也是有很多优化空间,但是总体来说还是需要使用者心中权衡利弊。

 基于Ogre的DeferredShading(延迟渲染)的实现以及应用

半透明物体

    这里所说的半透明物体并非使用alpha mask的物体(比如叶片),而是想使用alpha blend的物体(玻璃,水面),因为Deferred Shading天生对处理alpha物体的光照有缺陷(如果半透明物体需要关照也是单独完成),所以要使用 front shading做单独处理,然后再与Deferred Shading进行Depth Test和Alpha Blend,也就是所化框架图的颜色混合那一步骤。

    游戏中使用的最多的半透明物体就是水,自然界中的水会对水面以下的东西进行扰动,这一点上Deferred Shading可以发挥作用,在光照阶段将不透明的物体均渲染得到的纹理Buffer,我称为LightColorBuffer,将LightColorBuffer作为纹理贴在水面上,再根据法线对该纹理进行扰动,这样我们就得到一个廉价又美观的折射效果,再配合方向光的光照(主要是Specular)就得到一个不错的水面效果,另外还可以通过获得G-Buffer中的高度数据来实现水面的自动深度,今后我会做一个专题文章。

基于Ogre的DeferredShading(延迟渲染)的实现以及应用

水的效果

 基于Ogre的DeferredShading(延迟渲染)的实现以及应用

晶体材质

SSAO(全场景光线遮蔽)

    光线在空气中以光粒子的形态传播,会受到各种物质的反射和干扰,可以看到在现实生活中一面墙壁的角落会比其他地方更暗一些,也就是说传统的phone模型光照是以射线的方式来进行计算光照,无法模拟出空气已经物体对光的反射和折射关系。SSAO全名问全屏(幕光线遮蔽),最早是由cryengine2的研发人员设计并真正应用的一项技术,目前已经目前次时代作品普遍使用的一项技术。SSAO可以模仿出上述这种光线在传播的效果(只是模仿而已),通过G-Buffer中获取的深度图计算当前像素和周围像素之间的位置关系,进而得到该像素点是否处于光线比较难以到达的位置。

    该项在该技术发明之前许多游戏工作者已经发现AO对场景存在感有着质的提升,所以很多老游戏都采用使用美术手段在3D软件中烘焙LightMap(光照图)的方式(最早使用者是大名鼎鼎的卡马克),这种方法仍然沿用至今,甚至有LightMap和SSAO混合是用的例子(Unreal Engine3)。

 基于Ogre的DeferredShading(延迟渲染)的实现以及应用

Glow(自发光)

    很多游戏中存在一些细小且不规则的发光物体,想一些发光的符文,这些细小特别的发光物体使用灯光

物体是不需要使用真正的光源,Glow效果在此处就有了用武之地。

    我们将发光信息存储在模型的纹理中,如图:在渲染物体时将该信息提取并做为一个(或者三个)通道存储在Buffer中,这样在后期再从Buffer中得到这个发光信息,通过高斯模糊处理再与原Color重叠即可得到Glow的效果。Glow并不能照亮环境中的其他景物,是一种视觉欺骗,不管如何我要的效果是达到了。(图形学里面充满各种视觉欺骗...)

 基于Ogre的DeferredShading(延迟渲染)的实现以及应用

Fog(雾效)

    雾化效果在游戏中是最常见的一种特效,以摄像机距离来计算雾的浓度,在传统渲染模式中已经运用很成熟。在次时代游戏里对雾化又有新的需求,就是高度雾。雾本身是粒子状漂浮在空气中的水珠,应该具有一定的沉积性,也就是根据高度来计算雾的浓度。从G-Buffer中获得DepthMap,将深度数据转换为高度数据,剩下的就容易多了,自己设置一下相关参数,调整一下OK,如图:

 

基于Ogre的DeferredShading(延迟渲染)的实现以及应用



DOF(景深)

    景深这个术语来自摄影和摄像,模拟人眼聚焦一个物体时对聚焦之外物体的虚化模糊的一种效果,在游戏中,这种技术往往出现在一些交代剧情的过场上,给人一种影视化的感觉。

    首先对当前渲染得到的画面(map)进行高斯模糊(类似PS中的滤镜)另存在一张纹理(blurmap)上,在获取depthmap,根据要聚焦的位置参数将得到一张遮罩图(maskmap),再使maskmap使blurmap与map进行混合,就得到了下图中的效果,在实现这个技术上我的做法相对简单,效果也算不错,当然也有更好地方式,但实现起来也相对复杂,这里不再细说。

 基于Ogre的DeferredShading(延迟渲染)的实现以及应用

Light Shaft(体积光)

    空气中有很多杂质离子,光线在通过时多少会有些被折射或反射,就可以看到光柱一样的效果,这个就是我们所说的体积光。早期的3D游戏中,是依靠美术来制作体积光,在透光处添加使用alpha blend固定的面片,这个方式在封闭的场景中也可以达到不错的效果,例如教堂、山洞等场景,但是对于开放性场景和不断变化的场景却是无能为力,例如森林、流动的云层。

    这项技术的实现手法跟DOF很类似,同样要用到DepthMap,根据参数得到maskmap,根据太阳的位置对maskmap进行径向模糊(参考PS的滤镜),最后调整好光的颜色以及与场景的混合方式就OK了。

 基于Ogre的DeferredShading(延迟渲染)的实现以及应用

HDR(高动态光照渲染)

    人的眼睛对光的感应区间要远远大于普通显示器所提供的颜色,为了模拟渲染画面的真实感,根据人眼对光强弱时瞳孔和眼皮对入射光的控制,图形工作者发明了HDR技术,(该项技术在摄影和摄像中也是最基本的技术),让画面亮度动态的根据场景亮度来改变。

    这个就好似你拍了一张照片,在PS里面处理一样,要想得到完美效果,仅仅更改画面亮度是远远不够的,还要调整整体的对比度和饱和度,对一些写实的游戏来说,这样可以使画面变得厚重和真实。具体的调整方式各不一样,卡通也好,写实也好,明亮也好,灰暗也好,没有统一的计算公式,但是不变的都是要根据色彩搭配的原理和对人眼感光的模拟。

 

Color Control(颜色控制)

    整个渲染的最后一步就是颜色控制,主要是用作后期的整体画面调整,这些调整往往是带有个人风格而非真实性的调整,如果我们留意的话,可以发现绝大多数好莱坞大片在根据剧情不同的时期的色调都会发生变化。

    首先在场景中截图,这个就要利用PS工具,在PS里的曲线工具中调整,直到我们满意的颜色,保存调整后的曲线数据,导出数据图,在shader中使用就OK了,更像我们平时修改照片,甭管照的时候有多么歪瓜裂枣,有些娃们总能P出一张“非主流”色调调基于Ogre的DeferredShading(延迟渲染)的实现以及应用。

基于Ogre的DeferredShading(延迟渲染)的实现以及应用

    颜色控制基本算是所有技术中最简单的一项技术,但是却是非常实用,最早出自GPU精粹1。

结语

    往往一项图形技术的产生都是由感性思维到理性思维的转变过程,是感性和理性碰撞的结晶,如果你是一名理工科出身(尤其是计算机专业)的图形工作者,首先,图形学底子一定要扎实,这是你立足的根本。其次,你需要培养的是自身的审美能力和观察能力,适当的学习一下绘画和建模,这点让你在同行中出类拔萃。最后,找一家真正想把游戏做好的公司,能够给你一个施展才华的空间。

    图形固然重要,就像女人的外衣和化妆品,可以让一个游戏光鲜照人,但是确不能掩盖品质的恶劣低俗,如果美术的品质低下,再好的图形技术也无力回天。作为一个图形技术人员,应该做到与美术的交流力度大于程序,在表现层面上和美术人员进行讨论,在技术层面对美术人员进行指导,互相促进。另外补充一句,图形技术要用的恰到好处,不同的场景采用不同的图形解决方案,切忌不要滥用!

    终于完成了这篇文章,这算是对我这三年来所热衷的事业做一次总结吧,以后的我也将不再从事图形引擎的研发工作,上述技术也不是什么新鲜的东西,希望这篇文章和我的图形插件能帮助到更多的朋友。

如果你追求的是给玩家带来快乐的游戏而不是纯粹圈钱的软件,请联系我,邮箱:ketoohome@gmail.com

QQ:252436188


当前窗口设置为窗口化全屏(建议用热键调用) 当前窗口设置为窗口铺满,不覆盖任务栏(建议用热键调用) 本人是用Vstart的热键调用的,很方便 立即下载

相关推荐

c++多线程(1)------创建和管理线程td::thread

std::thread 是 C++11 标准库中用于创建和管理线程的核心类,定义在 <thread> 头文件中。它使得多线程编程变得简单、类型安全且跨平台。

jndingxin的专栏 647

基于Ogre的DeferredShading(延迟渲染)的实现以及应用

http://blog.sina.com.cn/s/blog_458f871201017i06.html

痞子龙3D编程 3204

Android Audio常见问题分析方法

分析audio dump,确定写给BT的data是否正常,MTK平台Android原生架构分析threadloop write节点,高通平台分析QXDM 1586节点,从dump确定问题大概位置。分析systrace 确定性能。AudioFocus状态(用于播放或者音量异常的情况)。AudioTrack是否正常创建bt连接是否正常通路异常,setMode,setSpeakerphoneOn等都会影响设备选择,sco调用流程是否正常。

一条老狗的博客 2387

Deferred Shading(延迟渲染)

1.Realtime lighting 常用方法 在游戏中的实时光照,一般有三种常用的办法, 1)Single-pass, multi-light(一遍渲染多个光源). For Each Object: Render object, apply all lighting in one shader. 在Single-Pass光照方法中,所有光照运算都...

weixin_30451709的博客 322

用nTopology五分钟生成三维Voronoi泡沫:节点式建模从原理到实操

多孔结构在增材制造与轻量化设计中应用广泛,其中Voronoi泡沫因其优异的缓冲吸能和比刚度表现备受关注。传统CAD建模需处理复杂布尔运算和网格修复,而隐式建模通过数学场描述几何体,将空间距离与密度分布转化为可视化节点,大幅降低操作门槛。nTopology基于场驱动与参数化逻辑,无需编写命令,即可实时调节胞元尺寸、壁厚及随机种子,快速生成可打印的泡沫实体。这种工作流适用于缓冲垫、医疗植入体、航空支架等场景,也为梯度密度结构与力学仿真验证提供了高效路径。本文围绕三维Voronoi泡沫的生成原理与节点操作流程,详

weixin_26767391的博客 148

Unity ECS 之 Entitas 的简单介绍,插件下载、导入,和简单使用(一篇文入门搞懂ECS是什么)

Unity ECS 之 Entitas 的简单介绍,插件下载、导入,和简单使用(一篇文入门搞懂ECS是什么) 目录 Unity ECS 之 Entitas 的简单介绍,插件下载、导入,和简单使用(一篇文入门搞懂ECS是什么) 一、简单介绍 二、一些专有项简介 Entity Context Group Collector Matcher System Feature 三、注意实现 四、ECS 的下载 Github 上下载 Unity Asset Store 中下载 U...

仙魁XAN 7779

Ogre 1.7后支持了延迟渲染

延迟渲染是先把场景信息(至少需要diffuse、position、normals)渲染到目标(target)上,然后再跟光线合成的一种渲染方式,Crytek最早开始把这个应用到游戏中。Ogre自1.7后,开始支持这种渲染方式。 ogre的相关链接在这里。 相关的概念: G-Buffer:就是我们上面提到的目标,在DirectX中,一般是一个surface。 SSAO

化石 1659

CentOS校园网Web Portal认证自动化实战

Web Portal认证是一种基于HTTP重定向与表单提交的强制网络准入机制,其原理是网关劫持未认证流量并跳转至登录页,验证通过后通过Cookie维持会话授权。该技术广泛应用于高校、机场、酒店等场景,核心价值在于细粒度访问控制与用户身份绑定。典型应用包括Linux命令行环境下的校园网接入、无GUI设备的自动联网、以及实验室集群的集中认证管理。本文聚焦CentOS系统,深入解析curl、cookie持久化、动态表单参数提取等关键技术环节,提供可调试、可复现、可工程化的完整认证流水线。

weixin_30522983的博客 264

Ogre中实现水的反射和折射

最近需要在研究水实现,在客户端中加入了水来测试,简单的实现水的折射、反射。备注:在OGRE1.7的例子Demo_Fresnel中已有展示。关键词:RTT Fresnel 实现方法:首先必须手动创建两个Texture,一个用于渲染反射、一个用于渲染折射。最后通过Fresnel作为权重,在refraction和reflection两张纹理颜色插值。 需要注意的:两次

希望写下会有更深的理解 2223

BUCK降压电路设计实战:从理论到PCB的完整指南

本文详细介绍了BUCK降压电路的设计实战,从基础原理到PCB布局的完整指南。通过关键部件选型、PCB布局黄金法则和调试技巧,帮助工程师高效设计稳定可靠的开关电源。特别针对电感、MOSFET和电容选型提供实用公式和避坑指南,并分享高温环境下的工程经验与测试方法。

weixin_33744141的博客 450

单细胞数据分析实战:用scDblFinder快速搞定异质性双细胞检测(附完整R代码)

本文详细介绍了如何使用scDblFinder工具在单细胞RNA测序数据中精准识别异质性双细胞。通过完整的R代码示例,从环境准备、数据加载到核心分析流程和结果可视化,帮助研究人员高效解决双细胞检测问题,提升单细胞数据分析的准确性。scDblFinder的集成算法和鲁棒性设计使其成为处理单细胞数据中技术噪音的理想选择。

weixin_29098117的博客 420

Deferred Shading

Deferred Shading到目前为止,本书中所使用的渲染方法都是forward rendering,本质上来说是指独立渲染场景中的每一个objects,对于每一个object都要使用lights,textures以及shadows计算最终的pixels。另外,我们还探讨了single-pass rendering(用于一个object的所有光照都在一个shader中进行计算)和multipas

3D编程之旅 3744

​苹果开发者账号推送证书配置详细指南​

推送证书的配置是iOS应用实现消息推送的核心步骤。通过生成证书、配置描述文件、集成到服务器三大环节,开发者可快速为App启用APNs服务。建议优先使用更灵活的APNs Auth Key替代传统证书,以减少维护成本。确保拥有有效的苹果开发者账号(个人/公司账号),年费已缴纳。

2325

由浅入深学习PBR的原理和实现

https://www.cnblogs.com/timlly/p/10631718.html?from=timeline&isappinstalled=0 非常详细的将PBR的东东。赞一个

小丢的专栏 2478

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

OGRE渲染引擎之光照、相机、阴影

本文翻译自OGRE 1.12.0 本教程将扩展在场景中使用Lights并使用它们投射阴影。 本教程的完整源代码(BasicTutorial2.cpp)可以在样本目录Samples / Tutorials中找到。 Note 有关如何设置Ogre项目并成功编译的说明,请参阅创建OGRE项目。 The OGRE Camera Class 相机是我们用来查看场景的对象。Ogre :: Came...

Estelle 1337

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Ogre光照

在Ogre下光照总共分三种,其实DX下也只有三种,1.是LT_SPOTLIGHT点光源,也就是相当于手电筒照射时的光,它需要设定内半径也就是强光照部分的角度,light->setSpotlightInnerAngle(Ogre::Degree(5.0f));和设定外半径的逐渐减少

chengpo的专栏 1102

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Directx11教程三十九之DefferedShading(延迟渲染)

这节教程是关于DeferredShading(延迟渲染)的,程序的结构如下:       看这个教程最好先掌握两样技术:(1) 2D Rendering D3D11教程七之2D渲染                                                             (2)RenderToTexture(渲染到纹理技术)D3D11教程十四之Rende...

qq_29523119的博客 3982

ogre 学习笔记 - Day 13

ogre 学习笔记 - Day 13

weixin_43859510的博客 564

ogre-next 学习笔记 - Day 6

ogre-next 学习笔记 - Day 6

weixin_43859510的博客 2938

ogre-next吃鸡笔记

本人使用的版本是ogre-next2.3 一、修复OgreSTBICodec.cpp 中decode()函数解码24位图片的bug 修复如下: Codec::DecodeResult STBIImageCodec::decode(DataStreamPtr& input) const { // Buffer stream into memory (TODO: override IO functions instead?) .........

yangchuangbao的博客 1146

【OpenGL】延迟渲染(Deferred Shading)技术详解

一、Deferred shading技术简介 Deferred shading是这样一种技术:将光照/渲染计算推迟到第二步进行计算。我们这样做的目的是为了避免多次(超过1次)渲染同一个像素。 其基本思想如下: 1、在第一步中,我们渲染场景,但是与通常情况下应用反射模型计算片断颜色不同的是,我们只是简单的将几何信息(位置坐标,法线向量,纹理坐标,反射系数等等)存储在中间缓冲区中,这样的缓冲区我...

mmdev 1272

Ogre着色方式和光照模型(shading mode vs lighting model)

(1) 着色方式shading  Ogre有三种着色方式,分别为shading flat/gouraud/phong。当动态光照打开时,该选项的作用是生成每个顶点的颜色,决定是否在该三角面上插值及如何插值。 Flat不进行插值,每个三角面的颜色都由该三角面的第一个顶点色决定; Gouraud对三角面上每个顶点颜色进行线性插值计算; Phong对三角面上的顶点法线进行插值,并以此决定每个像素

Augmented Reality & Computer Graphics 4055

文档:手册:1-4-0:3.1.2 渲染通路(Pass)

文档原址:http://ogre3d.cn/wiki/index.php?title=%E6%96%87%E6%A1%A3:%E6%89%8B%E5%86%8C:1-4-0:3.1.2_%E6%B8%B2%E6%9F%93%E9%80%9A%E8%B7%AF%EF%BC%88Pa

chu358177的专栏 993

一个简单实用的SSAO实现

全局照明(global illumination, GI)是一个计算机图形学术语, 它指的是所有表面之间相互作用的光照现象(光线来回跳动, 折射, 或者被遮挡), 例如: 渗色(color bleeding), 焦散(caustics), 和阴影. 很多情况下, GI这个术语代表的只是渗色和逼真的环境光照(ambient lighting). 直接照明– 光线直接来自光源– 对于今天的硬件来说已经非常容易计算, 但这对于GI并不成立, 因为我们需要收集场景中每个面的邻近面信息, 这样的复杂度很快就会失控

逍遥剑客 3万+

Ogre 界面

Mage小组 著Email: norman_chen@163.com  renwind@163.com QQ: 18725262http://www.173d8.comhttp://blog.youkuaiyun.com/pizi0475  界面 这里的界面是指菜单、HUD及提示信息框在内的综合体。基本概念Overlay将被渲染在“普通”场景内容之上的层。Overlay是那些将在主场景被渲染之后才

痞子龙3D编程 5349

OGRE Bloom全屏柔光

搜索了一下cg文件,才发现有这个文件, shader实现的bloom全屏柔光效果,有点朦胧,感觉没漩涡鸣的清晰啊 混了2次太模糊了.应该做成blur,囧 这fps掉得真快...     由于搜狐并没有提供合成器脚本,所以要我们自己代码实现合成器   我发出自己实现的源码,模糊版本: [cpp] view plaincopyprint? // bloom

痞子龙3D编程 2544
上一篇: View Transform 详解
下一篇: VS2010 编译boost1_56
凭谁问
博客等级 码龄15年 178粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值