资产和纹理搜索

插入资产(或纹理)的搜索始终相对于用于调用相关操作的规则文件。 这同样适用于导入的规则文件。 搜索顺序如下:

  1. 如果 filePath 为绝对工作空间路径(即开头为“/”),则不会执行搜索,filePath 必须与文件匹配。
  2. 尝试在规则文件所在的工程中相对于“资产”进行解析。
  3. 尝试在规则文件所在的工程中相对于根进行解析。

示例

标准用例为几何资产和图像文件存储在工程的资产文件夹中。 下面的示例显示了展开的文件夹结构:

资产文件夹已展开

下文摘录自对应的规则文件。 首先,在属性部分中设置一些文件路径;然后,将这些属性在规则中用于插入 obj 和 tif 文件。 请注意,必须传递相对于工程资产文件夹的完整路径。

...
// models
attr windowAsset        = "facade/windows/win.single.05.sashwindow.obj"
attr ledgeAsset         = "facade/ledges/ledge.02.twopart.obj" 
attr corniceAsset       = "facade/ledges/ledge.05.cornice_ledge_closed.obj"
attr modillionAsset     = "facade/ledges/ledge_modillion.03.for_cornice_ledge.obj"
attr windowOpeningAsset = "general/primitives/cube.nofrontnoback.notex.obj"
attr doorOpeningAsset   = "general/primitives/cube.leftrighttop.inw.obj"

// textures
attr roofTexture        = "roof/roof.tif"
attr wallTexture        = "facade/walls/wall.c.09.tif"
attr dirtmap            = "dirtmaps/dirtmap.16.tif"
attr doorTexture        = "facade/doors/tiles/1_shop_glass_grey.tif"
attr shopFrameAsset     = "facade/shopwindows/shopwin_frame.obj"
shopTexture(nr)         = "facade/shopwindows/shopwin_0" + nr + ".tif"
windowTexture(nr)       = "facade/windows/tiles/1_rollo_" + nr + "_brown.tif"

...

WindowAsset -->
	set(material.colormap, windowTexture(ceil(rand(7)))) i(windowAsset)
	set(material.specular.r, 0.5) 
 set(material.specular.g, 0.5) 
 set(material.specular.b, 0.5)
	set(material.shininess, 4)
...


在本主题中