많은 수의 간단한 개체가있는 3D 장면이 있으므로 마우스를 사용하여 개체를 가져 오는 데 광선 추적을 사용하는 것이 좋지 않다고 생각합니다.오프 스크린 렌더링을 사용한 마우스 피킹?
나는 같은 것을 할 싶습니다
- 이 같은 렌더링 현재 객체 대신에 자신의 색
에 포인터를 사용하는 일부 OpenGL은 오프 스크린 버퍼에 모든 객체를 렌더링 장면을 실제 색상을 사용하여 화면에 표시
- 사용자가 (x, y) 화면 좌표로 점을 선택하면 해당 위치에서 오프 스크린 버퍼의 값을 가져 와서 객체에 대한 포인터가 있습니다
가능합니까? 그렇다면 "포인터로 그리기"를 위해 선택할 수있는 버퍼 유형은 무엇입니까?
가 (많이) 이동 있습니까 (Google에서 주위를 둘러 경우도 많은이 있습니다)? 그렇지 않은 경우 데이터 구조를 사용하여 선택하는 대략적인 영역을 빠르게 찾을 수 있습니다. 이렇게하면 적은 성능으로 대용량의 개체를 처리 할 수 있습니다. 또한 매 프레임마다 마우스 피킹을 사용하지 않으면 피킹을 쉽게 멀티 스레드하고 성능 문제를 거의 완전히 피할 수 있습니다. (사용자는 클릭과 선택 사이에 100ms 지연에 대해 신경 쓰지 않을 수도 있음) –
레이 트레이싱과 레이 캐스팅 (성능 현명) 간에는 큰 차이가 있습니다. 이것은 레이 캐스팅의 응용 프로그램입니다. 광선이 여러 표면에서 반사되거나 다른 재질을 통과 할 때 광선을 "추적"하지 않습니다. 초기 광선 캐스팅을 가속화하고 (테스트 할 데이터 집합을 줄이기 위해) 공간 분할 데이터 구조를 사용하십시오 (기회는 이미 장면에서 이러한 데이터 구조를가집니다). . 픽셀 리드 백을 정말로하고 싶은 유일한 시간은 픽셀 완전 선택이 필요한 경우 많은 대기 시간을 추가하는 것입니다. –