热门问题
时间线
聊天
视角

高級着色器語言

来自维基百科,自由的百科全书

Remove ads

高階著色器語言(即 HLSL,縮寫自 High Level Shader Language[1]High-Level Shading Language[2]),是由微軟擁有及開發的一種著色器語言,最初的開發是為了輔助 Direct3D 9 的著色器組合語言,後成為 Direct3D 10 以來統一著色器模型英語Unified Shader Model所必須的語言。

HLSL只能供微軟的Direct3D以及XNA使用。HLSL是GLSL的先輩,不能與OpenGL標準兼容。它跟NvidiaCg非常相似,是因為兩個開發者曾經緊密合作。[3]

HLSL的主要作用為將一些複雜的圖像處理,快速而又有效率地在顯示卡上完成,與組合式或低階Shader Language相比,能降低在編寫複雜特殊效果時所發生編程錯誤的機會。

Shader model 比較

Pixel shader 比較

更多資訊 Pixel shader 版本, 1.0 to 1.3[4] ...
  • PS 2.0 = DirectX 9.0 original Shader Model 2 specification.
  • PS 2.0a = NVIDIA GeForce FX-optimized model.
  • PS 2.0b = ATI Radeon X700, X800, X850 shader 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" for Executed Instructions means "32 texture instructions and 64 arithmetic instructions."


Remove ads

Vertex shader 比較

更多資訊 Vertex shader 版本, VS 1.1[10] ...
  • VS 2.0 = DirectX 9.0 original Shader Model 2 specification.
  • VS 2.0a = NVIDIA GeForce 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.

範例

灰階貼圖用
  • 灰階值 = 0.3 x 紅 + 0.59 x 綠 + 0.11 x 藍
sampler2D Texture0;

float4 ps_main( float2 texCoord  : TEXCOORD0 ) : COLOR
{
   float4 _inColor = tex2D( Texture0, texCoord );
   float gray = 0.3*_inColor.x + 0.59*_inColor.y + 0.11*_inColor.z;
   float4 _outColor = float4(gray, gray, gray, 1.0);
   
   return _outColor;
}

注釋

Loading content...

外部連結

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads