码迷,mamicode.com
首页 > 其他好文 > 详细

开拓思维,如何用编程思想进行三维建模(2)

时间:2016-04-09 18:42:01      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

接着开拓思维,如何用编程思想进行三维建模(1)

i.这时候已经有了初步的样式了吧,接下来我们做一些更炫的东西。窗户都一样,我们可不可以进行随机变换呢?这时FileRandom()函数出场

//声明随机文件  *相当于模糊匹配,

winName=fileRandom("1409020150_15553.obj/sash_window_*.jpg")

Window-->

setupProjection(0,scope.xy, 1, 1)

projectUV(0)//winName图片

texture(winName)

 

技术分享

j.你现在可能会说,都是是贴图,能不能不要这么low,好吧我们可以加一些三维的窗户

Window-->

setupProjection(0,scope.xy, 1, 1)//projectUV(0)texture(winName)//i()替换函数 用三维模型替换

i("1409020150_15553.obj/sash_window.obj")

技术分享

k.建筑物只有方形吗?其实我们也以到入三维模型替换主体,改变建筑物的外观(比如柱形)

Building-->

//i() 柱体替换Building

i("1409020150_15553.obj/cyl.obj")

comp(f) {top : Roof|side:Wall }

技术分享

l.难道我们写的建筑只能是静态的吗?其实我们可以把上面写死的长度设成变量属性的,这样我们就可以随意改变啦!!!(把所有代码贴再一遍)

version "2014.0"

//声明随机数限制Height高度

@Range(20,100)

attr Hight=20

//楼层高

attr Floor_Height=3

/墙的宽度

attr Wallside=0.5

//窗户宽度

attr winSize=2

//开始规则

@StartRule

lot-->

extrude(Hight)Building

Building-->

i("1409020150_15553.obj/cyl.obj")

comp(f) {top : Roof|side:Wall }

 

Roof-->

setupProjection(0,scope.xy, 1, 1)

projectUV(0)

texture("/ESRI.lib/assets/Roofs/Flat/flatRoof_10.jpg")

Wall-->

 split(y){~Floor_Height:Floor}*

  color(1,0,0)

Floor-->

split(x){Wallside:wallside|

{~winSize:Tile|Wallside:wallside}*}

Tile-->

split(y){Wallside:wallside|

{~winSize:Window|Wallside:wallside}}

 

winName=fileRandom("1409020150_15553.obj/sash_window_*.jpg")

Window-->

setupProjection(0,scope.xy, 1, 1)

projectUV(0)texture(winName)//i("1409020150_15553.obj/sash_window.obj")

wallside-->

setupProjection(0,scope.xy, 1, 1)

projectUV(0)

texture("/ganzhou/assets/wall_textures/stone/wall_stone_4.jpg")

技术分享

 

好了到现在差不多可以实现建筑物的生成了,虽然不怎么好看!!!!我们最后再看一下建筑物的结构图

 技术分享

看一下它基于规则批量生成模型,选择一些地块拖入规格,如下

 技术分享

好了我要说的就是这些,不得不佩服外国人的想法,这么容易就可以建模,而且可以导出在浏览器上查看,最后分享我做的几个建筑和我参加他们公司举办的大学生竞赛视频(初学只得一个优胜奖),有兴趣的可以交流一下,

 技术分享技术分享技术分享技术分享

 

视频路径:http://v.youku.com/v_show/id_XMTQwMjAzMDEyMA==.html

开拓思维,如何用编程思想进行三维建模(2)

标签:

原文地址:http://www.cnblogs.com/ATtuing/p/5371879.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!