두 그래픽 API (OpenGL 및 DirectX)는 여러 단계를 프로그래밍 할 수있는 잘 정의 된 파이프 라인을 고안합니다. 이러한 프로그램 가능 스테이지는 고정 된 최소량의 데이터를 필요로하며, 데이터에 대해 올바르게 정의 된 범위의 작업을 수행하고 정의 된 최소 출력을 출력하여 데이터가 다음 스테이지로 올바르게 전달 될 수 있도록해야합니다. 이 파이프 라인은 제한된 양의 유형의 기하학적 데이터에서만 작동하도록 설계된 것처럼 보입니다. D3D와 OGL의 경우 모두 정점 데이터와 텍스처 좌표입니다.
그러나 내가 만들려고하는 응용 프로그램이 기하 데이터를 나타내는 데 정점 (또는 voxels)을 사용하지 않고 변환 또는 투영 또는 래스터 화 또는 보간 또는 이와 유사한 것을 수행하지 않는 경우 API의 이러한 제한 또는 파이프 라인은 상황을 어렵게 만듭니다.
각 단계가 데이터에 대해 수행하는 기능과 각 단계에서 출력되는 데이터 유형이 제 이점으로 바뀌도록 그래픽 파이프 라인을 변경할 수있는 방법이 있습니까? 그렇지 않은 경우 '원시'API 함수를 사용하여 자체 파이프 라인을 구성 할 수있는 방법이 있습니까? 그렇지 않다면 왜 불가능한지 언급하십시오.
편집 : 내 응용 프로그램은 밀도 함수를 사용하여 형상을 나타냅니다. 이 함수는 공간의 각 지점에 값을 갖습니다. 카메라의 절두체를 3D 그리드로 나누면 각 블록을 픽셀로 투영 할 수 있습니다. 각 블록에서 밀도 함수를 통합하고 해당 값이 필요한 값 이상인지 확인합니다. 그렇다면 블록에 무언가 존재하고 해당 블록에 해당하는 픽셀이 렌더링 된 것으로 가정합니다. 이제 렌더러에서 정점 버퍼의 정점 데이터 대신 그래픽 하드웨어에 함수 (문자열로 표시)를 전달하고 싶습니다. 이것은 또한 버텍스 쉐이더에 균질 한 클립 공간으로 변환 할 버텍스가없고 프래그먼트 쉐이더가 픽셀 정보를 얻지 않음을 의미합니다. 대신, 이제 대부분의 조회 및 평가가 픽셀 당 발생합니다.