저는 그래픽 아트를 가속화하기 위해 OpenGL을 사용하는 예술 응용 프로그램을 사용하고 있습니다. 나는 임의의 조각 별 커브를 그릴 수있는 기능을 추가하고 싶습니다. SVG 'path'요소로 정의 할 수있는 것과 거의 같은 종류의 모양입니다.GLSL은 임의 길이의 버퍼를 처리 할 수 있습니까?
내 경로를 CPU에서 다각형으로 테셀레이션하지 않고 버퍼의 값 배열을 내 곡선 부분을 정의한 쉐이더에 전달한 다음 입/출력 테스트를 사용하여 픽셀은 실제로 내부에있었습니다. 즉, 내 경로의 각 세그먼트를 설명하는 데이터의 잠재적 인 큰 배열을 반복합니다.
GPL은 몇 년 전에 셰이더 프로그래밍을 배웠던 때를 기억합니다. GPU는 두 가지 분기를 평가 한 다음 사용되지 않은 분기를 버림으로써 if 문을 처리합니다. 이것은 내가 작은 부분만을 사용하더라도 (즉, 내 버퍼는 1024 개의 커브 세그먼트를 처리 할 수있는 용량을 가지고 있지만 전체 버퍼를 통해 자동으로 실행된다는 것을 의미합니다. 그러나 드로잉 할 단순한 사각형은 처음 네 명).
이 변수 데이터를 처리하려면 어떻게해야합니까? 현대 GPU가 이와 같은 조건부 코드를 처리 할 수 있습니까?
현대 GPU는 보통'if'를 올바르게 처리합니다. 그러나 모바일 GPU는 종종 두 가지를 사용하지 않고 실행합니다. –