タイトル | : E3DRenderWithShadowについて |
記事No | : 9763 |
投稿日 | : 2011/09/12(Mon) 20:32 |
投稿者 | : はむくん |
毎度質問して申し訳ないです いろいろ試したり調べてみたのですが、わからないのでまた質問させて頂きます。 影を投影したいと思い、C++の正常に表示することができるプログラムを e3dhsp_shadow2.hspのサンプルと"影付きレンダリングの仕方"を見ながら 書き換えてみました。 はじめの初期設定は以下のようにしています (idは予め宣言しています。)
E3DEnableShadow( 1); E3DSetShadowBias( 0.005f); SIZE texsize; texsize.cx = 512; texsize.cy = 512; E3DCreateRenderTargetTexture(texsize, E3DFMT_A16B16G16R16F, &scidptr, &texidptr, &okflagptr);//okflagptrは1であることが確認できました。 E3DCreateSprite( _T("フルパスでdummy512.bmp"), 0, 0, &spriteIDptr); int spw,sph; E3DGetSpriteSize(spid, &spw, &sph); E3DSetTextureToDispObj( -2, spid, texidptr);//このあたり自信なし E3DSetShadowMapMode( 0); E3DSetShadowMapLightDir( dir);//平行ライトと同じ向き E3DSetShadowDarkness( 1.0f);
描画のところでは以下のようにしています int hsidarray[2]; hsidarray[0] = hsidptr; //背景のID hsidarray[1] = hsid1; //hsid1はキャラクターのID E3DRenderWithShadow( scid, scidptr, texidptr, hsidarray, 2, 0);
サンプル通りに動かしているつもりですが画面には何も表示されません。 E3DCreateRenderTargetTextureと 影の設定部分、そして最後のE3DWithShadowのあたりはなんとなく理解したつもりなのですが、その間の部分がおそらく間違っているのだと思います。
|