- 1 名前:デフォルトの名無しさん [05/02/25 05:10:53 ]
- ※回答する人も、質問する人も必ず読んでください
【 回答してくださる方 】 ・ できるだけ優しく質問に答えてあげてください。 ・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。 「ググれ」以外の回答でおながいします。 ・ 神ですら理解不能な質問は無視して下さい。 【 質問する香具師 】 ・ どんな事で躓いているのか明確にしる。 ・ 長くならないなら躓いている部分のコードを晒してみれ。 ・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書け。
- 94 名前:名前は開発中のものです。 mailto:sage [2005/12/01(木) 20:51:38 ID:/rA1ZDgK]
- ようやく質問できそうな板を発見しました
D3DX9でメッシュを表示してるんですがメッシュ全体の座標移動で引っかかってます 現在はループ内でメッシュの一つ一つの頂点データに行列を掛け合わせて 座標移動させてます。もっと効率のいい方法はないのでしょうか? メッシュ自体を座標移動させる関数とかがあるはずだと思って探しては居るのですが。 わかる方がいましたら、ヒントだけでもいいのでお願いしますm(_ _)m
- 95 名前:名前は開発中のものです。 mailto:sage [2005/12/01(木) 21:32:25 ID:cei8bs2s]
- 本当に頂点情報を動かしたい場合、あるいはシェーダを使う場合は、その方法しかないよ。
まぁでも普通、固定機能においてメッシュ単位で移動する時は、ローカル座標行列を指定する。 device->SetTransform( D3DTS_WORLD, &local_matrix ); こんな感じで設定後、DrawPrimitive(DrawSubset?)すると。 こっちのが良いかもね pc8.2ch.net/test/read.cgi/gamedev/1132937938/
- 96 名前:名前は開発中のものです。 mailto:sage [2005/12/01(木) 21:34:58 ID:WP5eL4DZ]
- 変換行列をSetTransformに渡して
メッシュの頂点情報をDrawPrimitive系に渡してやれば D3Dが勝手に変換してくれるよ。
- 97 名前:96 mailto:sage [2005/12/01(木) 21:36:24 ID:WP5eL4DZ]
- 何よ! 割り込まないでよ!
- 98 名前:名前は開発中のものです。 mailto:sage [2005/12/01(木) 22:00:20 ID:cei8bs2s]
- あーら、いらしたの
ごめん遊ばせ、オホホホホ
- 99 名前:94 mailto:sage [2005/12/01(木) 22:43:49 ID:/rA1ZDgK]
- >>95
>>96 ありがとうございましたm(_ _)m 解決の糸口になりました。これでやっと先に進めそうです。
- 100 名前:名前は開発中のものです。 [2005/12/07(水) 14:13:03 ID:hfK79TvX]
- 人生初の100取っておこ。
- 101 名前:名前は開発中のものです。 [2005/12/11(日) 00:57:46 ID:tpuxQZPJ]
- みなさん、ゲームを作る時・公開する時に、
素材データはどう扱っているのでしょうか。 可能なら自力のソースコードで 暗号化+ファイルパッキングをしたいのですが、 既にライブラリとかあるなら、 そこで労力を取られても本末転倒なので 先人の知恵をお借りしようかとも思っています。
- 102 名前:名前は開発中のものです。 mailto:sage [2005/12/11(日) 02:29:58 ID:mkpzTkl3]
- リソースに含むだけで、特に何もしていないな。
- 103 名前:名前は開発中のものです。 mailto:sage [2005/12/11(日) 06:40:35 ID:Ad4hxLcO]
- >>101
私もリソースに入れるのが大半だな。 素材自体に重点があるゲーム(AVGやノベル系シナリオ系等)以外の場合なら 特に考慮しないでデータフォルダにそのまま置いてある。
- 104 名前:名前は開発中のものです。 mailto:sage [2005/12/11(日) 12:49:45 ID:NkBX4KCs]
- ファイル毎に適当にXOR数回掛けて
ひとつのファイルにパックしてる。 これだけでも多分わざわざ見るやつはいないかと。
- 105 名前:名前は開発中のものです。 mailto:sage [2005/12/12(月) 19:29:03 ID:FwPrGwWp]
- Cmagazine今月号の、ゲームのシクミっていう連載に
ファイルパックと暗号化の作例が載ってるので 読んでみるのもいいかも。
- 106 名前:名前は開発中のものです。 mailto:sage [2005/12/13(火) 09:31:15 ID:++9Kv20o]
- お約束だが・・作者乙。
トルネコみたいなゲームで使いたい、 オートセーブのデータを暗号化 ∧ 見られない位置に 置くのも載っててくれるとうれしい。
- 107 名前:名前は開発中のものです。 mailto:sage [2005/12/13(火) 21:31:03 ID:1C5377qW]
- 暗号化というかチェックサムをつければ
データの改竄は現実的な範囲では食い止められると思うけどね 逆汗されないと見破れない程度のアルゴリズムはすぐ思いつくだろ 置く場所に関してはレジストリかシステムフォルダの下かのどっちかだから セーブデータの待避に対抗する手段はないと思われ どうしても防ぎたいなら、ネトゲにしてしまうしかないと思う
- 108 名前:名前は開発中のものです。 mailto:sage [2005/12/13(火) 22:12:44 ID:jZasn0nx]
- 圧縮展開ライブラリを使えば手っ取り早く暗号化+ファイルパックの
目的が果たせるんでないかしら。 有名どころでzlib、日本語DOCがいいなら開発環境は限られるが GCASDK、7zアーカイバの作者もソースを公開してた気が。 もしDelphiならQDAアーカイバと展開用unitの組み合わせが手軽。
- 109 名前:名前は開発中のものです。 [2005/12/13(火) 22:24:17 ID:vxNV3LFc]
- 3Dのアクションゲームで壁をこする方法教えて下さい。
ソースが無いと分かりません。説明だけじゃわけわかめ
- 110 名前:名前は開発中のものです。 mailto:sage [2005/12/13(火) 22:26:09 ID:JMd0636h]
- >>109
つ[ quake ]
- 111 名前:名前は開発中のものです。 [2005/12/14(水) 00:50:16 ID:sKyCiHBP]
- >>109
壁をこするという簡潔な表現方法、なかなか良いね。 壁とあたり判定取れてるんなら、簡単にできると思うが。 それでも分からないならソース見てもわからんような。
- 112 名前:名前は開発中のものです。 mailto:sage [2005/12/14(水) 01:16:48 ID:NSqoAe+Z]
- >>109
C++でいいよね? // 壁と移動ルートの交点を移動終了地点にする。 pos = wall * route;
- 113 名前:名前は開発中のものです。 [2006/01/04(水) 01:17:42 ID:NIycc+Ju]
- 上げとく。
- 114 名前:名前は開発中のものです。 [2006/01/30(月) 00:40:02 ID:iUmoOh++]
- 質問があります。
やや抽象的な話になるのですが、現在構築中のゲームで、 ゲームマネージャがシーンスタックを保持しシーン管理を行っています。 この場合ゲームマネージャーの下にシーンがあるということで、 シーン間でデータのやり取りを直接行えなかったので、 シーンの基本クラスで構造体セット用関数を定義し、ゲームマネージャに構造体を持たせ、 Pushの際にシーンクラスに渡すことにしました。 ここまでは良かったのですが、 シーン1で構造体にアクセス後シーン2をPush、 シーン2で構造体にアクセス後シーン2をPop、 そしてシーン1でさらに構造体にアクセスしたところ、アクセス違反といわれてしまいました。 抽象的な内容で申し訳ないのですが、どなたか解決法分かる方ご指南お願いします。 また、他の方法でもシーン間でデータのやり取りが出来ればよいのですが…。
- 115 名前:名前は開発中のものです。 mailto:sage [2006/01/30(月) 00:49:46 ID:0+/J0o5P]
- デバッグすりゃいいだろ
- 116 名前:名前は開発中のものです。 [2006/01/30(月) 00:53:19 ID:iUmoOh++]
- すみません自己解決しました。
シーン2をPopしてシーン1に戻る際に再度構造体を渡したらアクセス違反になりませんでした。
- 117 名前:名前は開発中のものです。 mailto:sage [2006/01/30(月) 00:56:00 ID:pjpza3/7]
- >>114
普通に考えれば、シーン2を開放するときに ついでにManager下の構造体を解体してるんだな。 ポインタで渡してデストラクタでdeleteとかしてないか? auto_ptrでポインタを渡してないか?
- 118 名前:117 mailto:sage [2006/01/30(月) 00:56:14 ID:pjpza3/7]
- 遅かった。
- 119 名前:名前は開発中のものです。 [2006/01/30(月) 03:57:21 ID:Atby9j+G]
- グローバルな構造体にしちゃえばいいんじゃない?
身も蓋もないけど。 わざわざpushするよりは軽いと思うし
- 120 名前:名前は開発中のものです。 [2006/02/14(火) 16:25:09 ID:M5abSfrW]
- ちょっとスレの主旨とは外れちゃうかもですが質問です。
それなりに動くゲームを作って公開しました。 開発環境はXPSP2 DirectX9.0 Dec 2005です。 XPSP2でDirectXをインストールできた人は動くのですが、 Win95, 98, ME では動かないとの報告がありました。 なぜ動かないのでしょうか?
- 121 名前:名前は開発中のものです。 mailto:sage [2006/02/14(火) 18:01:32 ID:DFRR3HSf]
- エスパー先生、出番ですよ。
- 122 名前:名前は開発中のものです。 mailto:sage [2006/02/14(火) 18:13:08 ID:WgJRobF9]
- こんなもんにエスパーなんぞ必要ないだろ
>>120 DirectX End-User Runtimes (December 2005) が入っていないからだと思われる 入れさせろ それでも動かないやつが居たらそいつはWindows95だから切り捨てろ 切り捨てても動かない場合は本当にエスパー能力が必要になる www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=ja
- 123 名前:名前は開発中のものです。 [2006/02/14(火) 18:37:49 ID:M5abSfrW]
- >>122
解答ありがとです。注意書きとして書いておきます。
- 124 名前:120 [2006/02/16(木) 13:35:40 ID:JZYUO6ta]
- 120です。色んな方に動作報告してもらったところ、
XPでDirectXをインストールしても動かなかった。という人もいます。 DirectX9.0で使わないほうが良い機能とかもあるんでしょうかね…。
- 125 名前:名前は開発中のものです。 mailto:sage [2006/02/16(木) 14:16:56 ID:OJdygtYA]
- ビデオカードの性能不足
- 126 名前:名前は開発中のものです。 mailto:sage [2006/02/16(木) 14:19:12 ID:kUFXVRZi]
- どこでエラーが出てるか、デバッグ情報を出力するように作れボケ
- 127 名前:120 [2006/02/16(木) 14:49:05 ID:JZYUO6ta]
- >>125
やっぱそれなのかな…。 >>126 なるほど。。がんばってみます。
- 128 名前:名前は開発中のものです。 mailto:sage [2006/02/28(火) 18:34:54 ID:2E5C8cja]
- スイマセン。ちょっとスレ違いですが、
Windowsのスタートから入るゲーム を完全削除してしまいました。 再ダウンロードできるところってありませんか?
- 129 名前:名前は開発中のものです。 mailto:sage [2006/02/28(火) 19:34:22 ID:RZk53d9r]
- ヒント:自作。
- 130 名前:名前は開発中のものです。 mailto:sage [2006/02/28(火) 19:34:30 ID:lKhFLKj6]
- はい次の方どうぞ
- 131 名前:名前は開発中のものです。 mailto:sage [2006/03/01(水) 04:48:20 ID:Qh8/g14t]
- ジオングに載せるOSは何がいいですか?
- 132 名前:名前は開発中のものです。 mailto:sage [2006/03/01(水) 07:22:24 ID:2CSbAmuS]
- >>131
モビル スーツ M S - D O S
- 133 名前:名前は開発中のものです。 mailto:sage [2006/03/01(水) 15:11:52 ID:obYVjdQw]
- ジュディ・オング
- 134 名前:名前は開発中のものです。 mailto:sage [2006/03/02(木) 19:24:40 ID:zrMtMgtV]
- MS-DOM
- 135 名前:名前は開発中のものです。 mailto:sage [2006/03/02(木) 20:18:08 ID:sGwDioJG]
- 半年ロムれ
ってどういうことですか?
- 136 名前:名前は開発中のものです。 mailto:sage [2006/03/02(木) 20:18:40 ID:SXOxc2oC]
- >>135
半年ロムれ
- 137 名前:名前は開発中のものです。 mailto:sage [2006/03/02(木) 20:44:17 ID:sGwDioJG]
- 本当におしえてください。
- 138 名前:名前は開発中のものです。 mailto:sage [2006/03/02(木) 20:47:08 ID:te28OqJo]
- つ【 ttp://ja.wikipedia.org/wiki/Read_Only_Member 】
- 139 名前:名前は開発中のものです。 mailto:sage [2006/03/05(日) 14:34:44 ID:nQJaZOHc]
- >>138
やっぱり素直に教えてくれる人はいいや。 マジありがとう
- 140 名前:名前は開発中のものです。 mailto:sage [2006/03/09(木) 19:25:52 ID:whrsy4Bh]
- >>128
WindowsのCD-ROMにはいってるだろ
- 141 名前:名前は開発中のものです。 mailto:sage [2006/03/10(金) 21:39:00 ID:eHf1wg1N]
- 画像を回転させたいんでググったら
x’=x×cosΘ−y×sinΘ y’=x×sinΘ+y×cosΘ コレがでてきたんで tex[0].x = 120; tex[0].y = 240; tex2[0].x = kai[0].x * cos(90) - kai[0].y * sin(90); tex2[0].y = kai[0].x * sin(90) + kai[0].y * cos(90); って書いたんだけどうまくいかないんです。 tex[0]は画像貼り付けた四角のポリゴン?の頂点の内のひとつです。
- 142 名前:名前は開発中のものです。 mailto:sage [2006/03/10(金) 21:43:55 ID:eHf1wg1N]
- すみません間違いました
tex2[0].x = tex[0].x * cos(90) - tex[0].y * sin(90); tex2[0].y = tex[0].x * sin(90) + tex[0].y * cos(90); こうでした
- 143 名前:名前は開発中のものです。 mailto:sage [2006/03/10(金) 21:59:05 ID:nz4PdL/y]
- sin, cosの引数はラジアン単位だよ
- 144 名前:名前は開発中のものです。 mailto:sage [2006/03/10(金) 22:11:06 ID:eHf1wg1N]
- #defineRAD (3.14159f/180.0f)
int s; s = 90 * RAD; tex2[0].x = tex[0].x * cos(s) - tex[0].y * sin(s); tex2[0].y = tex[0].x * sin(s) + tex[0].y * cos(s); こうしてみましたがやっぱり失敗・・・どっか他の所なのかなぁ
- 145 名前:名前は開発中のものです。 mailto:sage [2006/03/10(金) 22:37:02 ID:6klj+UjH]
- マルチでしかも馬鹿野郎。
- 146 名前:名前は開発中のものです。 mailto:sage [2006/03/10(金) 22:37:35 ID:KuO++RFw]
- >>144
回転方向はあってるのか?
- 147 名前:名前は開発中のものです。 mailto:sage int馬鹿を生暖かく見守るスレにようこそ。 [2006/03/10(金) 22:41:47 ID:6klj+UjH]
- 数学のライブラリが古いんじゃないのか?
- 148 名前:名前は開発中のものです。 mailto:sage [2006/03/10(金) 23:39:23 ID:ujXqsDrh]
- tex2が画面にどう表示されてるのかスクリーンショット貼ってみ
指さして笑ってやるから
- 149 名前:名前は開発中のものです。 mailto:sage [2006/03/11(土) 00:02:43 ID:eHf1wg1N]
- 変数sをfloatで宣言したら解決しました・・・
レスくれた人ありがとうございました、そしてスマンでした。
- 150 名前:名前は開発中のものです。 mailto:sage [2006/03/11(土) 03:45:49 ID:tpqkJHMP]
- ああ、intじゃだめだわw、見逃してしまった俺としたことがorz
- 151 名前:名前は開発中のものです。 mailto:sage [2006/03/11(土) 22:38:01 ID:dYMZfRdK]
- 俺も両方のスレを見て、且つintを見逃してた
間抜けにもほどがある ところで int s = 90 * (3.14159f/180.0f); これはwarning吐いて欲しいよな、警告レベルが低いんだろうか
- 152 名前:名前は開発中のものです。 mailto:sage [2006/03/12(日) 09:55:55 ID:d+dzhoZl]
- gcc(C)は出ない。
g++(C++)は警告出た。C++は型チェックが厳しくなっていると聞いたが、 そのせいかどうかは知らないけど。 > foo.c:9: warning: converting to `int' from `float'
- 153 名前:名前は開発中のものです。 mailto:sage [2006/03/12(日) 11:13:20 ID:Gf5zzXTK]
- VC++だとコマンドプロンプトのデフォルト(/W1)だと警告でないけど、
IDEのデフォルト(/W3)だと警告でるよ。 cでもc++でも一緒。
- 154 名前:名前は開発中のものです。 mailto:sage [2006/03/14(火) 11:03:46 ID:jyzgIWu2]
- たとえばRectangleとBitmapをもった基底クラスから派生した
WallやBallやBlockのクラスがありました。 これらのインスタンスはStageクラスのなかに List<Wall> Walls, List<Ball> Balls, List<Block> Blocks ってな感じで管理します。 画面の表示はRanderというクラスの担当で、 WM_PAINTでRander.Draw()が駆動されるって寸法です。 問題なのはRanderが如何にしてStage内のアイテム共が持った RectangleとBitmapを所得したいのです。
- 155 名前:名前は開発中のものです。 mailto:sage [2006/03/14(火) 13:42:57 ID:xNBzpZ29]
- ふーん
- 156 名前:名前は開発中のものです。 mailto:sage [2006/03/14(火) 16:28:54 ID:JuUQgie3]
- 本焼くしますたって幹事か。
- 157 名前:名前は開発中のものです。 mailto:sage [2006/03/14(火) 21:06:30 ID:WZQXg5CU]
- >>154
俺もあと100万円くらい所得したいよ。
- 158 名前:名前は開発中のものです。 mailto:sage [2006/03/14(火) 22:24:34 ID:pCKLkrwr]
- >>154
mapで関連付けて保持保持
- 159 名前:名前は開発中のものです。 [2006/03/15(水) 00:11:28 ID:FzaoSDmy]
- >>154
ちんちんが痒いまで読んだ
- 160 名前:名前は開発中のものです。 mailto:sage [2006/03/15(水) 01:56:39 ID:HwMqitkL]
- 別に翻訳だっていいじゃまいか。
>>154 StageからRenderへ、インタンスのリストをconstで渡すとか、そんなんじゃないかね。 データの処理は、そのデータを持つクラスにやらせるのが一番だとは思うけどね。 Stage render(){ foreach Wall->Draw(); } という感じで。 Rectangle取得用のgetterとか使って、醜くやるくらいならね。
- 161 名前:名前は開発中のものです。 [2006/04/11(火) 05:57:17 ID:yYG/QWh3]
- LoadImage()で読み込んだビットマップを
マスク透過してスプライト表示させようとしているのですが、 ペイントで吐き出したモノクロビットマップ(マスク画像)がなぜか正常に読み込めません。 そのため、現在同じくペイントで16色ビットマップとして吐き出したものを使っていますが、 何か理由があるのでしょうか?
- 162 名前:名前は開発中のものです。 mailto:sage [2006/04/11(火) 08:53:49 ID:GgpuwVbL]
- へー、そんなこともあるんね。
いつも256色とか使ってたから知らなかった。 深く考えずに16色でいいんじゃね?
- 163 名前:161 [2006/04/11(火) 16:53:13 ID:yYG/QWh3]
- なぜだろう、違うプロジェクトではモノクロビットマップでもマスク透過できてたw
原因はどこにあるのやら…とりあえず分かるまでは16色でいくか♪
- 164 名前:名前は開発中のものです。 mailto:sage [2006/04/22(土) 23:17:59 ID:CmARROaO]
- 「ボーノー!」ってやってたら指が突き刺さってしまいました。どうすればいいですか?
- 165 名前:名前は開発中のものです。 mailto:sage [2006/04/23(日) 07:00:29 ID:UH9rbrG7]
- 「ゾーノー!」ってやってみると治ると思います。
- 166 名前:名前は開発中のものです。 [2006/05/12(金) 19:10:08 ID:VPhv1R83]
- レスのない>>165の為にage
- 167 名前:名前は開発中のものです。 mailto:sage [2006/05/12(金) 19:30:41 ID:S90NNkQy]
- 人、それを晒しageと呼ぶ
- 168 名前:165 mailto:sage [2006/05/13(土) 00:01:36 ID:EjRz/daj]
- ありがとんw
- 169 名前:名前は開発中のものです。 mailto:sage [2006/05/18(木) 04:47:55 ID:CkzGQmgk]
- 透過表示する時にスピードを得るためには、
元の画像(透過部分を白か黒にした物) のメモリはLoadImageで確保し、 マスク画像(透過部分が元の画像と逆)は CreateBitmap(sizeX, sizeY, 1, 1, NULL); で確保するのがいいみたい。 LoadImageの方は確保だけでなく表示も行われるが、 表示の内容は無視して、必要な内容に書き換える。 CreateCompatibleBitmapも使ってみたり、 元とマスクの作り方を逆にしたりしてみたが、 スピードが遅くなるだけでなく、 色がおかしくなる場合もあった。
- 170 名前:名前は開発中のものです。 mailto:sage [2006/05/18(木) 22:34:24 ID:Erp668KR]
- 使い方が間違ってる気がする。
- 171 名前:名前は開発中のものです。 mailto:sage [2006/05/19(金) 05:28:26 ID:C0KPcZMG]
- そうかもしれんが疲れ果ててしまった。
当分はこれで行くつもり。 色が変わってしまうのは、 マスク画像をLoadImageのメモリに作った場合。 マスクを画像元に、(透過部分を白か黒にした物) 元の画像を作っていたから、マスク画像が不正な事で 元の画像の色が変わってしまった模様。 スピードの遅いのは、マップのスクロール時とか表示量が多い時。 もちろん、必要部分のみを新たに表示する方法を使っている。 これは、GetDC(NULL)でのCreateCompatibleBitmapだと遅かった。 CreateBitmapでパラメータを合わせれば、同じスピードが出せるかも。
- 172 名前:名前は開発中のものです。 mailto:sage [2006/05/19(金) 05:31:03 ID:C0KPcZMG]
- 修正。
元の画像が()に書いてある、透過部分を白か黒にした物。 マスク画像は、透過部分をその反対の色にした物。
- 173 名前:名前は開発中のものです。 mailto:sage [2006/05/21(日) 00:28:18 ID:jLxwcM9S]
- マスクか、なつかしいなー。
DirectX使う前にやってた。win95出る前かな? もう、10数年もたつのか・・・
- 174 名前:名前は開発中のものです。 mailto:sage [2006/05/21(日) 00:28:56 ID:jLxwcM9S]
- まあ、よく考えたら今のαもある意味マスクだけどな・・・
- 175 名前:名前は開発中のものです。 mailto:sage [2006/05/21(日) 18:47:14 ID:7IQM+URD]
- 256色以外の環境で色透過する意味あんのかね?
αでいいじゃん。
- 176 名前:名前は開発中のものです。 mailto:sage [2006/05/21(日) 20:48:47 ID:0ORi4Dni]
- >>175
169や171の文脈で考えた場合どうやるの? LOADIMAGEで読んだBITMAPをDIBにするの?
- 177 名前:名前は開発中のものです。 mailto:sage [2006/05/21(日) 21:22:35 ID:7IQM+URD]
- >>175
?意味がよくわかんね。 もしかしてやり方聞いてんのかね。 >>169はマスクとか言ってるくらいだからDirectXじゃなくて自前だよな? LoadImageはDDBだから、俺の場合はBMPの読み込み関数別に作るけど。 んでDIBでαブレンドして転送するね。 どうせ2値でマスク持ってても伸張しないと使えないから 合成部分が変わるだけで別に難しくないと思うが? ざっとみたけど、色がおかしくなるのはDDBとDIBがよくわかって無いんじゃないか?
- 178 名前:名前は開発中のものです。 mailto:sage [2006/05/21(日) 23:20:22 ID:xse5f7xt]
- >>176
DDBのまま。 LoadImage、CreateBitmapで作った DDBはゲーム終了時まで保持しておく。 >>175>>177 自分もよく分からん。 DIBでDDBの方法と同じように ラスタオペレーション透過って事? DIBで透過する場合は、ビットマップを加工したいときとか、 一度に何色も透過したい時に、ピクセル列を直に調べながら、 その透過したい色だけ出力しないというやり方。
- 179 名前:名前は開発中のものです。 mailto:sage [2006/05/22(月) 01:25:20 ID:95RnP40u]
- >>178
176です、DDBのままの処理は解るし 上の方(161あたり)でゴチャ付いているのはマスクデータを読み込んだビットマップから生成 しないでペイントから読み込んだりしてるから奇麗にモノクロになってないだけだと思うから もう少しプログラムしてれば出来るようになるだろうし気にならない。 α値の方は今でも解らない、GDI系のAPIで使えるものってStretchDIBits? 確かに自作DIBクラスでも使ってるけど161のようなアプローチではやらないなぁ LOADIMAGEは速いし、DDBで簡単に処理できる状況にあるのに何故DIBかやっぱ解らんわ
- 180 名前:175 mailto:sage [2006/05/22(月) 02:46:30 ID:invPdzO+]
- >>175と>>177俺な。
>>176のアンカ間違い。 >>179 アンタ、161じゃないのか? まぁいい、同一人物としよう。 >>175で俺が言いたいことは、、、おう 間違えてるわ。 256以外の環境で2値のマスクデータ使って抜く必要あるんかね? どうせ半透明とか使うしジャギ消し考えたらαでいいじゃん。と。 次にDIBの件か。 別にDDBでもいいさね。ただ俺はめんどくさがり屋なんで 内部で32ビット処理して転送してるだけ。 そして色がおかしくなる件か。 DIBとDDBの形式あわせて無いんじゃないかと思って書いたんだが 原因がペイントだとわかったなら、別にもういいよ。 下の二つを蛇足だ。俺が聞きたいのは一番上。 16ビットや32ビットでマスクデータ使って抜く必要あるんか? てこと。純粋に知りたいわけよ。
- 181 名前:169, 171, 178, (165w) mailto:sage [2006/05/22(月) 05:54:13 ID:bceEWeEQ]
- >>179
予め半マスク画像とマスク画像を作っておくやり方か。 色が白であると思いきや、ちゃんと0xffffffになってないとかかも。 >>180 256色以外でも透過するのは、 透過するもんだと思っていたから。 そんな深い意味はない。 普通にFSMさん所のキャラチップとか。 色がおかしくなるのは、自分は179氏では無いから 両方に別の理由があり、ちょっとややこしくなってしまった。 自分の方は、そのDIB、DDBがなんたらの部分だと思う。
- 182 名前:名前は開発中のものです。 mailto:sage [2006/05/23(火) 21:58:09 ID:caidKQZy]
- >>180
スマン179だが161は知らんヤツだ、勘違いさせたな。 因みに俺は透過ごときで苦労したことはない
- 183 名前:名前は開発中のものです。 mailto:sage [2006/05/31(水) 00:34:28 ID:i/nY/xFd]
- >>180
内部で32ビット処理して転送してるだけ。 どうやるんです?
- 184 名前:名前は開発中のものです。 mailto:sage [2006/05/31(水) 13:18:54 ID:PVRo+RDd]
- 1.DIBセクションを作って裏画面とする
2.画像用にABGRの32ビットをピクセル分だけメモリ確保しそこに読む 3.A成分を使って2から1へ演算しながら転送 4.1を表画面にBitBlt
- 185 名前:名前は開発中のものです。 mailto:sage [2006/06/01(木) 02:29:30 ID:LAwPdhU4]
- >>184
その 3. の部分はどのように実装したらよいでしょうか 以前テストプログラムで ( ( ((color & 0xff00ff)*alpha & 0xff00ff00) | ((color & 0x00ff00)*alpha & 0x00ff0000) )>>8) こんな感じの処理を2つ書いて合算していましたがすごく効率悪そうです
- 186 名前:名前は開発中のものです。 mailto:sage [2006/06/01(木) 03:17:12 ID:V9P/ukur]
- MMX使ってたけど、上のようなコードでも
無茶しない限り十分実用になってた。 32*32のキャラ100体ぐらいで60FPSは出てたね。 それで足りないならDirect3D使うしかないね。
- 187 名前:名前は開発中のものです。 mailto:sage [2006/06/02(金) 00:46:38 ID:ZyZMhlVJ]
- >>186=175だと思ってコメントするが
>16ビットや32ビットでマスクデータ使って抜く必要あるんか? てこと。純粋に知りたいわけよ。 未だにこの質問したい?? ここまでの183や185を見れば解るだろう(皆やんわり突っ込んでんだよネ) 君の方法はウゼエし面倒だから「すっきりラスターオペ」したい もっと言ってしまうとキミは若くて学び始めた頃にはGDI使いまわす時代が終わってた。 だから知りませんでしたってことだろうと薄々感じてるんだよ。 180の質問を撤回すれば丸く収まる。
- 188 名前:名前は開発中のものです。 mailto:sage [2006/06/02(金) 02:50:52 ID:pe1xp10E]
- はぁ?
最初から 君の方法はウゼエし面倒だから「すっきりラスターオペ」したい と言えよ。こっちは自前の話してんのに。 だいたい >>176 >>183 と >>185 は俺に質問したから答えただけだろが。 >未だにこの質問したい?? >だから知りませんでしたってことだろうと薄々感じてるんだよ。 感じてんなら俺が納得するように教えればいいじゃん。なんでわざわざ質問するんだよ。 もともと、アルファだけじゃなぜダメなのか聞いてるのはこっちなのに。 はっきりこうだから、マスクが必要だって教えろよ。 それで済む話だろうが。お前キメェ。 >>187 >180の質問を撤回すれば丸く収まる。 質問スレでなんでここまで言われにゃいかんのだ。 途中で納得するような答え持ってこないで 質問に質問で返しておいてこの言い草か。マジデキメェ。
- 189 名前:名前は開発中のものです。 mailto:sage [2006/06/13(火) 03:36:21 ID:kYV6i71Y]
- ( '・ー・`)
- 190 名前:名前は開発中のものです。 mailto:sage [2006/06/18(日) 10:46:11 ID:pBYbu/U2]
- すまん。
ちょっと質問させてくれ。 いまアクションゲーム作ってるんだが、 グラフィック領域をどの程度まで使っていいのかがちょっと不安。 よくVRAM32Mとか書いてあるけど あれは256X256dot1枚(深度8bit)=64KBと考えて、 1MのVRAMならそれが128枚分載ると思っていいの? それともアルファを載せたら領域半分になるとか? また他のソフトの常駐も一応考えるべきだと思うんだが どの程度VRAMの空きを作っておくべきだろうか? また現在のグラフィックボードは何Mくらいが標準と考えていいのだろうか? とりあえず、作る方はなんとかなってるんだが 世間の動向とハード周りの常識がわからないもので、 悪いんけどだれか教えてくだされ。
- 191 名前:名前は開発中のものです。 mailto:sage [2006/06/18(日) 11:45:42 ID:Jubw01vM]
- >>190
VRAMに保持されるのはテクスチャだけじゃないよ。 VRAMがどのように使われるかはドライバ次第なんで ぶっちゃけPGからはほとんど予測できない。 一応消費量は取得できるからそういうソフと使ってみたり 自分で組んでみるなりやってみ。
- 192 名前:190 [2006/06/18(日) 12:11:04 ID:pBYbu/U2]
- >>191
即レスサンクスです。 そうかあ。 こっちで計算してミッチリ詰め込んだらあかんのか。 重ねて申し訳ないんだけど VRAM消費量の取得方法を教えて頂けませんか?
- 193 名前:名前は開発中のものです。 mailto:sage [2006/06/18(日) 14:03:15 ID:ElWGc4Pa]
- >>192
DirectX使えばVRAMの使用料とか空きがわかるはず
- 194 名前:名前は開発中のものです。 mailto:sage [2006/06/18(日) 14:10:17 ID:Jubw01vM]
- DirectX9だと使用可能なテクスチャ メモリの推定値しかわからんかも。
|

|