2010-04-01 6 views
3

라인의 방향을 눈 좌표로 계산하고 정점 및 프래그먼트 셰이더를 사용하여 라인의 모든 픽셀에이 값을 저장할 수 있기를 원합니다. 내 생각은 각 쌍의 꼭지점에 대한 모델 뷰 변환 후 atan2 (Gy/Gx)를 사용하여 방향 그래디언트를 계산 한 다음이 값을 색상 강도로 퀀 타이즈하여 조각 쉐이더로 전달하는 것이 었습니다. 어떻게 이것을 달성하기 위해 꼭지점 쌍의 위치에 액세스 할 수 있습니까, 아니면 내가 사용해야 할 다른 방법이 있습니까?
감사버텍스 쉐이더를 사용하여 라인 방향 결정하기

답변

1

어떻게 위치 정점의 쌍 에 액세스 할 수 있습니다?

단지 정점과 조각 셰이더를 사용하는 것만으로는 불가능합니다. 쉬운 방법은 geometry shaders을 사용하는 것입니다. 이 쉐이더 스테이지에서는 선분을 구성하는 한 쌍의 정점에 액세스 할 수 있습니다. 그런 다음 라인 방향을 결정하고 조각 셰이더로 전달하는 것은 간단합니다.

(목표 대상으로 인해) 기하학 셰이더가 옵션이 아닌 경우 (각 꼭지점에 실제 꼭지점과 다음 꼭지점을 저장하는) 지오메트리를 복제 한 다음 정점 셰이더에서 계산을 수행 할 수 있습니다.

+0

죄송합니다. OpenGL 2.1을 사용하여 지오메트리 셰이더에 액세스 할 수 없었어야합니다. 다음 버텍스를 쉐이더에 전달할 수 있다고 생각하지만, 렌더링되는 현재 버텍스를 어떻게 결정할 수 있습니까? 현재 drawElements 함수를 사용하고 있습니다. glBegin (GL_QUADS) 후에 glVertex3f를 사용하여 모든 꼭짓점을 나열하고, 각 호출 후에 다음 정점 위치와 함께 균일 한 vec3을 전달하는 것과 같은 작업을 수행해야합니까? – Brett

+0

@Brett 추가 꼭지점 속성을 사용하고 싶습니다.이 속성은 항상 다음 꼭지점을 배치합니다. 그래서 여러분의 버텍스 배열은 현재의 두 배가 될 것이고 여러분의 버텍스 쉐이더는 두 값에 접근 할 수 있습니다. –

관련 문제