Cityengine教程建筑物贴纹理_第1页
Cityengine教程建筑物贴纹理_第2页
Cityengine教程建筑物贴纹理_第3页
Cityengine教程建筑物贴纹理_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——Cityengine教程建筑物贴纹理[Cityengine教程]CityEngine建模例如教程6:BasicShapeGrammar之Part2:简单建筑物贴纹理(有图)

本节内容开始对之前构建的建筑贴上纹理。使用的规则是在上一节的基础上进行修改。也是在学习中,内容中如有不对的地方,欢迎大家指正。

1.开始贴纹理之前,先在规则的最前面对要使用的纹理进行定义。//textures

frontdoor_tex=\wall_tex=\dirt_tex=\roof_tex=\

由于要使用的窗户的纹理有9种不同的纹理,这些纹理存放在assets/fa?ade文件夹中。在使用的时候,我们这里定义随机获取其中一个窗户纹理,这样窗户的纹理就是随机的了。

randomWindowTexture

fileRandom(\2.为建筑物的正面和侧面定义纹理Frontfacade-->

setupProjection(0,scope.xy1.5,1,1)

=

setupProjection(2,scope.xy,scope.sx,scope.sy)

split(y){groundfloor_height:Groundfloor|{~floor_height:Floor}*}Sidefacade-->

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

setupProjection(2,scope.xy,scope.sx,scope.sy)split(y){groundfloor_height:Floor|{~floor_height:Floor}*}

添加红色部分的代码,setupProjection()定义面在scope的xy平面使用color和dirt图片(由通道0和通道2代表)。在使用colormap时,纹理图片将以1.5m×1m进行重复贴模。而使用dirtmap时,将会在scope的x、y方向平铺。其中setupProjection()命令有以下几种:

setupProjection(uvSet,axesSelector,texWidth,texHeight)setupProjection(uvSet,axesSelector,texWidth,texHeight,widthOrigin,heightOrigin)

setupProjection(uvSet,axesSelector,texWidth,texHeight,widthOrigin,heightOrigin,uwFactor)(1)uvset代表的是不同的纹理图层:uv-setTextureLayer0colormap1bumpmap

2dirtmap3specularmap4opacitymap5normalmap

(2)axesSelector定义哪个轴分别代表u和v轴,可选的参数有:

scope.xy,scope.xz,scope.yx,scope.yz,scope.zx,scope.zy以scope的轴定义

world.xy,world.xz,world.yx,world.yz,world.zx,world.zy以world的轴定义

(3)texWidth和texHeight分别代表纹理的宽度和长度。假使值小于0,则认为可以对纹理做镜像显示,~符号表示值大小可以浮动,‘符号表示相对值。

(4)widthOrigin和heightOrigin分别代表距离u方向和v方向的偏移

(5)uwFactor设置w轴值相对于u轴的系数,默认为03.添加Roof规则Roof-->

setupProjection(0,scope.xy,scope.sx,scope.sy)texture(roof_tex)projectUV(0)

其中projectUV()命令含义如下:

命令:projectUV(uvSet)指定纹理应用于哪个uvset。4.为窗户和门指定纹理:Window-->s('1,'1,0.4)t(0,0,-0.25)

texture(randomWindowTexture)i(window_asset)Door-->s('1,'1,0.1)t(0,0,-0.5)

texture(frontdoor_tex)i(\

5.定义Wall和SolidWall的纹理Wall-->color(wallColor)texture(wall_tex)

set(material.dirtmap,dirt_tex)projectUV(0)projectUV(2)SolidWall-->color(wallColor)s('1,'1,0.4)

t(0,0,-0.4)texture(wall_tex)

set(material.dirtmap,dirt_tex)i(\projectUV(0)projectUV(2)

为Wall和SolidWall定义使用的纹理,使用set()命令定义在material.dirtmap属性,使用dirt_tex纹理。然后定义了将纹理贴在color和dirt通道。set(attribute,boolvalue)set(attribute,floatvalue)set(attribute,str

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论