답변:
고려해야 할 몇 가지 다른 것들이 있습니다.
참고 : 아래 설명 된 최적화의 이점은 실제로 많은 벽에서만 중요합니다. 이 시점에서 게임에서 벽을 만들기위한 이진 공간 분할 (BSP)과 같은 다른 솔루션을 고려하는 것이 현명 할 수 있습니다. 그러면 충돌 (무엇이 충돌하는지, 그렇지 않은 부분)에 대한 정의가 우수하므로 렌더링 (올바로 설계된 경우) 및 물리에 대해 레벨을 고도로 최적화 할 수 있습니다.
상자는 평면보다 렌더링하는 데 더 많은 시간이 걸립니다. 정점과 삼각형이 더 많아 정점 셰이더와 래스터 라이저가 더 많은 데이터를 실행해야 함을 의미합니다. 따라서 가시성 측면에서 필요한 경우에만 상자를 사용하십시오. 플레이어가 볼 수 있도록 필요한만큼 얼굴을 제거하십시오.
가능한 경우와 BoxCollider
는 반대로 항상를 사용해야합니다 MeshCollider
. MeshCollider
메쉬의 면당 (또는 볼록 껍질) 충돌을 적용하고 레이 캐스팅 및 물리를 느리게해야합니다 (단, 한 상자에는 무시할 수없는 양입니다). 또 다른 점 BoxColliders
은 플레이어가 정말로 빠르게 갈 때 플레이어가 단계별로 진행하기가 훨씬 어렵다는 것입니다. 연속 충돌이 있어도 여전히 벽을 통해 사물이 단계적으로 발견되는 경우 언제든지BoxColliders
치수를 맞추기 MeshColliders
위해 모든 것을 조정할 필요가 없기 때문에 비행기로 작업하는 것이 훨씬 빠르 BoxColliders
다면 원하는 성능을 얻는다면 비행기를 사용하는 것이 좋습니다.
"Coburn"의 요점을 약간 확장 :
렌더링 : 벽을 평면으로 만 렌더링하는 경우 평면 (또는보다 정확하게면)에는 렌더링 된면이 하나만 있으므로 벽은 한쪽에서만 볼 수 있습니다. 따라서 플레이어가 벽 주위를 움직일 수 있다면 모든면을 덮을 여러 개의 비행기가 필요합니다.
물리 : 간단한 지오메트리 충돌기 (구, 상자 등)는 메쉬의 모든면을 개별적으로 검사 할 필요가 없기 때문에 풀 메시 충돌기에 비해 계산 속도가 항상 빠릅니다. 대신 "간단한"레이 캐스트를 사용하거나 거리를 계산할 수 있습니다 (예 : 구 중심점에서 구 크기로의 거리).
별도의 "평면 충돌체"(Unity에는없는)가있는 다른 물리 엔진에는 "더 나은"엔진이 없습니다. 비행기는 성능면에서 약간 빠를 수 있지만 실제로 충돌하지 않고 비행기를 빠르게 지나가는 문제가 발생할 수 있습니다. 그런 다음 여기 설명 된대로 두꺼운 충돌체 (평면 대신 상자)가 있거나 CCD (Continous Collission Detection)로 이동합니다 .
렌더링에 대한 한 가지 더 : 그림자 매핑을 구현할 때 상자로 만든 벽은 평면으로 나타날 수있는 피터 패닝 으로 인해 평면으로 만든 벽보다 우수 할 수 있습니다 .
증상에 대한 설명은 다음과 같습니다.
http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-16-shadow-mapping/#peter-panning
나는 항상 깊이의 차이가 작고 출혈이 있기 때문에 가벼운 출혈을 돕기 위해 견고하게 만드는 것이 가장 좋은 그림자를 가질 것이라고 들었습니다.
나는 틀릴 수 있지만, 나는 내 벽과 그와 같은 물건을 양면으로 만듭니다. 벽은 단지 몇 개의 vert 일 것이므로 비행기를 가져서 많은 저축이되어서는 안됩니다.
내가 옆으로두고 몇 가지가 있지만 대부분 출혈이 많은 물건을 가지고있는 물건의 맨 아래 또는 맨 위입니다.
나는 물리학에 대해서도 똑같이하는데, 실제로 그것에 대해 생각하지는 않았지만 나에게는 벽을 벽으로, 비행기를 평면으로 사용하는 것이 옳은 것처럼 보였지만 그것은 바로 나뿐입니다.