| 域名空间 下载中心 社区论坛 信息公告 my小屋 |
![]() |
联系我们 设为首页 加入收藏 |
|
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿 论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图 专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版 社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务 |
| 新版上线![旧版] | |||||
注:打开慢时请稍等
maya 硬件渲染粒子与软件渲染元素结合http://www.iyit.net 日期:2006-6-7 10:19:34 来源: 点击: |
v. 创建尘土粒子外观 sprites- 调整 sprite scale 和 twist 效果开始合成一起,但是还有改进的余地。当创建一个 sprite 基础上的效果的时候, sprites 顶部每个分层都赋予它最终效果。利用不同的缩放值和扭曲值并在此基础上动画,可添加角色到模拟。 为粒子物体添加以下的动力学属性,方法和你添加 spritnumpp 属性一样: spritescalexpp spritescaleypp spritetwistpp 在 add attibute 窗口 new 栏目里,保留 float,per particle 属性添加以下属性: randxpp randypp randtwistpp spritetwistmultpp spritescalemultpp 给 spritetwistmultpp 和 spritescalemultpp 贴上凹凸贴图,重新命名这些贴图,名字要能正确反映他们要连接的属性,可以命名为 spritetwistramp , spritescaleramp 等等。反过来,于 spritetwistmultpp 有联系的 rump 贴图,底端设为 black ,顶端设为 white 。 打开粒子物体需要的 creation expression 并键入: //generate random numbers for x and x // float $randx=rand(0.3,1.3) float $randy=rand(0.8,1.2) //store a random number for x and y // // randxpp=$randx randypp=$randy //set spritescalexpp and spriteypp // spritescalexpp=0 spritescaleypp=0 //set randtwistpp // randtwistpp=rand(-180,180) 每个粒子 x,y,twist 的数值都是任意指派的,这些值会赋予每个粒子独特的特征,并会被用在 runtime expression 里。既然我们用 rand 功能生成值并且边缘功能返回结果总是不一样,那么,我们就在单粒子属性里保存这些值,以便以后使用。 用 rump 给 spritetwistmultpp 和 spritescalemultpp 贴图,也可将它们作为增效器,并给我们一个插值,但是,能否给我们一个 interpolation ,那就要看粒子的年龄如何。可以用常规表达式控制扭曲和放缩值,但是在控制基于时间的属性改变上,增加一个由 rump 控制的乘数,会给我们更大的控制灵活性。 为什么用 0 值初始化 spritescaleypp 和 spritescaleypp ?因为 cg/image/ 的一个 bug , rump 在 creation 上没有正确估算,产生了不可预料的结果。 打开粒子物体需要的 runtime expression 并键入: //set spritescalexpp and spritescaleypp // spritescalexpp =spritescalex* spritescalemultpp*randxpp; spritescaleypp=spritexcaley*spritescalemultpp*randypp*randxpp 为 sprite 渲染类型创建默认属性时, cg/image/ 添加了一个 spritescalex, spritescaley 和 spritetwist 属性。如果没有这些属性的单粒子版本,比如 spritescalexpp , cg/image/ 就会用 scalar 属性代替,例如 spritescale 。既然有了这些属性的单粒子版本,缩放版本就被忽略了。我不忽略它们,在全局增效器中,我习惯用他们作为表达式的一部分。用一个你众所周知的属性名字,这个名字不仅用在保存创建一个新属性阶段(作为增效器),也展示给使用者一个属性——具有相似的方式相似的功能。在通道盒里改变 spritescalex 或 spritescaley ,这会改变粒子总值。 在下面一行中: spritescalexpp= spritescaley* spritescalemultpp*randypp*randxpp; spritescaleypp 和 spritescalexpp 的值大体相当,回到 creation expression, randypp ,随意初始化一个值—— 0.8 至 1.2 之间,这会导致 sprite 在 x 轴成矩形的—— +/-20% 。 添加下面几行到 runtime expression : //spritetwistpp // spritetwistpp+= spritetwistmultpp*sign(spritetwistpp)* spritetwist; 如果值是正的,用 sign 功能返回 1 ;如果值是负的,用 sign 功能返回 -1 。 spritetwist 属性是用用默认 sprite 属性创建的,在这种情况下,我们添加它的值到当前 sprite 的 twist 上,引起 sprite 每帧旋转。利用 spritetwistmultpp ,你可以改变每个 sprite twist 的速率, sprite 越大,自转越慢。 此时,你可以开始回放场景,交互式地调整被当作 spritetwist, spritescalex 和 spritesclaey 属性创建的 rmaps 值。该阶段有很大的扭曲空间,要得到 sprites 正确的缩放和扭曲值需要花点时间,但是,利用 ramp 贴图,就可以创建一些非常有趣的效果。 打开尘土粒子属性编辑器,在 add dynamic attribute 栏点击 opacity 按钮。 1 、为透明度创建 per object 和 per particle 属性 2 、点击 color 按钮,为色彩添加 per particle 属性 3 、点击 general 按钮,作为 float,per particle 添加属性: intensitypp opacityorgpp opacitymultpp 4 、用 ramp 贴图为 opacitymulpp 贴图,正确重新命名。 5 、在 creation 表达式中键入 //opacitypp // opacityorgpp=rand(0.1,0.4) opacitypp=0 用相对较低的值初始化透明度,该值保存在 opacityorgpp 里, runtime 表达式要用到它。 既然 spritescalexpp 和 spritescaleypp 属性已经设置 0 ,当 sprite 缩放到 0 并无法看见时,就没有必要初始化 opacitypp 一个值。
编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部] 上一篇:maya mel基础教程 下一篇:maya mental ray 的final gathering| 转载请注明来源:www.iyit.net 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。 |
| 最新更新 | 热点排行 | 推荐新闻 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| 友情链接 | ||||||
| 设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接 |
| |||||||