UDN
Search public documentation:
ProceduralBuildingsKR
English Translation
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
프로시저럴 빌딩 (Procedural Building)
문서 변경사항: James Golding, Joshua Marlow 작성 및 수정. 홍성진 번역.
개요
빌딩 정의하기
빌딩 그룹
모양이 단순하지 않은 건물을 작업할 때, 보통 볼륨을 여럿 사용하게 됩니다. 하지만 성능 측면에서는 이 볼륨들을 하나로 묶는 것이 좋습니다. 하나의 볼륨을 'Base' 볼륨으로 선택하고 난 후, 'Base' 속성을 사용하여 다른 볼륨을 거기에 붙이는 방법이 있습니다. 어태치먼트 에디터를 사용하거나, 맥락 메뉴의 'ProcBuilding -> Group Buildings' 옵션을 사용하면 훨씬 쉽습니다. 에디터 툴바의 '프리팹 잠금' 버튼(P자)도 전체 프록빌딩 '그룹'을 선택할지 아니면 그룹에서 개별 프록빌딩을 선택할지 선택하는데 사용합니다. 그룹 안의 'Base' 프록빌딩 볼륨은 와이어프레임이 노란색이 아닌 연녹색으로 그려지며, 'ProcBuilding -> Select Base Building'을 통해 빠르게 선택할 수 있습니다. Base 빌딩의 룰셋 만 설정하면, 그에 딸린 건물도 같이 설정됩니다. 필요에 의해 딸린 프록빌딩 볼륨에 이 설정을 따로 하여, 같은 프록빌딩 그룹 내의 일부분만 바꿀 수도 있습니다. 주의! 단일 건물 '그룹'에 사용된 모든 메시는 'Base' 프록빌딩 볼륨 소속이므로, 에디터에서 선택하면 해당 볼륨이 선택됩니다.빌딩 속성
프록빌딩 볼륨의 속성은 아래와 같으며, 자세한 설명은 이 문서에 추후 기술합니다.Ruleset (룰셋) | 이 볼륨에 적용할 ProcBuildingRuleset |
bGenerateRoofMesh (지붕 메시 생성여부) | 이 건물에 지붕 폴리곤을 만들지 |
bGenerateFloorMesh (바닥 메시 생성여부) | 이 건물에 바닥 폴리곤을 만들지 |
bApplyRulesToRoof (지붕에 룰 적용여부) | 룰셋이 건물의 벽뿐 아니라 지붕에도 해당되는지 |
bApplyRulesToFloor (바닥에 룰 적용여부) | 룰셋이 건물의 벽뿐 아니라 바닥에도 해당되는지 |
bSplitWallsAtRoofLevels (지붕 레벨에 벽 분할여부) | 전체 건물 그룹을 각 지붕 레벨에서 수평으로 분할시킬지 |
bSplitWallsAtWallEdges (벽 에지에 벽 분할여부) | 건물 면이 다른 면과 교차할 때 수직으로 분할시킬지 |
SimpleMeshMassiveLODDistance (단순 메시 대규모 LOD 거리) | 건물의 low-LOD 버전 트랜지션을 위해 얼마나 멀리 가야할 지 |
RenderToTexturePullBackAmount (렌더-투-텍스처 후퇴량) | LOD용 렌더-투-텍스처를 생성할 때, 건물(과 클립 디테일)에서 얼마나 멀리 후퇴시킬지 |
RoofLightmapRes (지붕 라이트맵 해상도) | 건물 지붕에 사용할 라이팅 해상도 |
NonRectWallLightmapRes (비사각벽 라이트맵 해상도) | 비사각형 벽 폴리곤에 사용할 라이팅 해상도 |
LODRenderToTextureScale (LOD 렌더-투-텍스처 스케일) | LOD 렌더-투-텍스처의 해상도 조절 |
BuildingMaterialParams (빌딩 머티리얼 파람) | 특정 건물의 메시에 적용된 머티리얼 인스턴스에 설정된 추가 파라미터. 벽을 착색하는데 사용할 수 있습니다. |
bBuildingBrushCollision (빌딩 브러시 충돌여부) | 건물 볼륨 자체에 충돌(콜리전)이 가능한지 |
룰셋
- 스코프를 더 잘게 쪼개거나
- 스코프의 공간을 차지하는 메시를 놓거나
룰셋 속성
(콘텐츠 브라우저를 사용하는 일반적인 방법으로) 새로운 룰셋을 생성하면, 파사드에서 열 수 있습니다. 다른 룰 노드를 선택하지 않은 상태라면 속성 창에는 룰셋 자체의 속성이 나타납니다:DefaultRoofMaterial (디폴트 지붕 머티리얼) | 건물의 지붕 폴리곤에 적용된 머티리얼 |
DefaultFloorMaterial (디폴트 바닥 머티리얼) | 건물의 바닥 폴리곤에 적용된 머티리얼 |
DefaultNonRectWallMaterial (디폴트 비사각벽 머티리얼) | 벽 스코프 주위의 구멍을 메꿀 폴리곤에 사용된 머티리얼 |
RoofZOffset (지붕 Z 오프셋) | Z축을 따라 지붕(전체 건물의 윗면) 폴리곤에 적용된 오프셋. 주의! 보통 RoofEdgeScopeRaise (지붕 에지 스코프 올리기)가 지붕 주변의 벽을 만들기에는 더 좋습니다. |
NotRoofZOffset (지붕이외 Z 오프셋) | Z축을 따라 (전체 건물 윗면 외 다른 볼륨의) 지붕 폴리곤에 적용된 오프셋. 주의! RoofEdgeScopeRaise (지붕 에지 스코프 올리기)가 지붕 주변의 벽을 만들기에는 더 좋습니다. |
FloorZOffset (바닥 Z 오프셋) | Z축을 따라 바닥(전체 건물의 밑면) 폴리곤에 적용된 오프셋. |
NotFloorZOffset (바닥이외 Z 오프셋) | Z축을 따라 (전체 건물 밑면 외 다른 볼륨의) 바닥 폴리곤에 적용된 오프셋. |
RoofPolyInset (지붕 폴리 인셋) | 지붕 폴리곤의 버텍스를 얼마나 꺼들일 지 |
FloorPolyInset (바닥 폴리 인셋) | 바닥 폴리곤의 버텍스를 얼마나 꺼들일 지 |
BuildingLODSpecular (빌딩 LOD 스페큘러) | 건물 low-LOD 버전의 전체 반사면을 조절 |
RoofEdgeScopeRaise (지붕 에지 스코프 올리기) | 지붕에 닿은 스코프를 약간 늘여서, 건물의 지붕 주변에 낮은 벽을 에두름 |
LODCubemap (LOD 큐브맵) | 건물의 low-LOD 버전상의 큐브맵 지역(보통 유리)에 사용할 큐브맵 텍스처 |
bLODOnlyRoof (지붕만 LOD 여부) | 참이면 지붕 폴리곤은 건물의 low-LOD 버전용으로만 생성 |
메시 룰
Mesh Rule(메시 룰)은 전달된 스코프의 크기와 위치를 사용하여 건물에 메시를 실제로 추가하는 것으로, 정말 중요한 룰입니다. 메시는 Z가 위, X가 오른쪽이 될 수 있도록 좌하단 코너가 기준이 되게 작성해야 합니다. 메시가 차지할 공간이 얼마나 될 지도 정해야 합니다. 다음 이 방법으로 그 공간을 채울 메시의 크기를 조절할 수 있습니다. (울타리나 테두리와 같이) 전달된 스코프 지역 밖으로 뻗어나가는 것들도 만들 수 있습니다. 각 메시 노드는 BuildingMeshes (빌딩 메시)라 불리는 특정한 스태틱 메시 배열을 지원하며, 목록에서 임의로 선택됩니다. 배열의 각 메시에 대해 가능한 세팅은 다음과 같습니다.Mesh (메시) | 사용할 스태틱 메시 |
DimX (X차원) | 메시의 X 차원 (폭) |
DimZ (Z차원) | 메시의 Z 차원 (높이) |
Chance (확률) | 배열에서 이 메시가 선택될 확률 |
Translation (옮기기) | 메시를 놓을 때 적용할 옮기기( 또는 옮기기 범위) 옵션 |
Rotation (회전) | 메시를 놓을 때 적용할 회전( 또는 회전 반경) 옵션 (도 단위) |
bMeshScaleTranslation (메시 옮기기 스케일 여부) | 참이면 메시에 적용된 다른 스케일 비율에 맞춰 옮기기를 적용 |
bOverrideMeshLightMapRes (메시 라이트맵 해상도 덮어쓰기 여부) | 참이면 메시에 설정된 해상도 대신 덮어쓴 메시 라이트맵 해상도를 사용 |
OverriddenMeshLightMapRes (덮어쓴 메시 라이트맵 해상도) | 메시 라이트맵 해상도 덮어쓰기 여부가 참인 경우, 이 메시의 라이팅에 사용할 해상도 |
SectionOverrides (섹션 덮어쓰기) | 이 메시의 각 부분에 대해 무작위 대체물로 사용될 머티리얼의 범위를 지정 |
오클루전 테스트
메시 룰이 수행하는 또 다른 중요한 기능은, 전달된 스코프가 건물의 다른 부분에 가려지는지(occluded) 검사하는 것입니다. 아래 그림을 보십시오: 이와 같이 창문이 건물의 지붕에 가려져 있어 보기에 좋지 않습니다. 메시 룰은 스코프가 가려졌는지, 일부분만 가려졌는지, 아니면 가려지지 않았는지를 결정할 수 있습니다. (건물의 다른 부분 속에 전체가 들어간 것과 같이) 완전히 가려진 경우, 아무 메시도 추가되지 않습니다. 가려지지 않았다면, BuildingMeshes (빌딩 메시) 배열에 지정된 메시 중 하나가 선택됩니다. (위 예와 같이) 일부분 가려진 경우, PartialOccludedBuildingMesh (부분 가려진 빌딩 메시) 옵션에 지정된 메시가 대신 사용됩니다. 원한다면 bDoOcclusionTest (오클루전 테스트 수행여부) 옵션을 거짓으로 설정하여 이 가려짐 검사 기능을 끌 수 있으며, 항상 BuildingsMeshes (빌딩 메시) 배열의 메시가 추가됩니다. 가려짐 검사는 스코프 코너 바로 안쪽 4개의 점을 사용하여 수행함을 염두에 두시기 바랍니다.콜리전
기본적으로 프록빌딩의 일부로 사용된 메시에는 (0규모 무기 충돌만 있을 뿐) 0규모 이외의 플레이어 충돌은 없습니다. 플레이어 충돌은 (블로킹 볼륨 같은) 볼륨 자체에 대해서만 일어나므로, 다음과 같은 장점이 있습니다:- 콜리전이 부드럽고 빠릅니다.
- 프록빌딩 룰셋이 변경되어도 콜리전은 바뀌지 않습니다.
반복 룰
Repeat Rule(반복 룰)은 스코프를 지정하여 한 축을 따라 여러 개의 스코프로 분산시키는 룰입니다. 먼저 RepeatAxis (반복 축) 옵션을 사용하여 (X나 Z)축을 선택하면, 해당 축을 따라 동일한 크기의 조각으로 분산시킵니다. RepeatMaxSize (반복 최대 크기)에 정한 크기 이상의 조각이 나오지 않도록 가급적 많은 부분으로 나눕니다. 이를 통해 건물 크기에 따라 새 스코프를 다양하게 만들어 냅니다. 아래는 Z축을 따라서는 큰 표면을 '바닥'의 연속으로 분산하는 반복 룰을 사용하고, X축을 따라서는 각 바닥을 창 스코프의 연속으로 분산하는 반복 룰을 사용한 뒤, 실제로 창 메시를 놓는 메시 룰을 사용한 예입니다.분할 룰
Split Rule(분할 룰)은 스코프를 지정하여 SplitAxis (분할 축)에 지정된 값을 기준으로 작은 스코프로 분산시킨다는 점에서 반복 룰과 비슷합니다. 그러나 반복 룰은 입력된 스코프 크기에 따라 다양한 수의 스코프를 생성하는 반면, 분할 룰은 (입력값이 너무 작지 않은 한) 항상 동일한 수의 출력 스코프를 생성합니다. 스코프 분할 방법을 정하려면, 디자이너가 SplitSetup (분할 셋업) 배열을 채워야 합니다. 배열의 각 항목은 하나의 출력 스코프와 동시에 룰 노드의 추가 출력 커넥터로 나타납니다. 이를 통해 스코프의 각 부분에 대해 다른 일을 할 수 있습니다. 다음은 배열의 각 항목에 대한 속성입니다:bFixSize (크기 고정여부) | 참이면 이 출력은 FixedSize (고정 크기)로 고정됩니다. 거짓이면 입력 스코프와 마찬가지로 확장됩니다. |
FixedSize (고정 크기) | 고정 크기여부가 참이면 사용되며, 출력 스코프의 크기를 정확히 정합니다. |
ExpandRatio (비율 확장) | 여러 항목의 bFixSize (크기 고정여부)값이 거짓일 때, 확장 방법을 조절합니다. 수가 커지면 입력값이 커 질수록 더 길게 늘어나게 됩니다. |
SplitName (분할 이름) | 룰 노드에 생성된 출력물에 이름을 짓습니다. |
얼터넛 룰
건물의 중간 중간 다른 기능이 보이더더라도, 항상 같은 기능으로 시작되거나 끝납니다. 이는 반복이나 분할 룰 만으로는 하기 힘들기 때문에, Alternate(번갈아, 얼터넛) 룰을 사용할 수 있습니다. 반복이나 분할 룰처럼, RepeatAxis (반복 축) 속성을 사용하여 축을 지정해야 합니다. 이 룰에는 A 및 B 로 표시된 두 가지 출력이 있습니다. 기본 설정에서는, 스코프가 클수록 B 부분이 늘어나지만 A 부분은 그대로입니다. BMaxSize (B 최대 크기) 속성에는 얼마 이상의 크기일 때 B를 추가할지, ASize (A 크기)에는 A의 크기를 얼마로 고정시킬지를 정합니다. 추가 조정을 위한 다른 옵션도 있습니다:bInvertPatternOrder (패턴 순서 뒤집기 여부) | 이 옵션은 고정 크기 A 대신 (ABABA에서 BABAB와 같이) 가변 크기 B로 시작 또는 끝나게 합니다. |
bEqualSizeAB (AB 크기 동일 여부) | 참이면 A와 B의 값을 동일하게 고정시킵니다. |
오클루전 룰
메시 룰 노드에서 언급했듯이, 스코프에서 오클루전 검사를 하는 것이 좋습니다. 이 룰 노드는 메시를 놓기 직전 뿐 아니라, 아무 스코프에서 이 검사를 할 수 있게 합니다. 예로, 중간에다 문용 공간을 내고자 분할하기 전에 건물 바닥을 검사할 수 있습니다.탑/보텀 룰
건물 볼륨에서 추출한 각 스코프는 동일한 룰 세트에 의해 처리되기 때문에, 복잡한 건물에서는 이상한 모양이 나올 수 있습니다. 예로 각 스코프의 밑면에 상점을 놓는 룰셋의 경우, 건물의 윗부분에도 상점 모양이 나오기에 모양이 이상해 집니다. 이는 Top/Bottom(탑/보텀) 룰 노드를 통해 스코프의 윗면 또는 밑면이 전체 ProcBuilding 볼륨 그룹의 윗면 또는 밑면과 같은지 검사할 수 있습니다. 아래의 예는 이 과정을 보여줍니다: 이 노드는 먼저 입력 스코프의 윗면이 전체 건물의 윗면인지 알아보는 것으로 작동합니다. 그렇다면 ExtractTopZ (윗면 Z 추출)에 정의된 부분만큼 분리하여 제거한 후, 해당 스코프를 'Top' 출력으로 전달합니다. 아니라면 ExtraNotTopZ (윗면이외 Z 추출)에 정의된 부분만큼을 분리하여 'Not Top' 출력으로 전달합니다. 이런 식으로 각 단계의 윗면보다 전체 건물의 윗면 테두리가 더 커지게 만들 수 있습니다. ExtractBottomZ (밑면 Z 추출) 및 ExtractNotBottomZ (밑면이외 Z 추출) 값을 사용하면 건물의 밑면에 대해서도 똑같은 작업을 해줄 수 있습니다. 그 후 스코프의 나머지 부분은 'Mid' 출력으로 전달됩니다. 'Top', 'Not Top', 'Bottom', 'Not Bottom'중 어느 것에도 연결된 부분이 없다면, 아무것도 입력 스코프에서 분할되지 않습니다.랜덤 룰
메시 룰을 통해 세트에서 메시를 하나 선택하는 것이 이미 가능합니다만, 가끔 룰셋 안에서 먼저 조정할 수도 있습니다. 예로 건물 면이나 바닥 특정 부분을 완전히 달라 보이게 만들고자 할 경우입니다. 게다가 때로는 세트에서 하나 이상의 옵션을 선택할 수도 있습니다. 이는 Random(랜덤) 룰을 통해 가능합니다. 먼저 NumOutputs (출력 수) 속성을 사용하여 출력 수를 지정합니다. 그리고 MinNumExecuted (최소 실행 수)와 MaxNumExecuted (최대 실행 수) 속성을 사용해 이 중 몇 개의 출력을 활용할 지 결정합니다. 이 룰을 사용하여 랜덤하게 메시를 '쌓을' 수 있습니다. 예로 건물의 특정 지역에 대해 각기 다른 A/C 유닛, 사인, 빛을 선택하거나 할 수 있습니다. 이런 예는 아래 그림과 같습니다:쿼드 룰
타일형 머티리얼을 씌운 평평한 쿼드 메시가 알맞을 것 같은 지역이 있다면, 이 Quad(쿼드) 룰 노드를 통해 구현할 수 있습니다. 2-트라이앵글 쿼드 메시를 건물에 추가하는 것과 아울러, 이 룰로 스코프의 크기에 따라 타일을 붙일 수 있도록 UV를 조절합니다. 이는 RepeatMaxSizeX (최대 X크기 반복)과 RepeatMaxSizeZ (최대 Z크기 반복) 파라미터로 조정하며, 방법은 반복 룰과 비슷합니다. 주의! 메모리에 쿼드 메시의 복사본은 단 하나만 존재하며, 인스턴스별 UV 조절은 머티리얼 인스턴스를 사용해야 합니다. 이는 자동으로 수행되지만, (Material 파라미터를 사용하여) 쿼드에 적용한 기본 머티리얼이 U_Scale, U_Offset, V_Scale, V_Offset의 4개 머티리얼 인스턴스 파라미터를 지원하는지 확인해야 합니다. 쿼드에 적용된 머티리얼 인스턴스의 기반으로 사용할 수 있는 마스터 머티리얼의 이름은 EngineBuildings.BuildingQuadMaterial (엔진 빌딩.빌딩 쿼드 머티리얼)입니다. 아래는 건물의 한 면에 쿼드 룰을 사용한 예입니다: 이 예에서 벽돌 패턴이 타일화되는 것을 볼 수 있지만, 흙(dirt) 패턴은 전체 메시에 걸쳐 딱 한 번 나타나고 있습니다. 이는 머티리얼에서 쉽게 설정할 수 있습니다. 타일링을 하지 않으려면, bDisableMaterialRepeat (머티리얼 반복 끄기 여부)를 참으로 설정하면 됩니다. QuadLightmapRes (쿼드 라이트맵 해상도) 속성으로 각 쿼드 메시의 라이트맵 해상도를 조절할 수 있습니다. YOffset (Y 오프셋) 설정을 사용하여 (건물의 내부로 또는 건물 밖으로와 같이) Y축을 따라 쿼드 메시를 오프셋시킬 수 있습니다.서브 룰셋
Sub(서브) 룰셋으로 작업하면, 꽤 복잡한 그래프를 만들 수 있습니다. 또한 (정교한 샵프론트 부분과 같이) 다른 복수의 룰셋에서 사용하고픈 룰셋 일부분을 만들 수도 있습니다. 이를 돕기 위해, 서브룰셋 노드를 만들 수 있으며, SubRuleset (서브룰셋) 속성을 사용하여 또다른 룰셋을 가리킬 수도 있습니다. 어느 스코프가 전달되든 간에, 노드는 해당 룰셋의 시작으로 전달됩니다. 이 방법으로 각 룰셋을 작게 유지할 수 있으며, 불필요한 중복을 피할 수 있습니다. 룰셋이 서로에게 맞물려 연결되는 '순환'을 만들지 않도록 주의하십시오.사이즈 룰
스코프의 치수에 기반한 간단한 선택 사항을 제공합니다. 먼저 SizeAxis (크기 축) 속성으로 어느 축에 관심이 있는지, 그리고 결정될 크기를 정합니다. 스코프 치수가 이보다 작으면, 'Less' 출력으로, 그 외의 경우엔 'Greater/Equal' 출력으로 전달됩니다. bUseTopLevelScopeSize (탑 레벨 스코프 크기 사용여부) 옵션으로 건네받은 스코프 대신 (전체 건물의 면 크기와 같이) '탑 레벨' 스코프에 따라 이 결정을 내릴 수 있습니다. 사이즈 룰은 메시가 너무 눌려 보이지 않게 하는데 사용하기도 합니다. 아래의 예에서, 창이 3개인 메시가 너무 눌려 보기에 안좋습니다. 이 때는 사이즈 룰로 공간이 좁을 때는 창 2개 또는 1개 버전의 메시를 사용하도록 할 수 있습니다. 테두리 작업도 동일하게 할 수 있습니다.주석
이 특수 노드는 별 기능이 없지만, 키즈멧과 같은 식으로 룰셋영역 주변으로 주석 상자를 그릴 수 있습니다.다양화 룰
기본적으로 프록빌딩에 적용된 룰셋은 모든 면에 적용됩니다. 그러나 가끔 다른 면에 다른 모양을 내고 싶은 경우가 있습니다. 이 경우에 Variation(다양화) 룰을 사용할 수 있습니다. 룰셋에 '다양성'을 주려면, 먼저 파사드에서 (모든 노드를 선택 해제하여) 룰셋 자체를 선택합니다. 그 후 Variations 배열에 요소를 추가할 수 있으며, ('PlainBrickSide'와 같이) 다양화에 이름을 지을 수 있습니다. 그리고, 파사드에 다양화 룰을 넣을 때마다, 해당 룰셋용으로 만든 각 다양화에 대한 출력 하나에 더해서, 최상단에 'default' 출력이 나옵니다. 레벨 디자이너가 건물의 면에 다양성을 주고 싶을 때, 다음과 같이 하면 됩니다:- 지오메트리 수정 모드로 들어갑니다.
- 변경하려는 건물 볼륨의 면(들)을 선택합니다.
- 우 클릭 후 ProcBuilding 메뉴를 선택합니다.
- 목록에서 원하는 다양화 이름을 선택합니다.
에지 메시 룰
Edge Mesh(에지 메시)는 각 면의 모서리를 밋밋하게 하여 각 코너를 자연스럽게 만들어 주는 룰셋입니다. 이러한 예는 아래와 같습니다: 그러나 항상 이렇지만은 않습니다. 메시가 완벽히 일치하지 않을 때 코너를 더 나아보이게 만들 수 있는 방법 한 가지는, 접각 절반의 각도로 모서리를 따라 메시를 놓는 것입니다. 에지 메시 룰이 이 역할을 합니다. 건네받은 스코프의 왼쪽 모서리를 취한 뒤, 접각 절반의 각도만큼 회전시킨 뒤 'Edge' 출력으로 새로운 스코프를 생성합니다. 스코프의 나머지 부분은 각 횡모서리 부분이 MainXPullIn (주요 X 끌어들이기) 속성에 지정된 만큼 약간 '끌어들입'니다. 접각이 FlatThreshold (평면 한계점)에 지정된 각 이하일 경우, 모서리 스코프는 생성되지 않습니다. 결과는 아래 예와 같습니다:코너 룰
건물 코너 외관을 최적화하고 싶은 경우, 접각이 다를 경우에 맞는 별도의 코너 메시를 만들 수도 있습니다. Corner(코너) 룰은 이를 편하게 하기 위해 고안되었습니다. 코너 룰을 사용할 때, 각 스코프는 왼쪽 면 모서리를 '소유'하게끔 되어 있습니다. 건네받은 스코프의 좌우측 일정 부분을 분할한 뒤, 접각에 가장 잘 맞는 출력 부분을 왼쪽에 붙인 스코프를 전달합니다. 우측에는 건물 주변 스코프로 해당 지역이 채워지게끔 갭을 둡니다. Angles (각도) 배열에 (0, -90, 90도와 같은) 값을 입력하면 어떤 각의 코너 노드도 지원할 수 있습니다. CornerSize (코너 크기) 속성을 사용하여 모서리 스코프가 차지하는 X 공간을 조절할 수도 있습니다. 각각의 각에 적합한 공간을 따로 지정하려면, Angles (각도) 배열 목록의 CornerSize (코너 크기)값을 0이 아닌 값으로 변경하면 됩니다. 코너 노드의 기타 속성은:FlatThreshold (평면 한계점) | 두 스코프의 각이 이 (각도)값 이하일 경우, 메시가 추가되지 않습니다. |
bNoMeshForConcaveCorners (오목한 코너에는 메시를 없앨지) | 참이면 오목한 코너에 대해서는 공간이나 메시가 추가되지 않습니다. |
지붕 코너
굴곡진 또는 빗각인 코너를 사용할 때 생기는 문제점은, (프록빌딩 볼륨 면에 의해 생성되는) 지붕 폴리곤이 지붕의 실제 모양과 맞지 않는다는 점입니다. 이를 해결하려면, 코너 노드에 몇 가지 추가 정보를 지정하여 지붕 폴리곤의 코너 부분을 가다듬어야 합니다. 보통 시스템은 이 정보를 코너 노드의 가장 높은 부분에서 찾습니다. 지붕 코너 모양을 조절하는 코너 룰 노드의 속성은 다음과 같습니다:CornerType (코너 종류) | 코너의 모양 - EPBC_Default(표준 사각 코너), EPBC_Chamfer(모서리를 깎아낸 코너), EPBC_Round(원형 코너) 중 하나 |
RoundTesselation (원형 테셀레이션) | 코너 모양이 EPBC_Round일 경우, 코너를 다듬는데 사용할 테셀레이션 수 |
RoundCurvature (원형 곡률) | 원형화된 코너의 모양을 조절 |
CornerShapeOffset (코너 모양 오프셋) | 굴곡 메시 지역의 시작점에서 지붕 폴리곤 코너를 실제로 chamfer/round화 하는 지점까지의 거리 |
수평 분할하기
건물을 처리하려면, 시스템은 각 모서리와 만나는 최상위레벨 스코프가 어느것인지 찾아내야 합니다. 아래 그림에서 보이듯이, 한 모서리에 2개 이상의 모서리가 만날 경우에는 찾아내기가 어렵습니다. 여기에서 보면, 노란 모서리에 맞는 코너 메시 하나를 선택해서 보기 좋은 모양을 내기가 어려울 것이 뻔합니다. 이를 해결하기 위해, 시스템은 ProcBuilding 그룹에 있는 각기 다른 지붕 레벨에서 모든 스코프를 '자릅니다.' 그림으로 표현하면 다음과 같습니다: 원한다면 프록빌딩 볼륨에 있는 bSplitWallsAtRoofLevels (지붕 레벨의 벽 분할여부) 값을 거짓으로 하여 이 과정을 생략할 수 있습니다. 이 과정은 아래에서 보듯, 보통 실제 건물에서도 전체 건물 주변으로 지붕 레벨 테두리가 잘 이어지는 것을 확인할 수 있습니다. 다음은 해당 옵션이 켜지거나 꺼진 상태의 프록빌딩의 예제입니다. 왼쪽 건물의 경우, 아래쪽 지붕 레벨이 건물의 나머지 부분과 만나는 부분에 대한 테두리 추가 작업이 쉽지 않기 때문에, 약간의 구멍이 보이게 됩니다.LOD
창
건물에는 유리창이 있게 마련이며, 이는 보통 반사 큐브맵으로 구현합니다. 고로 LOD에는 반사되는 창에 대한 마스크가 있어야 하며, 반사가 없으면 트랜지션시 많이 티나게 됩니다. 이 과정은 자동으로 수행되지만, 메시에 약간의 설정을 해 줘야 합니다. 건물에 대해 low-LOD 텍스처 생성 및 다음과 같은 세 가지 렌더링 과정이 수행됩니다:- 라이팅제외 모드로 디퓨즈 컬러 정보를,
- 라이팅만 모드로 라이팅 정보를,
- 창 모드, 즉 창은 흰색, 창이 아닌 곳은 검정색으로 표시되는 정보를 모읍니다.