NCF参数化建筑论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: syzmatrix
打印 上一主题 下一主题

[个人作品] Maya_power of displaement

[复制链接]
24m
 楼主| 发表于 2010-10-27 14:29:59 | 只看该作者
new shape with this expression
23m
发表于 2010-10-27 14:18:29 | 只看该作者
不大懂,还没有接触过玛雅
22m
 楼主| 发表于 2010-10-27 11:42:15 | 只看该作者
float $u = place2dTexture1.uCoord;
float $u1 = place2dTexture1.uCoord;
float $v = place2dTexture1.vCoord;

float $freq=16;
$u=$u + .5*$v;
float $u1 = $u1 - .5*$v;

float $r=1/(2*$freq);

float $t=fmod($u,(2*$r))-$r;
float $t3=fmod($u1,(2*$r))-$r;

float $t2=sqrt($r*$r-$t*$t);
float $t4=sqrt($r*$r-$t3*$t3);
displacementShader1.displacement=400*$t4*$t2;
21m
 楼主| 发表于 2010-10-27 11:41:49 | 只看该作者
我加了几行代码,做出了麻花大厦。
20m
发表于 2010-10-27 08:25:49 | 只看该作者
{:3_52:}学习了 感谢分享
19m
发表于 2010-10-26 22:51:50 | 只看该作者
楼主看来接触很早了~多来发帖分享啊~哈哈~
18m
发表于 2010-10-25 23:03:09 | 只看该作者
GH区游荡过来的表示不了解
17m
发表于 2010-10-25 21:53:59 | 只看该作者
感谢楼主的经验分享。
看过之后一身冷汗,不懂的东西太多了。{:3_46:}
做个造型还要学习这么多的东西啊。
16m
发表于 2010-10-25 20:04:57 | 只看该作者
这是玛雅做的啊
15m
发表于 2010-10-25 19:05:54 | 只看该作者
感谢lz教程 学习了
14m
 楼主| 发表于 2010-10-25 18:12:50 | 只看该作者
这个教程是我7年前写的,真是恍若隔世,发上来鼓励一下学习maya的同学。
13m
 楼主| 发表于 2010-10-25 18:10:14 | 只看该作者
附上场景文件,版本: Maya2011

test.ma

67.38 KB, 下载次数: 30, 下载积分: 照度 -1 lux

12m
 楼主| 发表于 2010-10-25 17:11:01 | 只看该作者
我重新渲染了一张8楼的图
11m
发表于 2010-10-25 16:19:50 | 只看该作者
{:3_57:}感谢楼主的热心讲解,8楼的黑图是?
10m
 楼主| 发表于 2010-10-25 11:23:19 | 只看该作者
最终效果如上图,希望你喜欢这个小教程,欢迎朋友们和我一起讨论。
9m
 楼主| 发表于 2010-10-25 11:22:25 | 只看该作者
怎么发上去有错误?
没办法,先写完。
可以看到我们基本实现了起伏效果,现在制作缠绕效果,缠绕效果的本质是在u方向产生一个偏移量,这个偏移量是由v值提供,只要令$u=$u+$v,你可以在$v前加一个系数来控制缠绕方向,这是最后的expression:
float $u = place2dTexture1.uCoord;
float $v = place2dTexture1.vCoord;
float $freq=16;
$u=$u+.5*$v;
float $r=1/(2*$freq);
float $t=fmod($u,(2*$r))-$r;
float $t2=sqrt($r*$r-$t*$t);
displacementShader1.displacement=10*$t2;
8m
 楼主| 发表于 2010-10-25 11:21:54 | 只看该作者
根据这些思想写下expression:
float $u = place2dTexture1.uCoord;
float $freq=16;
float $r=1/(2*$freq);
float $t=fmod($u,(2*$r))-$r;
float $t2=sqrt($r*$r-$t*$t);
displacementShader1.displacement=10*$t2;
7m
 楼主| 发表于 2010-10-25 11:21:25 | 只看该作者
ok,我们来分析我们想要的效果,它实际上是由两个效果组成的,一个在u方向的波浪一样的起伏效果,还有一个的缠绕效果。我们先来实现第一个效果,我们可以用周期性半圆来模拟这种效果,假设我们需要n个半圆,则每个半圆的半径为r=1/n。我们需要求出如图displace的值,很明显,在第一个半圆可以如图求出,其它的使用求余函数fmod。
6m
 楼主| 发表于 2010-10-25 11:21:09 | 只看该作者
好戏终于要开场了,准备好了吗?
先补充一点知识,每一个物体都有自己的uv坐标,它是用来决定纹理分布的,范围为0到1,圆柱的uv分布如下图,我们的shader描述将结合uv,先做一个place2dTexture节点以备后用。
5m
 楼主| 发表于 2010-10-25 11:20:42 | 只看该作者
双击我们的displacement shader,打开attribute editor,在displacement参数处按下右键,在弹出菜单中选create new expression。

小黑屋|手机版|NCF参数化建筑论坛 ( 浙ICP备2020044100号-2 )    辽公网安备21021102000973号

GMT+8, 2024-9-27 18:46 , Processed in 0.161418 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表