This article's documentation is for anything that uses the Source engine. Click here for more information.

func_detail

Valve Developer Community
이동: 둘러보기, 검색


func_detail is a brush entity available in all Source Source games. 실제 브러시 엔티티가 아니라, 모든 포함된 브러시를 worldspawn으로 이동시키고 그것들을 CONTENTS_DETAIL로 플래그 지정하여, 가시성에 영향을 주지 않거나 non-detail 브러시를 절단하지 않게 합니다. 월드의 '뼈대’를 형성하지 않는 모든 브러시 작업은 (실제 엔티티에 연결되지 않은 경우) 디테일이어야 하며, 반투명 유리는 예외입니다("구조적"이지 않을 때 alpha sorting issues에 시달립니다).

Valve는 🖿sourcesdk_content\hl2\mapsrc\sdk_func_detail.vmf에서 예제 맵을 제공합니다. 또한 HL2 맵 소스를 로드하고 자동 visgroup으로 디테일 브러시를 숨겨 Valve가 어디에 사용했는지 확인할 수 있습니다.

Tip.png팁:대안으로, 실행 중인 모든 맵에서 디테일 브러시를 숨기기 위해 콘솔 변수 r_drawfuncdetail 0를 사용할 수 있습니다.

효과

디테일 브러시 엔티티를 만드는 목적은 맵의 단순한 디테일에 대해 불필요한 수의 visleaves를 생성하는 것을 피하기 위함이며, 이를 위해 엔티티의 이름이 정해졌습니다. VBSP는 visleaves가 디테일을 오버레이 할 수 있게 하여 visleaves와 컴파일 시간을 최소화합니다.

World-vs-detail.png

위에는 월드 브러시(왼쪽 원통)와 디테일 브러시(오른쪽 원통)가 있습니다. 파란색 선은 visleaf 경계입니다. 월드 브러시는 맵을 9개의 이상한 모양의 세그먼트로 잘라내어 컴파일 시간이 길어지고 성능이 약간 저하되었지만, 디테일 브러시는 아무것도 변경하지 않았습니다.

주의 사항

  • 디테일 브러시는 맵의 leak을 봉합 또는 areaportal 영역 제작 목적으로 사용할 수 없습니다.
  • 디테일 브러시는 월드 브러시를 자르지 않기 때문에, 다른 표면의 lightmap 스케일이 디테일 브러시의 너비/높이보다 크면 빛이 그 아래로 스며들 수 있습니다. 이런 경우에는 수동으로 기본 브러시를 여러 부분으로 잘라내고 ((단축키 Shift+X)), 아래쪽에 nodraw 텍스처를 적용하세요.
    • 이 효과는 표면 접촉이 많은 디테일 브러시를 비효율적으로 만들 수 있습니다. 왜냐하면 그 아래의 표면도 렌더링되기 때문입니다! func_detail에 의해 완전히 가려진 구조적인 면은 nodraw 텍스처로 처리해야 합니다.
    • 그러나 디테일 브러시는 서로를 자릅니다. 순정 VBSPGoldSrc HLBSP에서 볼 수 있는 디테일 레벨을 지원하지 않으므로, 모든 디테일 브러시는 편향 없이 서로를 자릅니다.
  • 매우 얇은 (약 2 유닛 두께) 디테일 브러시의 표면은 일정 거리에서 사라지는 것으로 알려져 있습니다. 이를 해결하기 위해 func_brush를 대신 사용하세요.
  • translucent 또는 transparent 속성을 가진 재질이 적용되었거나, displacement 브러시인 경우 VIS에 영향을 주지 않으며, 맵 상의 leak이 발생한 영역을 봉합할 수 없습니다.
    • w/ 반투명 재질의 월드 브러시는 여전히 visleaf를 자릅니다. 왜냐하면 반투명 재질의 브러시는 다른 엔티티, 디스플레이스먼트, 디테일 브러시와는 다르게 알파 채널 정렬(Quake II Quake II와 같이)을 위해 BSP tree를 사용하기 때문입니다.
  • 디테일 브러시는 경우에 따라 다른 디테일 브러시와 면을 병합하고, 때때로 월드 브러시와 병합하여 visleaf를 생성할 수 있습니다.
  • 정상적인 조건에서 디테일 브러시가 월드 브러시에 접촉할 때마다, VBSP는 이 접점을 참고하고 최적화합니다. 이 연결은 T-접점 또는 워터 인덱스로 번갈아 알려져 있으며, VBSP가 수정을 시도할 T-접점의 수에는 한계가 있습니다(65,535). 월드 지오메트리와 접촉하는 디테일 브러시의 과도한 사용은 VBSP가 오류와 함께 컴파일을 중단하게 할 수 있습니다. -notjunc 옵션을 사용하면 이 최적화를 건너뛸 수 있지만, 시각적인 불일치가 발생할 수 있습니다.
Note.png메모:알 수 없는 이유로 인해 물은 t-접점 수를 급증시킵니다. 물 브러시를 제거하거나 재구성하면 이 문제를 해결할 수 있습니다.

좋은 사용 예시

디테일 브러시(및 프롭)를 제거하면 City 17 Trainstation Plaza의 대부분이 사라집니다. Valve도 몇몇 월드 브러시를 놓쳤습니다…

플레이어의 시야를 크게 가리지 않는 모든 브러시는 아마도 디테일 브러시를 사용해야 할 것 입니다. 구체적인 예는 다음과 같습니다:

  • 기둥, 받침대 및 지지대
  • 독립형 벽
  • 공중 보도
  • 계단 (아래에 부드러운 쐐기 모양 월드 브러시 생성)
  • 작은 건물들
  • 회전한 브러시
  • 매우 작거나 얇은 브러시

키값

DXLevelChoice:

Minimum / Maximum DX Level (mindxlevel / maxdxlevel) <choices> (removed since 레프트 4 데드)
The entity will not exist if the engine is running outside the given range of DirectX Versions.
Choices
Warning.png경고:If these are used, the object may break when the user switches their DirectX settings.

See also