2010-12-16 4 views
3

저는 glOrtho를 사용하여 3D 기하학적 객체의 직교 투영을 그립니다. 내 프로그램을 통해 사용자는 기하학적 객체의 모서리 또는면을 선택할 수 있습니다. 두 개의 객체가 서로 위에 나타날 때 사용자는 오른쪽 버튼으로 배경 객체를 선택할 수 있으며, 왼쪽 객체로 포 그라운드 객체를 선택할 수 있습니다. 선택한 객체는 색상이 지정됩니다.안개를 glOrtho와 함께 사용하기

문제는 사용자가 전경 또는 배경 선택을 구별 할 수있는 방법이 없다는 것입니다. 안개를 사용하여 뒷면의 색상을 앞면의 색상과 다르게했으나 작동하지 않습니다. 전설과 배경의 z가 거의 같기 때문에 이것이라고 추측합니다 ...? 기능과 같은 안개로 나는 그것을 달성 할 수있는 방법이 아직 남아 있습니까?

추신 : 내가 회전 할 수 있고이 정보가 더 이상 올바르지 않기 때문에 사용자가 클릭 할 때만 객체의 위치를 ​​결정하고 싶지 않습니다.

+1

더 깊이 들어가기 전에 다음을 지정하십시오. "전경 개체"및 "배경 개체"는 무엇을 의미합니까? 그것에 대해 자세히 설명해 주시겠습니까? 렌더링 후 언제든지 주어진 지점의 프레임 버퍼는 하나의 조각 (일반적으로 눈에 가장 가까운 조각)의 색상 값과 깊이 값을 포함한다는 점을 상기시킵니다. 그리고 그러한 조각이 여러 개있을 수 있습니다. 따라서 주어진 (x, y)에는 임의의 수의 객체가있을 수 있습니다. – Kos

+0

기하학 물체를 그립니다. 예를 들어 입방체를 상상해보십시오. 그 투영을 볼 때, 전경 객체는 당신에게 가까운 얼굴과 가장자리이며, 배경 객체는 전형적으로 숨겨진 얼굴입니다. 예를 들어 앞면과 뒷면이 완벽하게 정렬되도록 위에서 새끼를 보면, 투영 할 때 모든 것이 두 개의 레이어에 중첩됩니다. 그것들은 제가 앞뒤로 부르는 층입니다. 더 의미가 있습니까? – seb

답변

1

z 깊이를 고려한 단순한 셰이더를 작성하지 않고이 값을 사용하여 메쉬를 채울 수 있습니까? 예를 들어 "전경"오브젝트에 대해 하나의 색상에서 "배경"오브젝트에 대해 다른 색상으로 램프를 사용합니까?

+0

어쩌면? 셰이더에 익숙하지 않은데 어떻게 셰이더를 사용하면 좋을까요? – seb

+0

글쎄, 전경 오브젝트와 백그라운드 오브젝트를 이상적으로 구별하는 방법에 약간의 차이가 있습니다. 따라서 특정 상황에 대한 "이상적인 상황"아이디어가 있다면 대답을 제공하는 데 도움이 될 수 있습니다. 그러나 셰이더는 기본적으로 내가 말한 것을 할 것입니다. z_depth를 고려하여 뷰어와의 거리에 따라 다른 객체의 색상을 지정하기 위해 이것을 입력으로 사용합니다. 경사로 또는 다른 채색 기능을 사용하십시오. – Bart

+0

그래, 근데 기본적으로 내가 그려야하는 모든 것을 z로 분석하여 OpenGL의 일을하고, 자동으로 그 일을 할 수 있어야한다는 것을 의미한다. 또는 나는 무엇인가 놓치고 있냐? – seb

관련 문제