zoukankan      html  css  js  c++  java
  • Direct3D 9学习笔记(15)顶点着色器

    顶点着色器

    image

    顶点着色器的创建

    image

    顶点着色器的设置

    image

    顶点着色器的销毁

    image

    Demo示例

    ID3DXBuffer* shader      = 0;
    ID3DXBuffer* errorBuffer = 0;
    
    hr = D3DXCompileShaderFromFile(
        "diffuse.txt",
        0,
        0,
        "Main", // entry point function name
        "vs_1_1",
        D3DXSHADER_DEBUG, 
        &shader,
        &errorBuffer,
        &DiffuseConstTable);
    
    // output any error messages
    if( errorBuffer )
    {
        ::MessageBox(0, (char*)errorBuffer->GetBufferPointer(), 0, 0);
        d3d::Release<ID3DXBuffer*>(errorBuffer);
    }
    
    if(FAILED(hr))
    {
        ::MessageBox(0, "D3DXCompileShaderFromFile() - FAILED", 0, 0);
        return false;
    }
    
    //
    // Create shader
    //
    
    hr = Device->CreateVertexShader(
        (DWORD*)shader->GetBufferPointer(),
        &DiffuseShader);
    
    if(FAILED(hr))
    {
        ::MessageBox(0, "CreateVertexShader - FAILED", 0, 0);
        return false;
    }
    
    d3d::Release<ID3DXBuffer*>(shader);
    

    启用Shader

    Device->Clear(0, 0, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0xffffffff, 1.0f, 0);
    Device->BeginScene();
    
    Device->SetVertexShader(DiffuseShader);
    
    Teapot->DrawSubset(0);
    
    Device->EndScene();
    Device->Present(0, 0, 0, 0);
    

    image

  • 相关阅读:
    python 将字符串转化为可执行代码
    NGS的duplicate的问题
    建库原理
    生信转岗心得
    openpyxl模块处理excel文件
    getopt两个模块getopt 和gun_getopt 的异同
    Migrate repo from Gitlab to Github
    flume(2)
    flume
    docker命令总结
  • 原文地址:https://www.cnblogs.com/Clingingboy/p/2707820.html
Copyright © 2011-2022 走看看