zoukankan      html  css  js  c++  java
  • DirectX9 着色器学习(一)

    高级着色器语言(High-level shading Language, HLSL)

    1.编写着色器代码

         写在txt文本中,主程序调用读取文本,在编译时使用相关代码。

    2.编译HLSL着色器

        D3DX库通过ID3DXConstantTable接口,提供给应用程序访问着色器的常量表。

        (1)先取得常量句柄:

                 D3DHANDLE h0;

                 h0=ConstTable->GetConstantByName(0, "viewProjMatrix");

        (2)设置常量

    3. 调用D3DCompileShaderFromFile

          hr  = D3DXCompileShaderFromFile(“Transform.txt”,0,0,"Main","vs 2 0",D3DXSHADER_DEBUG,&errorBuffer,&TransformConstantTable);

    HLSL语言的基本属性:

    (1)函数使用类似C++语法

    (2)参数总是按值传递

    (3)递归不被支持

    (4)函数总是inline的

    bool foo(in const bool b, out int r1, inout float r2){}

    说明:in 声明的变量为输入,默认类型;out声明变量为输出,函数返回时拷贝给型参;inout同时用作输入输出。

    void square(inout float x)

    {

         x=x*x;

    }//x乘方后返回

  • 相关阅读:
    Servlet
    Web服务器和Tomcat
    DOM文档对象模型
    JavaScript总结
    CSS总结
    商城——购物车模块
    用户注册登录认证模块
    P2P技术之STUN、TURN、ICE详解
    P2P中的NAT穿越(打洞)方案详解
    NAT技术详解
  • 原文地址:https://www.cnblogs.com/italysue/p/9364186.html
Copyright © 2011-2022 走看看