- 1 – 左
- 2 – 右
- 3 – 顶部(旋转 180 度)
- 4 – 底部(旋转 180 度)
- 5 – 正面。对于内部立方体贴图,此侧应为黑色。
- 6 – 远墙。
The current area of a single reflection |
The desired area of a single reflection |
|---|
为此,请使用参数`script:t="contortion_tiling=1,2,1,1"`,其中:
- 第一个组件控制扭曲的水平平铺。
- 第二个组件控制扭曲的垂直平铺。
- 第三个组件设置最左侧扭曲图块的宽度(作为窗口的分数)。
Standard mapping |
Reduced mapping |
|---|
我们需要证明单个房间位于三个独立的窗户后面。使用默认映射时,您最终会得到三个窗口,每个窗口都显示自己的房间。通过拆分映射,您可以获得一个通过所有三个窗口可见的单个大房间。
Standard mapping |
Split mapping |
|---|
在前面的示例中,房间变成了一个巨大的机库,因为我们按比例减少了窗户映射。
为避免这种情况,请执行以下作:
1. 不按比例缩放映射。
2. 使用`room_size=2, 1, 0, 0`参数补偿非比例映射。
Split mapping |
Compensated mapping |
|---|
```{note}
默认情况下,我们使用此参数来强调几何图形的比例 - 如果宽度是高度的两倍,则设置 `room_size=2, 1`。但是,在我们的示例中,几何图形是正方形的,这意味着参数应为 `room_size=1,1`。但是我们将映射的宽度减小到大约高度的一半,因此我们通过将宽度设置为`2`和高度设置为`1`来进行补偿。在这种情况下,较小的映射端对应于较大的参数值。
```
### 单个窗口中的随机旋转
我们有一个用于向平铺立方体贴图添加随机性的参数:`script:t="tile=1, 1, 1, 0"`。当您有一个较大的窗口区域并在其中按程序平铺多个房间时,此选项将起作用。但是,通常情况下,每个窗口都是单独的几何体。出现两种主要情况:
- 每个窗口都是单个`.dag`中的单独几何体。
- 每个窗口都是一个单独的`.dag`由合成放置在建筑物上。
让我们考虑这两种情况。
#### 窗口作为 .dag 中的单独几何体
默认情况下,在启用窗口和随机性的情况下导出`.dag`不会显示任何差异 - 所有窗口都将以相同的方式映射。但是,当对象在地图上移动时,映射将移动,但会均匀移动。
One object |
A composite of three objects |
|---|
随机性有效,但它有缺陷——一切都太相似了。要解决此问题,您需要手动调整每个窗口的映射。相同的映射位置越少,您实现的随机性就越高。
在垂直和水平方向上调整映射。这可以通过插件按程序完成;关键是将映射保持在纹理 “cells” 的边界内。
```{note}
最好垂直移动相邻窗口,而不是水平移动相邻窗口。
这提高了随机性效果。
```
One object |
A composite of three objects |
|---|
这里的差异可能并不明显(立方体贴图太均匀),但每个部分的所有内容都是随机旋转的。让我们替换立方体贴图以获得更好的可见性。
#### 窗口作为单独的 .dag,由合成放置
尽管情况不同,但解决方案保持不变。
在前一种情况下,在标准映射上启用随机性以分组方式工作 - 当对象移动时,所有窗口同时更改映射(因为窗口是一个大`.dag` 的一部分)。在这种情况下,同样的事情会发生,但发生在单个窗口上。窗口的放置和映射更加频繁。(让我们提前设置一个带有窗帘的立方体贴图,以便更好地看到差异。
One object |
A composite of three objects |
|---|
请注意,窗口具有相同的随机性,并且相对于零的偏移相同(底部的中心窗口)。(例外:左中间的窗口 - 因为一些 “魔法”)。
要避免这种情况,您可以:
- 将随机性值设置为不同的 **奇数** (它不适用于偶数)。例如,将其设置为 `3` (`script:t="tile=1, 1, 3, 0"`):