【3Dエンジン】Irrlicht初心者質問スレ【高速描画】at GAMEDEV【3Dエンジン】Irrlicht初心者質問スレ【高速描画】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト664:名前は開発中のものです。 08/08/16 20:44:13 MAdEwJ55 ところで公式で聞けないので質問です。 シェーダーをちょっとはじめてみたんですがirr公式のチュートのshaderのサンプルを見つつ 手元の参考書に載ってる簡単なシェーダを試してみたいんですが、想定している色がつかないです。 そもそもDXの本だからirrとの絡ませ方がよく分かりません。 シェーダーのソース: float4x4 g_wvp; float4 g_color; void BasicVS( float3 in_pos : POSITION, out float4 out_pos : POSITION, out float4 out_color : COLOR0) { out_pos = mul(float4(in_pos, 1.0f), g_wvp); //座標変換 out_color = g_color; //頂点の色決定 } void BasicPS( float4 in_color : COLOR0, out float4 out_color : COLOR0) { out_color = in_color; //入力された色情報をそのまま } tachnique BasicTeck { pass P0 { vetexShader = compile vs_3_0 BasicVS(); pixelsShader = compile vs_3_0 BasicPS(); } } 665:名前は開発中のものです。 08/08/16 20:50:02 MAdEwJ55 続き。irrの場合は定数をコールバックで渡すらしい・・・? class MyShaderCallBack : public video::IShaderConstantSetCallBack { public: virtual void OnSetConstants(video::IMaterialRendererServices* services, s32 userData) { IVideoDriver* driver = services->getVideoDriver(); matrix4 worldMat,viewMat,projMat; viewMat = driver->getTransform(video::ETS_VIEW); projMat = driver->getTransform(video::ETS_PROJECTION); worldMat = viewMat * projMat; services->setVertexShaderConstant("g_wvp",&worldMat[0],16); video::SColorf col(0.0f,1.0f,0.0f,0.0f); services->setVertexShaderConstant("g_color",reinterpret_cast<f32*>(&col),4); } }; 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch