EgisCorp / XDWorld

WebGL 기반 3D GIS 엔진
14 stars 7 forks source link

view_underground 옵션 적용 시 지형이 투영되는 문제 #415

Closed 2HyeonBin closed 1 day ago

2HyeonBin commented 1 month ago

엔진 버전 : 2.6.0

오류 발생 API : view_underground

오류 내용 : 안녕하세요!

레이어에 view_underground 옵션을 적용한 뒤 특정 오브젝트에

layer.SetDefineMeshColorByObjectKey(
    obj.key,
    0,
    new Module.JSColor(100, 255, 255, 255),
    false
);

함수를 적용하여 오브젝트를 투명하게 설정하니 해당 오브젝트 뒤로 지형 아래 부분이 보이게 됩니다. 해당 부분 확인 부탁드리겠습니다! image

avamk2 commented 1 month ago

안녕하세요

해당 부분을 재현하기 위해서 질문을 드립니다. 테스트한 건물은 서버에서 서비스하는 건물에 대한 것인가요? 아니면 고스트 심볼 또는 모델링을 로컬레이어로 등록한 건물인가요?

내용확인되면 빠르게 처리하도록 하겠습니다.

2HyeonBin commented 1 month ago

XDServer에서 불러오는 서비스 레이어입니다!

avamk2 commented 1 month ago

해당 부분 구현한 설계 내용이랑 기능사용에 대해서 확인해본결과

우선적으로 view_underground 옵션은 투명/반투명을 처리에서 레이어와 달리 직접제어되지 않는 지형부분이 있어서 지형 반투명 후 지하에 객체를 반투명으로 표현 하려고 할때 사용하는 옵션입니다. 지상구조물이 있는 레이어에서는 사용하지 않는게 정상적인 사용법입니다.

만약에 지상/지하 구조물이 복합적으로 있다면 가능한 지상과 지하구조물을 별도의 레이어로 분리하고 지하구조물에 대해서 해당옵션을 켰는 것을 권장드립니다.

임시적인 조치로는 해당 뒤에 나오는 것은 지구본기반에서 표현하기 위한 대기효과로 아래코드로 제어 가능합니다. Module.getOption().atmosphereRender = false;

대기권 효과가 없으면 지구본 뷰 또는 카메라 틸트가 낮은 각도에서 지평선 위쪽 하늘 표현이 없기때문에 검게 나옵니다. 따라서 view_underground 옵션과 atmosphereRender 를 사용되어야될 상황에서만 활성화 하여 둘을 페어로 사용하는 방법도 있습니다.

장기적으로는 엔진 자체에서 이러한 부분을 개선하는 방법을 찾도록 하겠습니다.

2HyeonBin commented 1 month ago

넵 감사합니다!!