셰이더 모델 2.0에서는 256 개의 상수 레지스터를 사용할 수 있습니다. 나는 다양한 쉐이더를보고 무엇이 단일 레지스터를 구성하는지 알아 내려고 노력하고 있습니까?HLSL에서 어떻게 레지스터를 계산합니까?
예를 들어, 내 인스 턴싱 쉐이더에서, 나는 다음과 같은 변수는 함수의 외부 상단에 선언 :
float4x4 InstanceTransforms[40];
float4 InstanceDiffuses[40];
float4x4 View;
float4x4 Projection;
float3 LightDirection = normalize(float3(-1, -1, -1));
float3 DiffuseLight = 1;
float3 AmbientLight = 0.66;
float Alpha;
texture Texture;
얼마나 많은 레지스터 내가 소비 한? 어떻게 계산합니까?
내 픽셀 쉐이더에는 float []라는 커널이 있습니다. 이 배열의 길이를 늘리면 사용되는 레지스터가 증가합니다. 루프에서 if (kernel [i]! = 0)를 사용하면 사용되는 레지스터도 비약적으로 증가합니다. 왜이게 될지 아십니까? – Darkhydro