Re: 2Dキャラを発光させたい ( No.1 ) |
- 名前:管理人 日時:2017/12/16 01:33
> DrawPolygonBaseを用いて簡単な2D描画をしているのですが、
> 頂点毎に加算カラーを設定するにはどうすればよいでしょうか?
> 加算半透明の事ではなく、テクセルに色を加算してから描画する機能です
頂点毎とテクセル毎のどちらでしょうか?
> (たとえば黒服の2Dキャラを真っ白に光らせたい場合などです)
黒服の2Dキャラの透過色ではない部分全部を真っ白にするということでしょうか?
|
Re: 2Dキャラを発光させたい ( No.2 ) |
- 名前:スパ 日時:2017/12/16 01:41
>頂点毎とテクセル毎のどちらでしょうか?
頂点に対し、今ある頂点カラーに加えて加算カラーを追加指定したいです
(もしくはDrawPolygonBaseの呼び出し単位で)
>黒服の2Dキャラの透過色ではない部分全部を真っ白にするということでしょうか?
そうです。
以前のログを少し見たのですが、真っ白に塗ったキャラの画像を別途用意し、
加算半透明で2重に描画するという手法だと素材の用意が大変になるので避けたいのです
|
Re: 2Dキャラを発光させたい ( No.3 ) |
- 名前:管理人 日時:2017/12/16 23:56
> 頂点に対し、今ある頂点カラーに加えて加算カラーを追加指定したいです
> (もしくはDrawPolygonBaseの呼び出し単位で)
すみません、DrawPolygonBase では加算カラーを指定することはできません・・・
> 以前のログを少し見たのですが、真っ白に塗ったキャラの画像を別途用意し、
> 加算半透明で2重に描画するという手法だと素材の用意が大変になるので避けたいのです
画像の透過色以外の部分を真っ白にするのでしたらシェーダーを使用しなくても
画像の RGB成分を無視するかどうかを設定するための関数 SetIgnoreDrawGraphColor を使用することで
実現することができます
例えば画像の透過色以外の部分を緑色にして描画する場合は以下のようにします
// 描画輝度を緑色にする
SetDrawBright( 0, 255, 0 ) ;
// 画像のRGB成分を無視する
SetIgnoreDrawGraphColor( TRUE ) ;
// 画像を描画
DrawGraph( 0, 0, GraphHandle, TRUE ) ;
// 画像のRGB成分を無視する設定を解除する
SetIgnoreDrawGraphColor( FALSE ) ;
// 描画輝度も元に戻す
SetDrawBright( 255, 255, 255 ) ;
よろしければお試しください m(_ _)m
|
Re: 2Dキャラを発光させたい ( No.4 ) |
- 名前:スパ 日時:2017/12/17 01:23
サンプル提供ありがとうございます。
早速試してみました。
白い素材の用意が必要なくなくなりました。
ありがとうございました。
実験してみて気がついたのですが
キャラクターが半透明の場合かつ任意カラーの発光した状態をあらわしたい時
二重で描画してるゆえにつじつまが合わないようです。
二重描画の負荷の問題もありますし、
DrawPolygonBase ではなくほかのものとシェーダーを組み合わせて
実現する必要がありますでしょうか?
(その場合色を足し算するだけなので勉強不足の私でも既存のサンプルからの改造ができそうな期待をしております)
|
Re: 2Dキャラを発光させたい ( No.5 ) |
- 名前:スパ 日時:2017/12/17 14:39
|
Re: 2Dキャラを発光させたい ( No.6 ) |
- 名前:スパ 日時:2017/12/17 15:39
とおもったら
DrawPolygonBaseのときはできていた
カリングがうまくいかなくなってしまいました
対処法をご教授お願いします
|
Re: 2Dキャラを発光させたい ( No.7 ) |
- 名前:スパ 日時:2017/12/17 16:03
追記
うまくいかないというのは
//2Dペラの場合はどちらを向いていても出す
SetUseBackCulling( DX_CULLING_NONE ) ;
DrawPolygonBase(...);
//自前で組み立てたキューブの場合は表だけ出す
SetUseBackCulling( DX_CULLING_LEFT ) ;
DrawPolygonBase(...);
この処理はうまくいっていましたが、
このDrawPolygonBaseを(各種前処理して)DrawPrimitive2DToShader に置換すると必ず両面でてキューブの描画が不整合を起こします
どの場合もトライアングルストリップで描画しています。
キューブはタイヤ状に筒を構成した上で左右のふたを重なった頂点を余分に使う手法で合計22点で出しています。
よろしくお願いいたします。
|
Re: 2Dキャラを発光させたい ( No.8 ) |
- 名前:管理人 日時:2017/12/18 01:13
|
Re: 2Dキャラを発光させたい ( No.9 ) |
- 名前:スパ 日時:2017/12/18 21:19
対応ありがとうございます。
上書きしてリビルドしましたが、DrawString以外のものが出なくなりました。
また、音の機能は一切さわっていないのですがノイズ音が爆音で出ています。
環境ですが、
MCVC++ Express 2010
Sample_VC2010用.slnをベースにいじっています
解答したデータを上記slnと同じ階層にすべて上書きした後、Debug環境でリビルドしました
ほかお渡ししたほうがいい情報があればお願いします。
(なお現在は自前で外積を計算して描画スキップして対応しています)
|
Re: 2Dキャラを発光させたい ( No.10 ) |
- 名前:管理人 日時:2017/12/19 00:16
Sample_VC2010用.sln ですか・・・
2015年6月にはファイル名が Sample_VC2010用.sln から VisualStudio_2010用.sln に変更したので、
もともとお使いのバージョンは結構古いもののようですね
お手数で申し訳ありませんが、上書きでは正常に必要なファイルが更新されないかもしれませんので
slnと同じ階層にあるDXライブラリ関係の libファイルと hファイルを削除した上で DxLibVCTest.exe を
解凍した際にできる DxLibVCTestフォルダ内のファイルを slnと同じ階層にコピーして、
リビルド・実行をしてみてください m(_ _;m
|
Re: 2Dキャラを発光させたい ( No.11 ) |
- 名前:スパ 日時:2017/12/19 04:05
結果変わりませんでした。
>もともとお使いのバージョンは結構古いもののようですね
そうですね久しぶりに触り始めた感じです
せっかくなので最新のDxLib_VC3_19をベースに変更してみようとおもい
新しく解答したフォルダで素の状態で VisualStudio_2010用.sln をビルド&実行すると
フルスクリーンで女の子が表示されて、爆音ノイズが出ます。
.3系?のライブラリと私のPCの相性が悪いのでしょうか
もしよかったら同slnでVS2010でビルドしたサンプルゲームVisualStudio_2010.exeをいただいてこちらで起動してみるとか、、、意味あるかな?
もしくはDXLibに対してVSが古いのがよくないのですかね
(無料の最新VSはどれだろう)
よろしくお願いいたします。
|