游戏开发论坛

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

如何?得effect file?面的一??整?抵

[复制链接]

414

主题

611

帖子

621

积分

高级会员

Rank: 4

积分
621
发表于 2008-1-15 17:34:00 | 显示全部楼层 |阅读模式
我想?算?入Pixel Shader的次??然後在C++中印出???次??我用ID3DXEffect的GetInt去?得???在Shader中的整??但是?得的值都是等於我用ID3DXEffect的SetInt去?定的初始值.


  1. int m_nSM_0_Light_Area;
  2. D3DXHANDLE m_hSM_0_Light_Area;
  3. m_hSM_0_Light_Area = g_pEffect_ASM->GetParameterByName(NULL, "SM_0_Light_Area");
  4. g_pEffect_ASM->SetInt(m_hSM_0_Light_Area, 0);

  5.     D3DMATERIAL9 *pMtrl;
  6.     pMtrl = m_MeshShip.m_pMaterials;

  7.     IDirect3DBaseTexture9** ppTexArray=m_MeshShip.m_pTextures;

  8.     for(unsigned int i=0; i<m_MeshShip.m_dwNumMaterials; i++)
  9.     {
  10.      vTemp.x = pMtrl->Diffuse.r;
  11.      vTemp.y = pMtrl->Diffuse.g;
  12.      vTemp.z = pMtrl->Diffuse.b;
  13.      vTemp.w = pMtrl->Diffuse.a;
  14.      if(m_hMaterialColor_ASM != NULL)
  15.      {
  16.      g_pEffect_ASM->SetVector(m_hMaterialColor_ASM, &vTemp);
  17.      }

  18.      if (ppTexArray[i]==NULL)
  19.      {
  20.      HRESULT hr;
  21.      hr=g_pEffect_ASM->SetBool(m_hUseDiffuseTexture_ASM,FALSE);
  22.      }
  23.      else
  24.      {
  25.      HRESULT hr;
  26.      hr=g_pEffect_ASM->SetTexture("DiffuseTexture", ppTexArray[i]);
  27.      hr=g_pEffect_ASM->SetBool(m_hUseDiffuseTexture_ASM,TRUE);
  28.      }

  29.      g_pEffect_ASM->CommitChanges();
  30.      m_MeshShip.GetLocalMesh()->DrawSubset(i);
  31.      pMtrl++;
  32.     }

  33. g_pEffect_ASM->GetInt(m_hSM_0_Light_Area,&m_nSM_0_Light_Area);
复制代码


// shader code

  1. extern int SM_0_Light_Area;

  2. float4 PSScene(VS_OUTPUT In) : COLOR
  3. {
  4.     SM_0_Light_Area++;
  5.     return float4(1,0,0,1);
  6. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-19 21:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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