2014-03-04 2 views
0

필자는 오래된 OpenGL (2.1)/Cg (3.1) 코드를 가지고 있습니다. 특히 지연 쉐이딩 렌더링을 개선해야합니다. 패스 중 하나의 커널을 변경하고 싶습니다. .Cg와 GLSL 쉐이더 혼합하기

나는 GLSL (3.30)을 추가하고있다. 나는 훨씬 더 익숙하다. 그것은 작동하는 것 같다,하지만 만약 어떤 수 (GLSL/Cg) 혼합 성능 영향을 미칠 수 있습니다 궁금하네요. 즉, 생성 된 asm 코드는 완전히 균질해야합니까?

답변

0

GLSL과 Cg를 하나의 셰이더에 혼합 할 수는 없지만 다른 셰이더에서는 잘 동작합니다. Cg 코드는 어쨌든 GLSL로 변환됩니다 (Nvidia 드라이버를 사용하지 않는 한, 직접 셰이더 asm 코드로 변환 될 수 있습니다). Cg 컴파일러에 의해 생성 된 GLSL 코드를 보면 비효율적 일 수있는 이상한 일을보고 싶을 수 있습니다.

0

Cg 코드에서 전처리기로 cgc를 실행하고 GLSL을 출력 할 수 있어야합니다. GLSL을 선택하려면 -profile 옵션을 사용하십시오.