posts - 0, comments - 1, trackbacks - 0, articles - 25
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

CommitChanges()

Posted on 2009-10-07 14:34 cngamedev 阅读(255) 评论(0)  编辑 收藏 引用 所属分类: DirectX

pdevice->setrenderstate(알파블렌드, true);

m_pEffect->SetTechnique( m_hTechnique );

m_pEffect->Begin( NULL, 0 );
m_pEffect->BeginPass( 0 );


m_pEffect->SetTexture(tex, ptex); ///color텍스쳐
m_pEffect->SetTexture(alphatex,pAtex);/// 알파텍스쳐 1              -------------  1

m_pEffect->CommitChanges();                                                 --------------- 3

 

pDevice->renderprimitive(...); ///프리미티브 호출

m_pEffect->SetTexture(alphatex,pAtex_2);  // 알파텍스쳐2           -------------- 2

m_pEffect->endpass();
m_pEffect->end();

pdevice->setrenderstate(알파블렌드, false);

 

*  위에서  1 번에서 알파텍스쳐를 set한후에 프리미티브를 호출하는데  이때   3번을 안해주면

  2번의 알파텍스쳐가 적용된다.

   BeginPass()와 EndPass() 사이에서 스테이트가 바뀌면 이펙트에 바로 적용되지 않고
CommitChanges()를 불러줘야  제대로 된다. 


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理