벽을 평면 또는 상자로 작성해야합니까?


22

벽이 평면 또는 상자가되는 이점은 무엇입니까? 메쉬 충돌체 대신 상자 충돌체가있는 평면을 사용해야합니까?

답변:


15

고려해야 할 몇 가지 다른 것들이 있습니다.

참고 : 아래 설명 된 최적화의 이점은 실제로 많은 벽에서만 중요합니다. 이 시점에서 게임에서 벽을 만들기위한 이진 공간 분할 (BSP)과 같은 다른 솔루션을 고려하는 것이 현명 할 수 있습니다. 그러면 충돌 (무엇이 충돌하는지, 그렇지 않은 부분)에 대한 정의가 우수하므로 렌더링 (올바로 설계된 경우) 및 물리에 대해 레벨을 고도로 최적화 할 수 있습니다.

표현

상자는 평면보다 렌더링하는 데 더 많은 시간이 걸립니다. 정점과 삼각형이 더 많아 정점 셰이더와 래스터 라이저가 더 많은 데이터를 실행해야 함을 의미합니다. 따라서 가시성 측면에서 필요한 경우에만 상자를 사용하십시오. 플레이어가 볼 수 있도록 필요한만큼 얼굴을 제거하십시오.

물리학

가능한 경우와 BoxCollider는 반대로 항상를 사용해야합니다 MeshCollider. MeshCollider메쉬의 면당 (또는 볼록 껍질) 충돌을 적용하고 레이 캐스팅 및 물리를 느리게해야합니다 (단, 한 상자에는 무시할 수없는 양입니다). 또 다른 점 BoxColliders은 플레이어가 정말로 빠르게 갈 때 플레이어가 단계별로 진행하기가 훨씬 어렵다는 것입니다. 연속 충돌이 있어도 여전히 벽을 통해 사물이 단계적으로 발견되는 경우 언제든지BoxColliders

생산력

치수를 맞추기 MeshColliders위해 모든 것을 조정할 필요가 없기 때문에 비행기로 작업하는 것이 훨씬 빠르 BoxColliders다면 원하는 성능을 얻는다면 비행기를 사용하는 것이 좋습니다.


10

"Coburn"의 요점을 약간 확장 :

렌더링 : 벽을 평면으로 만 렌더링하는 경우 평면 (또는보다 정확하게면)에는 렌더링 된면이 하나만 있으므로 벽은 한쪽에서만 볼 수 있습니다. 따라서 플레이어가 벽 주위를 움직일 수 있다면 모든면을 덮을 여러 개의 비행기가 필요합니다.

물리 : 간단한 지오메트리 충돌기 (구, 상자 등)는 메쉬의 모든면을 개별적으로 검사 할 필요가 없기 때문에 풀 메시 충돌기에 비해 계산 속도가 항상 빠릅니다. 대신 "간단한"레이 캐스트를 사용하거나 거리를 계산할 수 있습니다 (예 : 구 중심점에서 구 크기로의 거리).

별도의 "평면 충돌체"(Unity에는없는)가있는 다른 물리 엔진에는 "더 나은"엔진이 없습니다. 비행기는 성능면에서 약간 빠를 수 있지만 실제로 충돌하지 않고 비행기를 빠르게 지나가는 문제가 발생할 수 있습니다. 그런 다음 여기 설명 된대로 두꺼운 충돌체 (평면 대신 상자)가 있거나 CCD (Continous Collission Detection)로 이동합니다 .


거의 항상 뒷면 컬링을 해제 할 수 있습니다.
Bálint

2
@ 발린 트루. 그런 경우 사용자는 다른 경우에도 벽이 보일 수 있습니다 (이 경우 조명이 잘못 되었음 (다른면 / 방에서 소스로 전송 된 빛, 대신 서있는 벽)).
Philip Allgaier

두 번째 시점에서는 실제로 그것이 찬반인지 찬반인지 그리고 무엇을 위해 지정하지 않았습니다. 비행기는 상자보다 기하학적으로 단순 해 보이므로 요점입니까?
Bakuriu

@Bakuriu 내가 아는 한, Unity에는 "평면 충돌체"가 없으므로 "상자"가 가장 가까운 것입니다. 다른 물리 엔진에 대한 메모를 추가했습니다.
Philip Allgaier

4

렌더링에 대한 한 가지 더 : 그림자 매핑을 구현할 때 상자로 만든 벽은 평면으로 나타날 수있는 피터 패닝 으로 인해 평면으로 만든 벽보다 우수 할 수 있습니다 .

증상에 대한 설명은 다음과 같습니다.

http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-16-shadow-mapping/#peter-panning


피터 패닝이란 무엇입니까?
Pichi Wuana

내가 제공 한 링크를 따라 갔습니까? 설명이 필요합니다.
Djindjidj

0

나는 항상 깊이의 차이가 작고 출혈이 있기 때문에 가벼운 출혈을 돕기 위해 견고하게 만드는 것이 가장 좋은 그림자를 가질 것이라고 들었습니다.

나는 틀릴 수 있지만, 나는 내 벽과 그와 같은 물건을 양면으로 만듭니다. 벽은 단지 몇 개의 vert 일 것이므로 비행기를 가져서 많은 저축이되어서는 안됩니다.

내가 옆으로두고 몇 가지가 있지만 대부분 출혈이 많은 물건을 가지고있는 물건의 맨 아래 또는 맨 위입니다.

나는 물리학에 대해서도 똑같이하는데, 실제로 그것에 대해 생각하지는 않았지만 나에게는 벽을 벽으로, 비행기를 평면으로 사용하는 것이 옳은 것처럼 보였지만 그것은 바로 나뿐입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.