随笔分类 -  ShaderX2翻译

ShaderX2翻译
摘要:Smplers每一个不同的纹理贴图你可能在像素着色器中进行采样.你必须声明一个采样器.回忆先前着色器描述的hlsl_rings().float4 lightWood; // xyz == Light Wood Colorfloat4 darkWood; // xyz == Dark Wood Colorfloat ringFreq; // ring frequencysampler PulseTrainSampler;float4 hlsl_rings (float4 Pshade : TEXCOORD0) : COLOR{float scaledDistFromZAxis = sqrt(do 阅读全文
posted @ 2012-06-19 20:41 wuhongxing 阅读(238) 评论(0) 推荐(0)
摘要:Type Modifiers在HLSL中有一些可选的标识符你可能会在你的着色器中使用,最熟悉的是const类型标识符被用在指定在着色器代码中不会改变的变量上.如果使用这些变量放在等号左边时,会编译错误.row_major 和 col_major type类型标识符.能够指明希望矩阵存储在硬件的常量存储区.row_major类型指明矩阵中的行将会存储在常量寄存器中.同样的,col_major指明矩阵中的每列将会被存储在常量寄存器中.Initializers就如我们在先前的实例中显示的,我们能使用C的方式在声明的时候初始化变量float2x2 fMat = {3.0f,5.0f, // row 1 阅读全文
posted @ 2012-06-18 12:34 wuhongxing 阅读(201) 评论(0) 推荐(0)
摘要:Language BasicsNow你有了HLSL顶点和像素着色器如何联系汇编语言着色器的观念,我们能讨论一些语言自身的细节Keywords关键字是HLSL语言先前被定义的标识符,并且不能在你程序中再次定义.被打上星号(*)的关键字不区分大小写asm* bool compile constdecl* do double else extern false float forhalf if in inlineinout int matrix* outpass* pixelshader* return samplershared static string* structtechnique* te 阅读全文
posted @ 2012-06-17 15:15 wuhongxing 阅读(142) 评论(0) 推荐(0)
摘要:汇编语言和编译目标现在我们来看看一些HLSL着色器,我们简要的讨论下Direct3D,D3DX,汇编着色器和你的应用程序之间的联系.着色器首先添加到Direct3D是在DirectX8.0中,在那时,几个虚拟着色器被定义-每个着色器大致对应特定的图形处理器(被顶尖的图形硬件厂商生产).每个虚拟着色器,由一个汇编语言设计.在DirectX8.0和DirectX8.1中,写的着色器(着色器型号vs_1_1 and ps_1_1 through ps_1_4)都是相当短的并且通常被写成适当的汇编语言. 就如Figure 1显示的,应用程序通过把人类可读懂的汇编语言代码通过D3DXAssembleSh 阅读全文
posted @ 2012-06-16 00:05 wuhongxing 阅读(242) 评论(0) 推荐(0)
摘要:Introdudion一个DirectX 9 最新的组件是HLSL(high level shading language).使用这个标准语言,着色器编写者能够投入到算法中而不用担心硬件细节,就如寄存器分配,寄存器读取端口限制,命令问题等等.并且从硬件细节中解放开发.HLSL拥有所有高级语言的普通优点,比如简单的代码复用,改良过的可读性,和优化的编译器.在这本书中的一些章节中我们利用的着色器是用HLSL写的.因此,你很容易理解和使用着色器来渲染物体.在这章,我们概述基本的语言结构,并且整合HLSL着色器到你的程序中.A Simple Example在描述HLSL前,让我们看看一个HLSL的顶点 阅读全文
posted @ 2012-06-14 21:29 wuhongxing 阅读(216) 评论(0) 推荐(0)