标签:monkey 投资 开发 时间 编辑 hlsl 匹配 指定 适合
http://blog.csdn.net/debugconsole/article/details/50905398
FX COMPOSER
其实编辑一个shader到debug它,有很多方法,很多方式,也有很多工具.
目前市面上,不管收费还是免费,名气最大的要数RenderMonkey和FX Composer. 一些用户还会选择shaderFX,还有些人会选择 notpad + 3dmax/maya.可以说每一种工具或者方式都对某一些shader来说很好很方便,但是对其他的shader来说很不好用甚至不可能.浏览了一下网络上的资料,发现对工具的讨论很少,自己在选择工具时候就曾经和迷惑,所以谈下经验,或者说我的经历,供读者参考.
但是本人精力,水平毕竟有限,不可能对所有的工具,以及用法做一一详细对比,只能是在使用过程中遇到的问题进行下简单的横向对比,即使如此,相信也能更好的帮助需要使用快速可视化shader编辑的同学了解自己所需,更好的选择适合自己的工具.下面开始说正题:
当初选FX Composer, 一是因为RenderMonkey到了1.82就没有再更新过.同时AMD易主,开发社区普遍流传的说法就是RM已经过时,不会出现新的版本.大家知道shader这个东西,很多是要配合硬件与技术更新的,如果你想玩玩新的特效,一款久不更新的工具会很别扭,本因是因为shdaer语法的变化,shader使用方式的变化等等.当然FX Composer并不是救世主,下面会谈具体原因,我用FX很简单的原因就是:个人喜好(要说明的是,FX也很久不更新了,所以为什么选择他,我只能归类为个人喜好了,呵呵.).不过还有另外一个原因,下面就来说:
同时用过RenderMonkey和FX的人一定能感受到,FX的脚本真是很好用,虽然Rendermokey把很多功能都提供到了UI,使你很方便的点几下按钮就能完成很多设置。但是,方便的同时意味着在灵活性上有所减弱。虽然FX的脚本语法在没接触过的人看来增加了学习曲线,但是一旦你真的愿意花时间去学,如果你有编程基础,一天之内,你就能较熟练的使用脚本语法来在FX上搭建你的shader了。
但是FX Composer在它本身上又体现了“人格分裂”,即它支持HLSL,也支持N家自己的COLLOADA fx,即cgFx。虽然说cg和HLSL很像,但毕竟有区别,具体到工具上就是:同样是FX Composer,用cg就能较好的使用FX本身提供的完整功能,但是你用HLSL,很多重要的工具你无法在FX Composer上使用。我不明白为什么这么设计,为了更好的宣传cg,传播cg而对HLSL进行的制衡么?只可惜N家就是这么设计的FX,用HLSL只能眼睁睁看着。如今的软件业,要投资精力的地方很多很多,一个人很难去用一种工具就去学习那个工具指定的整套规则,特别是用其他工具可替代,或者投资精力不值得。本人不喜欢cg,哪怕他跟HLSL有一点点不同,他也不能很好的匹配HLSL所有的场合。并且用FX的初衷就是玩HLSL,只不过不想每次自己都写代码去进行配置。说白了偷懒罢了,如今偷懒不成反而要花精力投资新工具,并且不是那么必要,我就果断跟cg说拜拜了。
这就导致FX出现了一个绝对的硬伤,一个古老但有用,几乎是个游戏都少不了的RTT,FX如果你用HLSL而不是cg,就无法使用。当然有些trick可以让你在FX那个viewer里显示出你要的东西,但是运行过程很多warning和error,并且过程不连贯。完全就不是如cg那种支持的流畅与perfect。这种感觉就好像你用螺丝刀的刀柄当锤子去敲钉子,钉子小并且手头没工具倒还可以,倘若遇到大钉子,实在是无能为力。这也是导致我写这篇文章,我去了解RenderMonkey,以及我最终的想法这一系列的引子,各种迷惑,会在后续文章中一一解开。
当然,只是一个RTT无伤大雅,能用FX做的事情还很多,甚至跟RenderMonkey同类型的功能一样好。
关于这个RTT,RenderMonkey就可以很好的实现,很顺畅的展示。shaderFX我没用过,在他人气提升之前我也不打算去了解。另外要说的是,用notpad+3dmax的方法对我来说不是很实用,而且3dmax也有他的硬伤。但是由于我本身是个程序员,不是artist,所以没用过3dmax也不好说什么,就此略过。我不支持作为一个程序员不去尽量横向扩展知识,但是如果单纯为了横向扩展而扩展,就没必要了。工具毕竟是工具,要使用它,它才能给你带来价值。不然你把一个工具研究再透彻,不去用它,撇去兴趣爱好不谈,纯碎浪费时间 >_<!!
基于以上我们可以看到,其实玩shader,不同的人有不同的玩法,没有完美切省时省力的工具与方法存在。同时不得不惋惜的说,通过对FX脚本语法的朝夕相处,真的很喜欢FX,但是有些技术上能达到却可能由于某些原因它没有去做,导致这个本该更美好的工具不是那么顺手,只能让人唏嘘不已
RENDERMONKEY
用了一段rm,它的好处自然是简单易用。基本设置全都可直接通过鼠标搞定。
rm对于帧渲染来说很方便,比如RTT,还有基于RTT的衍生技术。但是一个个pass着实让人很眼花缭乱。
但是fx在场景展示上此时显得更加强大与方便。比如说光源位置,rm可以通过设定值来调整光源位置,但是本质是基于数据的。对用户而言并不友好。而fx的光源,就如普通DDC工具一样可以灵活的在空间中所见即所得的拖动。并且镜头的移动比rm也更灵活。
rm不支持shader指令调试,fx可以像一般代码编辑器一样调试shader。同时发现在rm中,clamp这句hlsl代码有bug。
通过使用两个工具,我发现如果你想省事,方便做一些实验与原型,这两款工具都必不可少。
下面就总结下使用建议:
对于偏重基于图像的渲染方面,用rendermonkey比较方便。
对于偏重3D场景与灯光照射来说,fx与它的脚本来说更适合你快速及时的调整。
如果有一个 rm link fx的工具该多好?
不过这个工具不会出现也没有价值再出现,因为rm的停止开发与更新已是事实,而fx停止更新也很久,可以断言fx和rm终将消失在历史之中。我们没必要觉得XX停止了,就不愿意去用它了,觉得它out了。其实在用这两款工具的时候,我们只是在利用工具更新我们的渲染知识,获得一种快速的体验。而非工具本身。所以个人认为,虽然这两款工具过时了,但是依旧非常值得您去尝试,去使用的。
当然又更加复杂的解决方案:就是用您自己的引擎,直接构建自己的场景与渲染方式。不过显然如果你没有自己的引擎,用这两款工具能给你的学习带来非凡的价值。引擎毕竟不是一段小代码,一个简单的程序,是一个系统。单就一个图形引擎,实现起来困难也比较大。所以,用工具快速实践想法不失为一种好的替代方案。技术掌握后,等到自己有能力构建自己引擎,那么此时那些你曾经用工具学习的知识,也很快的可以构建进引擎中。
ps:两种工具的学习难度都不高,没有想象中那么高深。非常推荐读者都试一下,并且在适当的场合用合适的工具,为您的学习与工作加速
FX Composer VS RenderMonkey 【转】
标签:monkey 投资 开发 时间 编辑 hlsl 匹配 指定 适合
原文地址:http://www.cnblogs.com/mazhenyu/p/6524908.html