복셀 지형에서 응력 / 변형 역학을 구현하는 방법은 무엇입니까?


13

지형이 복셀로 나뉘어있는 Minecraft와 같은 세계를 개발하는 과정에 있습니다. 그러나 불안정한 지형 구성이 예상대로 붕괴되고 싶습니다. 예를 들어, 너무 무거운 오버행 은 비대칭으로 침식 된 기저를 가진 기둥 형성과 마찬가지로 '고 응력'복셀에서 파단되고 파단됩니다 . 지형의 각 복셀에 '스트레스 벡터'필드를 추가하고 다음 (의사 코드)을 수행하려고 생각했습니다.

foreach voxel in terrain
    foreach neighbor in voxel.neighbor_voxels()
        if magnitude(voxel.stress - neighbor.stress) > stressThreshold
            detach_voxels(voxel, neighbor)

그러나 문제는 이러한 개별 스트레스를 계산하는 방법을 모른다는 것입니다. 복셀 단위로 스트레스를 계산하는 데 사용할 수있는 복셀 이산화에 특화된 일종의 FEA 기반 알고리즘이 있습니까? 아니면 내가 잘못 접근하고 있고 다른 방법이 있습니까?

답변:


1

연결된 모든 복셀에 대한 DFS 검색을 고려하여 가장 의존하거나 "분기 된"복셀을 결정할 수 있습니다. 그런 다음 멋진 의사 코드를 실행하십시오. :)

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