2013-09-05 6 views
0

CG에 코드가 있습니다. 이 코드에서 정점 셰이더는 정점 위치 (float4), 텍스처 좌표 (float2) 및 색상 (float4)의 3 가지 매개 변수를 내 보냅니다. 그러나 프래그먼트 프로그램이 정의되지 않았습니다. 셰이더가 프래그먼트 셰이더에서이 2 개의 매개 변수 (uv 및 색상)를 사용하는 방법은 무엇입니까?CG 셰이더 언어의 기본 조각 셰이더는 어떻게됩니까?

+1

사용하지 못할 수 있습니다. 조각 쉐이더에서. 고정 함수 파이프 라인을 사용하는 경우, 간단한 텍스처 매핑과 채색에 사용할 수 있습니다. 예를 들어 텍스처 매개 변수를 조각 색상으로 텍스처를 변조하도록 설정 한 경우 올바르게 호출하면 각 조각의 텍스처 샘플로 색상이 곱 해집니다. – user1118321

답변

0

왜 조각 쉐이더를 정의하지 않는 것이 좋을까요?

IIRC 기본값은 커넥터 레지스터 COLOR0에 할당 한 정점 값을 사용하고 조명을 사용하지 않는 것입니다. 텍스처 할당은 OpenGL 상태 시스템에서 수행해야합니다 (그러나 실행중인 컨텍스트를 알려주지 않았으므로 DirectX이거나 누가 알 수 있습니다 ...)

+0

감사합니다. 셰이더를 쓰는 방법을 알고 있습니다. CG lang. 하지만 CG 코드를 GLSL로 변환해야합니다. – toodef

+0

나는 당신을 팔로우하지 않습니다. GLSL의 기본 경우는 여전히 동일하며 텍스처 바인딩은 캡슐화 상태 블록에 의해 관리됩니다. 또한, 정점 출력을 정의하면 정점 출력이 프래그먼트 셰이더 입력에 매핑됩니다. – bjorke