トップページ > 記事閲覧
2Dキャラを発光させたい
名前:スパ 日時: 2017/12/15 19:53

DrawPolygonBaseを用いて簡単な2D描画をしているのですが、 頂点毎に加算カラーを設定するにはどうすればよいでしょうか? 加算半透明の事ではなく、テクセルに色を加算してから描画する機能です (たとえば黒服の2Dキャラを真っ白に光らせたい場合などです) (スペキュラっていうんでしょうか?) シェーダーの知識はあまりありませんが、サンプルや参考サイトなどがあれば何とかなるかもしません よろしくお願いいたします
メンテ

Page: 1 | 2 |

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

ここを参考にして https://qiita.com/hart_edsf/items/799b0af6d63f9e200853 DrawPrimitive2DToShader に変えて実装できました。 ありがとうございました!
メンテ
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

すみません、ToShader 系のオリジナルシェーダーを使用する2D描画関数では SetUseBackCulling で 何を指定してもカリングされないようになっていました ToShader 系のオリジナルシェーダーを使用する2D描画関数でも SetUseBackCulling で設定した 通りのカリングがされるように修正したバージョンをアップしましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.exe // Windows版 C++ Builder 10.1 Berlin 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.exe // Android版 ARM用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.exe // Android版 x86用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース ( 中身を既存のライブラリのファイルに上書きして、VisualStudioをお使いの場合は『リビルド』を、  BCCをお使いの場合は『再構築』をして下さい )
メンテ
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はどれだろう) よろしくお願いいたします。
メンテ

Page: 1 | 2 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存