m4x3 - ps
4-구성 요소 벡터에 4x3 행렬을 곱합니다.
Syntax
m4x3 dst, src0, src1 |
---|
라는 설치 관리자 실행 파일에 포함됩니다. 여기서
- dst는 대상 레지스터입니다. 결과는 3-성분 벡터입니다.
- src0은 4-구성 요소 벡터를 나타내는 원본 레지스터입니다.
- src1은 4x3 행렬을 나타내는 원본 레지스터로, 3개의 연속 레지스터 중 첫 번째 레지스터에 해당합니다.
설명
픽셀 셰이더 버전 | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
m4x3 | x | x | x | x | x |
xyz 마스크는 대상 레지스터에 필요합니다. negate 및 swizzle 한정자는 src0에 대해 허용되지만 src1에는 허용되지 않습니다.
다음 코드 조각은 수행된 연산을 보여 줍니다.
dest.x = (src0.x*src1.x) + (src0.y*src1.y) + (src0.z*src1.z) + (src0.w*src1.w);
dest.y = (src0.x*src2.x) + (src0.y*src2.y) + (src0.z*src2.z) + (src0.w*src2.w);
dest.z = (src0.x*src3.x) + (src0.y*src3.y) + (src0.z*src3.z) + (src0.w*src3.w);
입력 벡터는 레지스터 src0에 있습니다. 입력 4x3 행렬은 레지스터 src1에 있고 아래 확장에 표시된 대로 다음 두 개의 상위 레지스터에 있습니다. 대상 레지스터(dest.w)의 다른 요소는 영향을 받지 않은 채 3D 결과가 생성됩니다.
이 작업은 일반적으로 모델 공간 변환에서 발생하는 것과 같이 프로젝티브 효과가 없는 행렬로 위치 벡터를 변환하는 데 사용됩니다. 이 명령은 아래와 같이 내적의 집합으로 구현됩니다.
m4x3 r0.xyz, r1, c0 will be expanded to:
dp4 r0.x, r1, c0
dp4 r0.y, r1, c1
dp4 r0.z, r1, c2
Swizzle 및 negate 한정자는 src1 레지스터에 유효하지 않습니다. dst 및 src0 레지스터는 같을 수 없습니다.
관련 항목