찾기
내용으로 건너뛰기
추적
문서의 이전 판을 선택했습니다!
저장하면 이 자료로 새 판을 만듭니다.
미디어 파일
======오클루젼 컬링 (Occlusion Culling) (Pro 전용)====== 오클루젼 컬링 (Occlusion Culling)은 오브젝트가 다른 오브젝트에 의해 가려져서 카메라에 보이지 않을 때 해당 오브젝트의 랜더링을 비활성화 하는 기능입니다. 3D 그래픽에서는 카메라에서 가장 먼 오브젝트가 먼저 그려지고 가까운 오브젝트는 그 위에 그려지므로(일면 덮어 그리기("overdraw")), 이 기능이 자동으로 수행 되지는 않습니다. 오클루젼 컬링은 프러스텀 컬링(Frustum Culling)과는 다릅니다. 프러스텀 컬링은 커메라의 시야 영역 밖에 있는 오브젝트에 대한 랜더기를 비활성화 하지만 덮어 그리기(overdraw)에 의해 뷰(view)에서 숨겨진 것은 끄지 않습니다. 사용자가 오클루젼 컬링을 사용할 동안에도 프러스텀 컬링이 여전히 작동 중이며 그 혜택을 본다는 사실을 주목하십시오. {{:unity3d:OcclusionCullingOff.png}}\\ //오클루젼 컬링(Occlusion Culling) 없이 랜더링 되는 씬(scene)// {{:unity3d:OcclusionCullingOn.png}}\\ //오클루젼 컬링(Occlusion Culling)이 지원되어 랜더링 되는 씬(scene)// 오클루젼 컬링 과정은 씬(scene)을 지나가며 가상 카메라를 사용하여 장차 보여질 가능성이 있는 오브젝트의 집합으로 계층 구조를 구축합니다. 이 데이터는 실행 시에 각 카메라가 어떤 것이 볼 수 있고 어떤 것이 아닌지를 구분하는 데 사용됩니다. 이 정보를 가지고, Unity는 보여지는 오브젝트만 랜더링에 전송되게 합니다. 이는 그리기 호출(draw calls) 횟수를 줄이고 게임의 성능을 향상 시킵니다. 오클루젼 컬링의 데이터는 셀(cells)로 이루어져 있습니다. 각 셀은 씬(scene)의 전체 바운딩 볼륨(bounding volume)의 하위 분할입니다. 더 구체적으로 셀은 바이너리 트리(binary tree)을 형성합니다. 오클루젼 컬링은 두개의 트리를 사용하는데, 하나는 View Cells (정적인 오브젝트)이고 다른 하나는 Target Cells(움직이는 오브젝트)입니다. 뷰 셀(View Cells)은 가시적인 정적 오브젝트를 정의한 인텍스 목록(list of indices)으로 매핑 되며, 이는 정적인 오브젝트에 대해서 좀 더 정확한 컬링 결과를 제공합니다. 사용자가 오브젝트를 생성할 때는 이 사실을 기억할 필요가 있습니다. 그 이유는 사용자가 오브젝트의 크기와 셀의 크기 사이에 적당한 균형을 맞출 필요가 있기 때문입니다. 이상적으로는, 사용자의 오브젝트와 비교하여 너무 작은 셀은 있어서는 안 되지만 마찬가지로 너무 많은 셀을 걸치는 오브젝트가 있어서도 안됩니다. 때로는 큰 오브젝트를 작은 조각으로 나누면 컬링을 개선할 수 있습니다. 하지만, 그림 셀(draw cell)을 줄이기 위해 작은 오브젝트를 합칠 수도 있고, 그것들이 같은 셀에 속하는 한 오클루젼 컬링에는 영향을 미치지 않을 것 입니다. 셀의 집합과 어느 셀이 다른 셀로부터 보여지는 가를 정하는 가시성 정보(visibility information)는 PVS (_P_otentially _V_isible _S_et)이라고 합니다. =====오클루젼 컬링(Occlusion Culling)의 설치===== 오클루젼 컬링을 사용하기 위해서는, 수동적인 설정이 일부 필요합니다. 우선, 사용자의 계층 기하구조(level geometry)를 합리적인 크기의 조각으로 나누어져야 합니다. 사용자의 계층을 벽과 빌딩과 같은 대형 오브젝트에 의해 서로 가려지는 작고 잘 정의된 구역으로 펼치는 것도 도움이 됩니다. 여기서의 주된 아이디어는 각 개별 메쉬가 오클루젼 데이터에 의해 켜지고 꺼진다는 것입니다. 그러므로 사용자가 사용자의 방에 있는 모든 가구를 포함하는 하나의 오브젝트를 가졌다면 그 가구 집합은 전부 컬링 되거나 아무것도 컬링이 되지 않은 것입니다. 이것은 각각의 가구를 독립적인 메쉬로 만들어 각각이 카메라의 관점에 따라 개별적으로 컬링 되는 것만큼이나 터무니 없을 것 입니다. 오클루젼의 일부가 되기를 원하는 모든 씬(scene) 오브젝트는 ''Inspector'' 내에서 **Occlusion Static**으로 태그를 달아야 합니다. 이를 수행하는 가장 빠른 방법은 오클루젼 계산에 포함 될 모든 오브젝트를 다중 선택(multi-select)하여 **Occlusion Static** 와 **Occludee Static**으로 마크하는 것 입니다. {{:unity3d:OcclusionStaticDropdown.png}} //Marking an object for Occlusion 오클루젼을 위한 오브젝트 생성// 언제 **Occludee Static**을 사용할까요? 가리지 않는 투명한 오브젝트와 다른 것을 가릴 염려가 없는 작은 오브젝트는 **Occludees**로 마크 되어야 하고, **Occluders**로 마크되어서는 안됩니다. 이들은 다른 오브젝트에 의해 오클루젼의 고려대상이 되지만, 그들 자신이 오클루더(가리는 주체)로는 여겨지지 않을 것입니다. =====오클루젼 컬링(Occlusion Culling) 창===== 오클루젼 컬링을 다루는 대부분의 작업에 대하여, 사용자가 오클루젼 컬링 창을(**Window->Occlusion Culling**) 사용할 것을 권장합니다. 오클루젼 컬링 창에서, 사용자는 오클루더(occluder) 메쉬와 [[class-OcclusionArea|Occlusion Areas]] 작업을 수행할 수 있습니다. 사용자가 **Occlusion Culling Window**의 **Object**에 있다면 씬(scene) 내에서 [[class-MeshRenderer|Mesh Renderer]]을 선택하여 관련 Static 플래그를 변경할 수 있습니다: {{:unity3d:OcclusionCullingInspectorObject.png}}\\ //Occlusion Culling Window for a Mesh Renderer// 만일 사용자가 **Occlusion Culling Window**의 **Object**에 있고 [[class-OcclusionArea|Occlusion Area]]을 선택하였다면, OcclusionArea 속성과 관련된 작업을 수행할 수 있습니다 (더 자세한 정보를 보려면 [[class-OcclusionArea|Occlusion Area]] section 참조). {{:unity3d:OcclusionCullingInspectorOcclusionArea.png}}\\ //for the Occlusion Area에 대한 오클루젼 컬링 창// _주의:_ 기본적으로 사용자가 오클루젼 영역(occlusion areas)을 만들지 않으면, 오클루젼 컬링은 씬 전체에 적용되지 않을 것 입니다. _주의:_ 카메라가 오클루젼 영역을 벗어날 때 마다, 오클루젼 컬링은 적용되지 않습니다. 그러므로 오클루젼 영역을 카메라가 있을 가능성이 있는 지역을 포함하는 것이 중요하며, 하지만 그 영역이 너무 커지면 굽기(baking) 수행에 있어 비용이 발생합니다. =====오클루젼 컬링(Occlusion Culling) – 굽기(Bake)===== {{:unity3d:OcclusionCullingInspectorBake.png}}\\ //Occlusion culling inspector bake tab.// =====Properties===== |PROPS |//Technique// |오클루젼 컬링 굽기 타입 중 선택 | |>>>//PVS only// |오클루젼 컬링은 정적 오브젝트를 대상으로만 동작합니다. 동적 오브젝트(Dynamic objects)는 뷰 프러스텀(view frustrum)을 기반으로 컬링 될 것입니다. 이 기술은 CPU에 경미한 부담을 추가하지만, 동적 오브젝트가 컬링 되지 않으므로, 움직이는 오브젝트나 인물이 적은 게임에 추천할 만 합니다. 모든 가시성은 미리 계산되므로, 사용자는 실행 시 포털(portal)을 열거나 닫을 수 없습니다.| |>>>//PVS and dynamic objects// |정적인 오브젝트는 미리 계산된 가시성을 사용하여 컬링 됩니다. 동적인 오브젝튼 포털 컬링(portal culling)을 사용하여 컬링 됩니다. 이 기술은 실행 시의 오버헤드와 컬링의 효율성 사이에 적당한 균형을 가져옵니다. 모든 가시성이 미리 계산 되었으므로, 사용자는 실행 시 포털(portal)을 열거나 닫을 수 없습니다.| |>>>//Automatic Portal Generation// |포털(portal)은 자동으로 생성됩니다. 정적 그리고 동적 오브젝트는 포털을 통하여 컬링됩니다. 이는 사용자가 런타임에 포털을 열고 닫을 수 있게 해 줍니다. 이 기술은 오브젝트를 가장 정확하게 컬링 하지만, CPU에 가장 많은 오버헤드를 유발합니다. |//View Cell Size// |시야 영역 셀의 각 크기. 작은 값은 더욱 정확한 오클루젼 컬링을 제공합니다. 이 값은 오클루젼의 정확성과 저장 공간의 크기 사이의 교환입니다.| |//Near Clip Plane// |근거리 클립 면(Near clip plane)은 게임의 모든 카메라에 의해 사용되어질 가장 작은 근거리 클립 면으로 설정되어 야 합니다.| |//Far Clip Plane// |원거리 클립 면(Far Clip Plane)은 오브젝트를 컬링 하는데 사용됩니다 (게임의 모든 카메라에 의해 사용되어질 가장 큰 원거리 클립 면으로 설정되어 야 합니다).| |//Memory limit// |이는 PVS-기반 굽기(baking)에 대한 힌트로, //Automatic Portal Generation// 모드에서는 사용할 수 없습니다. 사용자는 이 값에 대한 조정을 마치면, 오클루젼 컬링 데이터를 처리하기 위하여 **Bake** 버튼을 클릭할 수 있습니다. 만일 그 결과에 만족하지 않으면, 이전에 계산한 데이터를 **Clear** 버튼을 클릭하여 지울 수 있습니다. =====오클루젼 컬링(Occlusion Culling) – 시각화(Visualization)===== {{:unity3d:OcclusionCullingInspectorVisualization.png}}\\ //Occlusion culling inspector visualization 탭.// 근거리와 원거리 면(near and far planes)은 오클루젼 데이터를 계산하는 데 사용되는 가상 카메라를 정의합니다. 사용자가 근거리 혹은 원거리 면의 여러 카메라를 가지고 있다면, 오브젝트의 올바른 포함을 위하여 모든 카메라의 가장 작은 근거리 면과 가장 큰 원거리 면의 거리를 사용해야 합니다. 씬(scene)의 모든 오브젝트는 바운딩 볼륨(bounding volume)의 크기에 영향을 주므로, 이들 모두를 씬의 가시적인 경계 내에 두려고 노력해야 합니다. 사용자가 오클루젼 데이터를 생성할 준비가 되면, **Bake** 버튼을 클릭합니다. **Bake** 탭에서 **Memory Limit** 을 선택하는 것을 잊지 마십시오. 낮은 값은 더 빠르지만 덜 정확한 결과를 생성하고, 높은 값은 출시와 비슷한 결과물에 사용됩니다. 오클루젼 데이터를 구축하는 데 걸리는 시간은 셀의 레벨, 데이터 사이즈 및 사용자가 선택한 품질에 달려있음을 유념하십시오. Unity는 주된 창 하단에 PVS 생성 상태를 표시할 것입니다. 이 작업이 완료하면, 사용자는 뷰 영역(View Area)에 여러 색상의 큐브(cubes)을 볼 수 있을 것 입니다. 이 색상 지역은 같은 오클루젼 데이터를 공유하는 지역입니다. 미리 계산된 모든 오클루젼 컬링을 삭제하고 싶으면, **Clear** 을 클릭합니다. {{page>class-OcclusionArea}} {{page>class-OcclusionPortal}} {{tag>유니티 unity}} * 출처: [[http://unitykoreawiki.com/index.php?n=KrMain.OcclusionCulling|유니티코리아위키]] (CC BY-NC-SA 2.0)
2+1?
이 필드는 비어 있도록 유지하세요:
저장
미리 보기
취소
편집 요약
참고: 이 문서를 편집하면 내용은 다음 라이선스에 따라 배포하는 데 동의하는 것으로 간주합니다:
CC Attribution-Noncommercial-Share Alike 4.0 International
연결문서
안드로이드 개발 시작하기
GameObject
유니티3D ( Unity3D )
iOS 개발 시작하기 Getting Started with iOS Development
문서 도구
문서 보기
이전 판
연결문서
맨 위로
다크 모드로 보기
☀️
Toggle Menu
유니티3D ( Unity3D )
너두 고쳐두 됩니다.
사이트 도구
최근 바뀜
미디어 관리자
사이트맵
사용자 도구
등록
로긴
최근 수정된 문서
misuse_topical5
노박
unique_items
dinner_bell
deputy_beagle
ratslayer
one_for_my_baby
alerio
power_fist
제거됨
fixer
climb_ev_ry_mountain
companion
[장비 분실]
crashed_vertibird
brotherhood_t-51b_power_armor
marco
i_forgot_to_remember_to_forget
cateye