游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1094|回复: 0

[求助]获取顶点着色器变量句柄时总出错?

[复制链接]

22

主题

49

帖子

49

积分

注册会员

Rank: 2

积分
49
发表于 2009-2-6 11:46:00 | 显示全部楼层 |阅读模式
//着色器文件diffuse.txt
matrix ViewMatrix;
matrix ViewProjMatrix;

vector green = {0.0f, 1.0f, 0.0f, 1.0f};
struct VS_INPUT
{
  vector position : POSITION;
  vector normal : NORMAL;
};

struct VS_OUTPUT
{
  vector position : POSITION;
  vector diffuse : COLOR;
};

VS_OUTPUT Main(VS_INPUT input)
{
  VS_OUTPUT output = (VS_OUTPUT)0;
  output. position = mul(input.position, ViewProjMatrix);
  output.diffuse = green;
  return output;
}

//源码的一部分
        hr = D3DXCompileShaderFromFile(
                "diffuse.txt",
                0,
                0,
                "Main", // entry point function name
                "vs_1_1",
                D3DXSHADER_DEBUG,
                &shader,
                &errorBuffer,
                &DiffuseConstTable);
......
        hr = Device->CreateVertexShader(
                (DWORD*)shader->GetBufferPointer(),
                &DiffuseShader);
......
        ViewMatrixHandle    = DiffuseConstTable->GetConstantByName(0, "ViewMatrix");
        ViewProjMatrixHandle= DiffuseConstTable->GetConstantByName(0, "ViewProjMatrix");

//ViewMatrixHandle总是0,着色器文件有这个变量(没有写错变量名),为什么会这样
//着色器文我已经重新编写了一次,仍然这样
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-20 09:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表