Cao cấp trứ sắc khí ngữ ngôn
Cao cấp trứ sắc khí ngữ ngôn( tứcHLSL,Súc tả tựHigh Level Shader Language[1]HoặcHigh-Level Shading Language[2]), thị doVi nhuyễnỦng hữu cập khai phát đích nhất chủngTrứ sắc khí ngữ ngôn,Tối sơ đích khai phát thị vi liễu phụ trợ Direct3D 9 đích trứ sắc khí hối biên ngữ ngôn, hậu thành vi Direct3D 10 dĩ laiThống nhất trứ sắc khí mô hìnhSở tất tu đích ngữ ngôn.
HLSL chỉ năng cung vi nhuyễn đíchDirect3DDĩ cậpXNASử dụng. HLSL thịGLSLĐích tiên bối, bất năng dữOpenGLTiêu chuẩn kiêm dung. Tha cânNvidiaĐíchCgPhi thường tương tự, thị nhân vi lưỡng cá khai phát giả tằng kinh khẩn mật hợp tác.[3]
HLSL đích chủ yếu tác dụng vi tương nhất ta phục tạp đíchĐồ tượng xử lý,Khoái tốc nhi hựu hữu hiệu suất địa tạiHiển kỳ tạpThượng hoàn thành, dữ tổ hợp thức hoặc đê giai Shader Language tương bỉ, năng hàng đê tại biên tả phục tạp đặc thù hiệu quả thời sở phát sinh biên trình thác ngộ đích cơ hội.
Shader model bỉ giác
[Biên tập]Pixel shader bỉ giác
[Biên tập]Pixel shader bản bổn | 1.0 to 1.3[4] | 1.4[4] | 2.0[4][5] | 2.0a[4][5] | 2.0b[4][5] | 3.0[4][6] | 4.0[7] | 4.1[8] | 5.0[9] |
---|---|---|---|---|---|---|---|---|---|
Dependent texture limit | 4 | 6 | 8 | Unlimited | 8 | Unlimited | Unlimited | Unlimited | Unlimited |
Texture instruction limit | 4 | 6*2 | 32 | Unlimited | Unlimited | Unlimited | Unlimited | Unlimited | Unlimited |
Position register | No | No | No | No | No | Yes | Yes | Yes | Yes |
Instruction slots | 8+4 | 8+4 | 32 + 64 | 512 | 512 | ≥ 512 | ≥ 65536 | ≥ 65536 | ≥ 65536 |
Executed instructions | 8+4 | 6*2+8*2 | 32 + 64 | 512 | 512 | 65536 | Unlimited | Unlimited | Unlimited |
Texture indirections | 4 | 4 | 4 | Unlimited | 4 | Unlimited | Unlimited | Unlimited | Unlimited |
Interpolated registers | 2 + 8 | 2 + 8 | 2 + 8 | 2 + 8 | 2 + 8 | 10 | 32 | 32 | 32 |
Instruction predication | No | No | No | Yes | No | Yes | No | No | No |
Index input registers | No | No | No | No | No | Yes | Yes | Yes | Yes |
Temp registers | 2 | 6 | 12 to 32 | 22 | 32 | 32 | 4096 | 4096 | 4096 |
Constant registers | 8 | 8 | 32 | 32 | 32 | 224 | 16x4096 | 16x4096 | 16x4096 |
Arbitraryswizzling | No | No | No | Yes | No | Yes | Yes | Yes | Yes |
Gradient instructions | No | No | No | Yes | No | Yes | Yes | Yes | Yes |
Loop count register | No | No | No | No | No | Yes | Yes | Yes | Yes |
Face register (2-sided lighting) | No | No | No | No | No | Yes | Yes | Yes | Yes |
Dynamic flow control | No | No | No | No | No | 24 | Yes | Yes | Yes |
Bitwise Operators | No | No | No | No | No | No | Yes | Yes | Yes |
Native Integers | No | No | No | No | No | No | Yes | Yes | Yes |
- PS 2.0= DirectX 9.0 originalShader Model 2specification.
- PS 2.0a= NVIDIAGeForce FX-optimized model.
- PS 2.0b= ATIRadeon X700, X800, X850shader model, DirectX 9.0b.
- PS 3.0=Shader Model 3.0.
- PS 4.0=Shader Model 4.0.
- PS 4.1=Shader Model 4.1.
- PS 5.0=Shader Model 5.0.
"32 + 64" forExecuted Instructionsmeans "32 texture instructions and 64 arithmetic instructions."
Vertex shader bỉ giác
[Biên tập]Vertex shader bản bổn | VS 1.1[10] | VS 2.0[5][10] | VS 2.0a[5][10] | VS 3.0[6][10] | VS 4.0[7] | VS 4.1[11] | VS 5.0[9] |
---|---|---|---|---|---|---|---|
# of instruction slots | 128 | 256 | 256 | ≥ 512 | 4096 | 4096 | 4096 |
Max # of instructions executed | Unknown | 65536 | 65536 | 65536 | 65536 | 65536 | 65536 |
Instruction predication | No | No | Yes | Yes | Yes | Yes | Yes |
Temp registers | 12 | 12 | 13 | 32 | 4096 | 4096 | 4096 |
# constant registers | ≥ 96 | ≥ 256 | ≥ 256 | ≥ 256 | 16x4096 | 16x4096 | 16x4096 |
Static flow control | ??? | Yes | Yes | Yes | Yes | Yes | Yes |
Dynamic flow control | No | No | Yes | Yes | Yes | Yes | Yes |
Dynamic flow control depth | No | No | 24 | 24 | Yes | Yes | Yes |
Vertex texture fetch | No | No | No | Yes | Yes | Yes | Yes |
# of texture samplers | N/A | N/A | N/A | 4 | 128 | 128 | 128 |
Geometry instancingsupport | No | No | No | Yes | Yes | Yes | Yes |
Bitwise operators | No | No | No | No | Yes | Yes | Yes |
Native integers | No | No | No | No | Yes | Yes | Yes |
- VS 2.0= DirectX 9.0 originalShader Model 2specification.
- VS 2.0a= NVIDIAGeForce FX-optimized model.
- VS 3.0=Shader Model 3.0.
- Note that ATI X1000 series cards (e.g. X1900) does not support Vertex Texture Fetch, hence it does not fully comply with the VS 3.0 model. Instead, they offer a feature called "Render to Vertex Buffer (R2VB)" that provides functionality that is a superset of Vertex Texture Fetch.[12]
- VS 4.0=Shader Model 4.0.
- VS 4.1=Shader Model 4.1.
- VS 5.0=Shader Model 5.0.
Phạm lệ
[Biên tập]- Hôi giai thiếp đồ dụng
- Hôi giai trị = 0.3 x hồng + 0.59 x lục + 0.11 x lam
sampler2DTexture0;
float4ps_main(float2texCoord:TEXCOORD0):COLOR
{
float4_inColor=tex2D(Texture0,texCoord);
floatgray=0.3*_inColor.x+0.59*_inColor.y+0.11*_inColor.z;
float4_outColor=float4(gray,gray,gray,1.0);
return_outColor;
}
Chú thích
[Biên tập]- ^Writing HLSL Shaders in Direct3D 9 (Windows).msdn.microsoft.com.[2018-06-25].( nguyên thủy nội dungTồn đươngVu 2018-06-25 ).
- ^HLSL.MSDN.Microsoft.[5 January2015].( nguyên thủy nội dungTồn đươngVu 2018-06-25 ).
- ^Fusion Industries:: Cg and HLSL FAQ::.24 August 2012. (Nguyên thủy nội dungTồn đương vu 24 August 2012 ).
- ^4.04.14.24.34.44.5Pixel Shader Differences.msdn.microsoft.com. 2011-02-08[2014-08-28].( nguyên thủy nội dungTồn đươngVu 2013-03-16 ).
- ^5.05.15.25.35.4Peeper, Craig.Microsoft DirectX High Level Shader Language (HLSL)(PPT).microsoft.com: 5–8, 24–25. 2004-03-15.[Vĩnh cửu thất hiệu liên kết]
- ^6.06.1Shader Model 3.0, Ashu Rege, NVIDIA Developer Technology Group, 2004.
- ^7.07.1The Direct3D 10 System, David Blythe, Microsoft Corporation, 2006.
- ^Tồn đương phó bổn.[2014-08-28].( nguyên thủy nội dungTồn đươngVu 2015-12-01 ).
- ^9.09.1Tồn đương phó bổn.[2014-08-28].( nguyên thủy nội dungTồn đươngVu 2013-09-09 ).
- ^10.010.110.210.3Vertex Shader Differences.msdn.microsoft.com. 2011-02-08[2014-08-28].( nguyên thủy nội dungTồn đươngVu 2013-03-14 ).
- ^Tồn đương phó bổn.[2014-08-28].( nguyên thủy nội dungTồn đươngVu 2014-05-16 ).
- ^Radeon X1000 series lacks vertex texture fetch[1](Hiệt diện tồn đương bị phân,Tồn vuHỗ liên võng đương án quán)
Ngoại bộ liên kết
[Biên tập]- Introduction to the DirectX 9 High-Level Shader Language(Hiệt diện tồn đương bị phân,Tồn vuHỗ liên võng đương án quán) (MSDN Library)
- HLSL Introduction(Hiệt diện tồn đương bị phân,Tồn vuHỗ liên võng đương án quán)
- Shader Model Comparison at Beyond3D(Hiệt diện tồn đương bị phân,Tồn vuHỗ liên võng đương án quán)
- Riemer's HLSL Introduction & Tutorial with lots of sample code(Hiệt diện tồn đương bị phân,Tồn vuHỗ liên võng đương án quán)