간결하게하기 : 우리 모두 알다시피, OpenGL은 많은 삼각형을 화면에 그립니다."오브젝트 맵"in opengl
내가 알고 싶은 :
OpenGL을이 삼각형을 그리는 경우는 알고있다가, 어떤 삼각형이 오른쪽 화면에있는 픽셀에 속하는?
이 정보를 얻을 수 있습니까? 예를 들어 무승부 (예 : gl_retrieve_object_map()
또는 유사)와 같은 함수를 호출하면 어떤 픽셀이 어떤 삼각형을 표시하는지 알 수 있습니까?
의 모든 픽셀
내가 나에게 삼각형 인덱스 또는 어떤 알리는 2 차원 배열 생각하고 대한을 따기 을하고 같은 :
예를 들어, 10 × 10 픽셀 화면 :
0 0 1 1 1 1 1 0 0 0
0 0 0 1 1 1 1 0 2 0
0 0 0 0 1 1 1 2 2 0
0 0 0 0 0 1 1 2 2 0
0 0 0 0 0 2 1 2 2 0
0 0 0 0 2 2 2 2 2 0
0 0 0 2 2 2 2 2 2 0
0 0 2 2 2 2 2 2 2 0
0 2 2 2 2 2 2 2 2 0
0 0 0 0 0 0 0 0 0 0
을 과 같은 이미지의 경우 :
___
\ |
\ |
\|/|
/|
/|
/ |
/____|
거기에 내가 사용할 수있는 것이 있습니까?
큰 해킹이지만 정말 멋진 솔루션입니다! 고마워요! 그러나 muspen OpenGL은 드로잉 타임에 그 정보를 저장합니까? 어떻게 그 객체의 색상과 올바른 쉐이더를 얻을 수 있을까요? – bricklore
@Malte : OpenGL에는 객체 그리기에 사용할 현재 쉐이더와 색상을 저장하는 변수가 있습니다. 객체를 그릴 때 각 픽셀에 대해 그 위치에서 객체의 깊이를 파악하고 이전에 기록 된 깊이보다 가까운 경우 해당 픽셀의 색상을 계산하여 색상 버퍼에 덮어 쓰고 깊이 버퍼의 새로운 최소 깊이. 그런 다음 새 객체를 렌더링하면 해당 변수를 덮어 씁니다. 이전에 렌더링 된 객체의 유일한 흔적은 색상 버퍼의 색상과 깊이 버퍼의 깊이입니다. – icktoofay
좋은 thas 좋고 나쁜 :) 내 첫 번째 생각했다 : ogl 에서이 방법을 끔찍하게 천천히해야합니까? 그곳에서 물건을 결정할 수 있다면, 왜 우리는 어떡하지? – bricklore