ゲームのグラフィックスプログラミング

このエントリーをはてなブックマークに追加
1名無しさん@お腹いっぱい。
グラフィックに関するプログラミング、
データ作成ツール、プラグインに関するスレッド。
2名無しさん@お腹いっぱい。:01/11/07 01:26 ID:???
ドット絵とかアスキーアートだな
3名無しさん@お腹いっぱい。:01/11/07 02:36 ID:???
アスキーアート、ゲームに使うのか・・・
4名無しさん@お腹いっぱい。:01/11/07 02:53 ID:???
昔は文字をキャラクタに見立ててゲームを作ったもんさ
5名無しさん@お腹いっぱい。:01/11/07 06:42 ID:???
>>4
ああ、やったやった。
あの頃はグラフィック描画よりもテキスト出力の方が圧倒的に早いから、
スピードを要求されるゲームはテキストでやるしかなかったんだよな。
メモリも総量64kb程度しかなくて、グラフィックは容量食うしな。

スプライト機能を搭載したMSXが羨ましかったな……。
6名無しさん@お腹いっぱい。:01/11/07 07:54 ID:???
PC-98だったら、外字をPCGとして使ったり、低解像度画面
(テキスト画面で160*100)を使ったりしたねぇ。
7名無しさん@お腹いっぱい。:01/11/07 09:05 ID:???
今だとシレンとかトルネコとかになっちゃうんだな、これが。
8名無しさん@お腹いっぱい。:01/11/07 22:49 ID:???
小学校の頃に作ったインベーダー撃ち落しゲームで、
アスキーアートの巨大UFOを描いたなあ。
しみじみ。
9名無しさん@お腹いっぱい。:01/11/08 16:58 ID:???
いきなりAAに話がずれたあげく底にしずんじゃったネ。
なんとも2ちゃんらしいというか。

ところで昔のゲームってAAエディタとかつかってたの?
もしや文字コード表とにらめっこしながらつくってたとか!!
10名無しさん@お腹いっぱい。:01/11/08 17:50 ID:???
>>9
昔のは、キーボードから直接グラフィック文字を入力できたんすよ。
シフトキーや仮名キーみたいなカンジで。
11名無しさん@お腹いっぱい。:01/11/08 20:44 ID:???
>>10
そういえば昔のってキーボードにグラフィック文字書いてたような。
ベーシックマスターだったかX1だったかどれだったか忘れたが。
12名無しさん@お腹いっぱい。:01/11/09 05:20 ID:???
良いワイプない?

ツール、スクリプト系でもいいからさ。
画像処理の本にヒントさがしてるけどフォトショップのフィルタみたいなやつのことしかのってなかった
13名無しさん@お腹いっぱい。:01/11/09 05:23 ID:???
エロゲーで良いなら、Infantariaってゲームのワイプがいかしてた。
14 :01/11/09 08:56 ID:???
ワイプのバリエーションなんてメガデモで腐るほどあるんでねえ?
hornetでも漁って見てつかぁさい。
15名無しさん@お腹いっぱい。:01/11/09 09:19 ID:???
リアルタイムでラジオシティやってるゲームあったよね?
あれって、どこまで計算してたんだろ…
16名無しさん@お腹いっぱい。:01/11/09 09:21 ID:???
>>15
まじで?擬似じゃないの?
17名無しさん@お腹いっぱい。:01/11/09 09:24 ID:???
>>15
リアルタイムレイトレーシングとかもあったね。
18名無しさん@お腹いっぱい。:01/11/09 12:37 ID:???
>>15, >>17
まともなゲームで使ってるのってある?
19名無しさん@お腹いっぱい。:01/11/09 19:28 ID:???
ラジオシティを真面目に計算なんてしるはずもなくごまかしでしょう。
デモでそれらしいのは見たことあるけど。

そんなものがゲーム上のソフトウェアレンダリングで動くならnVidiaなんてとっくに
死亡していると思うが。
20ネタふり:01/11/10 03:15 ID:???
スレ違いかなーなんて思いつつも、一応ダメもとで話を
振ってみます。
2Dのクオータービュー、描画において、奥から回す、
手前から回す、ソート関連、いろいろ手法があるようですが、
「コレが王道だろう!」というスタイルを語れる方、
一席もうけてくださいませんか?
私自身、シロウトではないものの、あまり明るくない分野なので、
バリバリの方のお話が聞けたら幸いです。
2120:01/11/10 14:26 ID:lDT42030
ヤハリレスハナカタカー
22名無しさん@お腹いっぱい。:01/11/10 15:30 ID:Pfrth29i
あきらめるのが早すぎますよ。

クォータービューの奥からまわす、手前からまわすというのはどう言う意味でしょう?
視点をくるくる変えさせたいのでしょうか。
とりあえず、描画オブジェクトのソートにだけ絞って書かせていただきます。

ソートをしたいだけならバブルソートで十分だと思います。
何千もの表示オブジェクトがあるなら、クイックソートとのベンチを取って
良いほうを採用すれば良いでしょう。

ソートをしたくなかったら、あらかじめ描画順序テーブルを作成して、
それを利用するのが手だと思います。
描画順序テーブルには表示オブジェクトへのインデックス、もしくはポインタを保存
しておきます。
描画するときに、テーブルの先頭から描画処理を行っていったり一番後ろから行っていったり
すれば、うまく重なって描画されると思います。

描画順序テーブルは奥行き(z値)によって長さを変えると分かりやすいのではないでしょうか。
テーブルサイズを256段階にしたら、z値が0から255までを扱える。
z値がそのままテーブルのインデックスになるというわけです。

あとは、同じz値のオブジェクトのテーブルへの格納方法などを考えればいけると
思いますが。
#これはリスト構造で何とかなるでしょう。
23名無しさん@お腹いっぱい。:01/11/10 16:13 ID:???
えーとですね、手前にある物から描画していくか、奥からかの意味で
(手前からの場合、描画済みのピクセルにフラグを立て、二度同じ
ピクセルには描画しない)
書きました。
恥をしのんで、具体的に当方が疑問に思っている事を書きますね。
クオータービューで、地面に影落とすのは良くありますけど、
上手い具合に、地面の平面にのみ影を落し、地面に乗っているオブジェクト
には影がかかってなかったりします。
これは、奥から順に地面の描画を全部済ませ、次に影を全キャラクター
分描画、最後にキャラクター本体の順で良いんでしょうかね?

毎フレームこれをやると、ちょっと速度が足りない物で、、、。
かえって、2Dの方が手間ひまかかる面もあるなーと感心してます。
24名無しさん@お腹いっぱい。:01/11/10 16:29 ID:TY+m/yMI
>>23
イマドキのハードなら、Zバッファ使うか、それがイヤなら>>22さんの
いうとおりに描画順序テーブル組んでみたら?
テーブルの解像度を32bit程度にして、影は投影される面より少し
オフセットをつけてやれば十分事足りるはず。

>毎フレームこれをやると、ちょっと速度が足りない物で、、、。
>かえって、2Dの方が手間ひまかかる面もあるなーと感心してます。

実装が悪いだけでは?問題点も3Dのものと本質的に変わらない
(2D特有で、3Dにはない問題ではない)みたいだし。
2523:01/11/10 16:34 ID:???
いや、まったく仰る通りでして、実装に問題があるようなので、
こうしてご指導を仰ぐべく、参上しております(笑)
>影は投影される面より少しオフセット
これはどういう意味でしょうか?
2624:01/11/10 16:56 ID:TY+m/yMI
>>25
Z値が同じ時に影が埋まって見えなくなったりするのを防ぐために
少しオフセットをつけて、描画順位が同じ時の実行順を保証してやる事。

#あ、あと32bitもテーブルはいらないかも。これは出てくるものの数や表示したい
#奥行きの深さにもよるね。

個人的に、今のハード(TNT, GeforceやRADEONクラス)でタクティクスオウガ
みたいな狭いマップなら、

1背景を3Dオブジェクトで表示。Zバッファを埋める。

2投影された影をポリゴンオフセットつけながら描画。描画はZ、色値には
 書き込まず、ステンシルバッファのみ書き込み。

3ステンシルバッファ見て影部分を書き込み。(これで影が重なっても暗さが一定になる。)

4キャラ、エフェクトをビルボード描画。ここはZソートしながら描画。

が一番絵的にも、描画速度的にも折り合いがつく気がする。

表示したいものが凄く多くて(AOEやコサックスみたいに)、足元の影だけ
描画できればいい(投影される必要が無い)なら、表示オブジェクトの足元に
書き込んでやるのが現実的かも。
27名無しさん@お腹いっぱい。:01/11/10 17:17 ID:???
23さんはおそらく、PCをターゲットにした話でしょうから、わたしもそれに従います。
昔なら描画矩形を限定することで描画処理を軽くすることが多かったですが、
最近では全部を再描画かけるようにするのが一般的です。
もっとアプリケーションよりの話もあります。
背景をブロックの組み合わせで作成している場合、前のフレームの背景と
今回描画するフレームの背景を比べて、違うブロックだけ転送して新たな背景を
作るということもできます。
そして、作成した背景->影->人物->手前の背景->ウィンドウなど、というふうに
すれば、メモリ転送を減らせるでしょう。

23さんがどのような実装をしているか分からない以上、
明確な解決法を提示することはできません。

>影は投影される面より少しオフセット
これは、実装する人によって少しずつ意味合いが変わりますね。
z値とほぼ同義と思えば良いのではないでしょうか。
足元の影や、壁に貼りついたポスターなどを描画するときに壁や床よりも
ほんの少し、Z値を視点側にすることで影やポスターが床などにめり込まないよう
する処理です。
2823:01/11/10 17:41 ID:???
26,27さん、ありがとうございます。
オフセットの意味、良く分かりました。
ご推察通り、PCターゲットでして、スペックがバラバラなのが
前提ですので、可能な限りサクサクと描画して、余力を残したい
というのが目標です。

現状では、かなり素直な方法で試しています。
奥からひし形のタイル地形(クオータービュー)を並べて描画し、
さらに奥にいる(移動中の現座標において)キャラから順に、
影をやはり2Dで描画、最後がキャラ本体です。
これですと、高低差がある地形では、手前の崖が奥の平地を
塗り潰す事は良くあるので、これは描画前に計算し、不要な
描画を取り除いきます。

結果、まだ速度が足りない(涙)ので、対処として今考えている事は
背景部分を一度組み立てておいてから、まとめて四角形で送るように
しようかと思ってます。
これですと、中央にいるキャラが動いた際、新たに視野に入る部分を
継ぎ足せば良いですよね?
四角形ですので、ひし形の「余白」の無駄も減らせるかなーと。
(ひし形ですと、単純計算で四角の倍の面積を転送せねばならないので)
29名無しさん@お腹いっぱい。:01/11/16 21:38 ID:???
>>23氏はRPGの移動画面かアクションゲームに
クオータービューを使おうとしているの?
そんなに遅くなるような処理とは思えないけれど…。
30名無しさん@お腹いっぱい。:01/11/18 08:14 ID:???
>>29
マップチップが小さいとか、解像度が大きいとか、
FSP60とか、表示個数が多いとか、コードがヘボとか、
色々考えつくケド……

FSPを40ぐらいで作ってみると、楽なんでは?
31名無しさん@お腹いっぱい。:01/11/18 09:30 ID:???
>>29
FSPって何?
32名無しさん@お腹いっぱい。:01/11/19 15:16 ID:???
>>31
fpsの間違い。1秒間の画面描画数。
33名前は開発中のものです。:01/12/08 04:05 ID:5v7M60/Q
↑↑↑ 人 気 急 上 昇 ↑↑↑
34名前は開発中のものです。:01/12/08 05:27 ID:ZQbvNzOS
ち、アドバンスは今時のハードじゃないのかよ。
35名前は開発中のものです。:01/12/17 07:30 ID:9NigR4AN
上げ
36名前は開発中のものです。:01/12/17 15:39 ID:uV4fJpc0
   ∧ ∧
  ( ゚Д゚)ゴルファァ
  U U
 / l
 U U
37名前は開発中のものです。:01/12/17 16:15 ID:???
どういう描画の仕方してるの?余白って・・・
普通は余白の出来ないデータ構造にするもんだけど。
DirectDrawのBlt使って実装するなら、水平方向の対角線は完全に水平になるように
して、タイルは1マスずつ持つんじゃなくて1/4のマスと隣のマスの1/4で1つの矩形
にして、矩形単位で描画が良いかと。マスの種類の2乗のデータ量になるが。
でも、これはBGとかPCG使う場合は常套手段。というよりそうしないと実現できない。

CPUで1ドットずつ描画するなら余白の無いデータ構造にするのが吉。
1次元配列に詰め込めば問題ないかと。描画するときは配列を走査しながら、描画先
をひし形に走査するのが良いんじゃない?

あと、Zバッファみたいな仕組みはかえって帯域食うからおすすめできない。

・・・って一ヶ月前の話題にレス付けても遅いかな
38名前は開発中のものです。:02/01/14 18:48 ID:FJSA1mJC
あげ
39名前は開発中のものです。:02/01/14 19:50 ID:???
ネタはないのか。ネタは。
私のジャギ消し方法、とか。

どうでもいいや。
40 :02/02/26 18:36 ID:gD84TG74
なんでこういうスレがあがってないんだ??
ゲーム製作においてグラフィックプログラミングは重要なことだろ?
41名前は開発中のものです。:02/02/26 18:59 ID:???
>>40
ネタを振りなさい
42名前は開発中のものです。:02/02/26 20:45 ID:???
プールの飛び込み台を作るのに弾力を持たせて
上下に揺らしたいんだけど計算方法ってどんな感じ?
釣り竿みたいなしなり方するのもやってみたい。
43名前は開発中のものです。:02/02/26 21:56 ID:???
果たしてそれはグラフィックスなのだろうか…
44名前は開発中のものです。:02/02/26 23:43 ID:???
>>42
角度にSinをかけて、それに対して(Cos, Sin) で座標を求めると、
しなりが表現できる。

45名前は開発中のものです。:02/02/26 23:46 ID:???
半透明ってどうすればいいんでしょう?
アドベンチャーゲームやノベルゲームによくあるメッセージウィンドウが半透明って
いうのをやりたいのですが。
46名前は開発中のものです。:02/02/27 00:34 ID:???
>>43
ピクセルエフェクトだけがグラフィックじゃないだろう。
時間軸に対する変化も「ゲーム」のグラフィックで
いいんじゃないか。
47名前は開発中のものです。:02/02/27 00:46 ID:???
初めて耳にする解釈だ
48名前は開発中のものです。:02/02/27 00:55 ID:ag9+4F85
>>45
アルファブレンド
R=r1*α+r2*(1-α)
G=g1*α+g2*(1-α)
B=b1*α+b2*(1-α)
49VBゲームの会会長:02/02/27 01:39 ID:???
実際ゲーム作るときのアルファブレンドってどうしてる?
Dirext使う以外の方法。

俺はデバイスコンテキストのビットマップ取得して
自前で計算して書き込み、って感じでやってるんだけど
ビットマップの取得って遅いんだよな。
50名前は開発中のものです。:02/02/27 01:50 ID:???
別バッファ作って背景保存してる。
51VBゲームの会会長:02/02/27 01:54 ID:???
>>50
別バッファへの書き込みは何を使ってるの?
52名前は開発中のものです。:02/02/27 02:44 ID:???
背景をファイルから2カ所のメモリにコピー。
53名前は開発中のものです。:02/02/27 04:01 ID:???
DIBSection確保してCPUでゴリゴリしかあるまいて。
ハードウェアに頼らないなら
54名前は開発中のものです。:02/05/21 03:49 ID:XHSDIsJI
openglてどんなの?
55名前は開発中のものです。:02/05/21 04:22 ID:???
SetDIBitsToDeviceを使え!
ちなみに、対応してない環境はしらん
56名前は開発中のものです。:02/05/21 04:23 ID:???
1/f揺らぎについて概念を説明してるサイト、ありませんか?
しょっちゅう出てくるんだけど、何のことだかサパーリわかりません
57名前は開発中のものです。:02/06/01 02:34 ID:W3aJQHQc
>>28 >>37
去年のやつにレスするのもどうかと思うが、どっちが良いんだろ。
DirectX使うんで、余白は半透明にしてゴリゴリ描画させるべきか。
それとも組み合わせの全パターンを用意するべきか。

描画速度とマップデータ作成の手間だよなぁ…
58◎(v◎)ぅん?:02/06/02 22:00 ID:???
どっかでちらっとみたハズだけど
見失ったのでおしへてください。

中心から放射状にライン(元絵にブレンド)するのは
なんていうでしょ〜か?

おしへてください。
59名前は開発中のものです。:02/06/02 22:39 ID:VQxiMrmg
>>58
大和日の丸ブレンド
60おしへてよ:02/06/03 15:10 ID:???
>>大和日のまるブレンド
それは、可視光線につかうやつだから違います。

僕が煎ってるのはとはちょっと違います。
61名前は開発中のものです。:02/06/03 15:49 ID:???
>>56
1/f揺らぎはフラクタルノイズとかピンクノイズと呼ばれるもの。
簡単に言うと振幅が周波数に反比例するノイズ。
6256:02/06/03 16:14 ID:???
>>61
とっくに忘れ去られた記事にレスつけてくれてありがとうございます
ホワイトノイズは分かるけど、ピンクノイズって言うのがさっぱりなんで
勉強してきます
63名前は開発中のものです。:02/06/04 00:43 ID:???
>>62
ホワイトノイズとピンクノイズ
ttp://www.cr.ie.u-ryukyu.ac.jp/~jahana/study/7th/node2.html

 ぐぐったらトップに出てきたよ…。
6461:02/06/04 01:51 ID:???
>>52
このスレは忘れた頃にレス付けるのが流行りなので(大嘘
フラクタル理論ってのは正直言って使いものにならないけど、フラクタル
ノイズだけは利用価値があるから覚えておいて損はないと思う。
フラクタルノイズの生成方法は色々あるけど、中点変位法が使いやすい。
これは与えられた直線や面を複雑な形に変形させるのに向いていて、例えば
直線で構成された地図から複雑な海岸線を生成したり、Terragenみたいな
山や島を生成するのに使ったり、雲の画像を生成するのに使ったりする。
他に扱いやすいのだと、Perlinノイズとかがある。
中点変位法もPerlinノイズも有名なのでgoogleで検索して調べてチョ
65名前は開発中のものです。:02/11/22 16:12 ID:9c7blZlP
保守あげ
66名前は開発中のものです。:03/01/18 17:07 ID:iw7udlzC
 
67あぼーん:あぼーん
あぼーん
68デフォルトの名無しさん:03/03/09 05:39 ID:+eukiwJN
>56
1/fゆらぎというのは森本レオの声のことだとテレビで
みたことあり。あれの抑揚とテンポが「いやし」なのだそうな。
69あぼーん:あぼーん
あぼーん
70名前は開発中のものです。:03/05/26 03:06 ID:GHkNvo1j
いや、大本眞基子だろ。
71あぼーん:あぼーん
あぼーん
72あぼーん:あぼーん
あぼーん
73あぼーん:あぼーん
あぼーん
74あぼーん:あぼーん
あぼーん
75名前は開発中のものです。:03/06/02 12:40 ID:ITVwHYA/
現在、荒らしによってこの板の利用が困難になっているため、避難所を作成しています。
出来ればこちらに移動するのをお勧めします。

ゲ製作技術板(避難所)
http://bbs.gamdev.org/gamedev/

↓こんな感じにするのがお勧めです。
-----
9 名前:名無しさん@ゲムデヴ[] 投稿日:2003/05/28 21:33
とりあえずOpenJaneに登録した

板一覧の上で右クリック→新規追加→板名とアドレス入れるだけ
76あぼーん:あぼーん
あぼーん
77_:03/06/04 04:42 ID:BTapcBlD
78あぼーん:あぼーん
あぼーん
79名前は開発中のものです:03/08/02 14:25 ID:cQ9XMcdq
>>64
月並だが、ランドスケープ系の地面生成にも使えそうだね。
80名前は開発中のものです。:03/08/20 21:46 ID:LSk0dm4m
グラフィック用のツールでお勧めのものってありますか?
何かAdobe PhotoShopがいいって聞くけど、どうなんでつか?
81名前は開発中のものです。:03/08/20 22:40 ID:HDaBPg+x
GIMPはどうだ?GPLでナイスだぞ
藻れのマシンだとタブレット使えないけど。
Linuxだと認識したな
82名前は開発中のものです。:03/08/22 10:57 ID:xwFvGxu/
>>81
Redですか?Intuosですか?詳しい情報きぼんぬ。
8381:03/08/22 20:43 ID:i8HMvWmo
>>82
RedHatの8。
 タブレットはWACOMのペインタークラシックとフォトショップエレメンツが付属してる一万円ぐらいの。
 Turbo7で動いた気もするけど確信はない。
 筆圧感知は作動しなかった(別に必要としてないから構わないけど)
84名前は開発中のものです。:04/07/03 21:10 ID:E3a3uuaW
漏れら極悪非道のage武田騎馬ブラザーズ!
ネタもないのにageてやるからな!
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_ヘ      ∧_ヘ
  / \〇ノゝ    / \〇ノゝ age 
 /三/´∀`)∩ ∩/´∀`)  age
 (つ  丿    (   ⊂) age
  ( ヽノ      ヽ/  )   age
  し(_)      (_)J
85名前は開発中のものです。:05/01/14 18:21:08 ID:54v6Ldft
半年もレスが付いてなくてよくdat落ちしないもんだ…
GDI使った描画の話でもしませんか?
86名前は開発中のものです。:05/01/14 18:22:25 ID:x8Lzovrj
しません
87名前は開発中のものです。:05/01/14 21:07:42 ID:6XJfBMIB
しましょう
8885:05/01/14 22:54:09 ID:54v6Ldft
GDIで描画してるんですけど、どうも速度が出ません…
640x480を2回描画する程度でも60fpsぎりぎりです(CPU1.6GHzで)
最低でもCPUが500MHzで30fpsくらいは出したいと思ってるんですが、
何か裏テクみたいのありませんか?
89名前は開発中のものです。:05/01/14 23:18:31 ID:9TAJVPpI
DirectXを勉強しろ。いやならプログラミングは諦めろ
90名前は開発中のものです。:05/01/15 00:05:44 ID:B+0VfzV2
>>89
DirectDrawは数年前にやった。
透明処理を自前でやるとGDIと大差ないことが分かった(システムメモリ上にサーフェイス作るわけだから)
実際GDIでも結構速度出てるの見かけるがな…
91名前は開発中のものです。:05/01/15 00:13:50 ID:JHTUBUOo
いまさらGDIか
92名前は開発中のものです。:05/01/15 03:12:48 ID:Oy21Jqg0
16ビットにするとか。
93名前は開発中のものです。:05/01/15 03:24:14 ID:6z5TP1+k
>>85
>どうも速度が出ません…
 
そんな主観的表現じゃ質問の意味が通じるわけねーだろ
 
 ・85が期待する「速度」とは具体的に何か
 ・それは何を根拠に算出した値なのか
 
を説明しろ。根拠無いから説明不能ってんなら
使用環境とコード(描画部分)ぐらいサボらず書け。
DIBにソフトウェアレンダリングしてるってんなら
システムメモリ周りのスペックをちゃんと説明しろ。
メモリとチップセットの種類ぐらいサボらず書け。
9485:05/01/16 12:09:11 ID:l1qZrVG+
>>92
16ビットだとアルファチャンネルいれると4bitづつしか使えないからなぁ…
>>93
速度=描画速度のことです。コードは長いので書きませんが、流れ的には、
[画像データ(DIBではない)]→[DIB]⇒[ウィンドウのDC]
(→で単純なメモリコピー、⇒でBitBlt)
この処理を640x480x32の画像で→2回、⇒1回行うとFPSが最大でも60ぐらいしか出ない。
ちなみにループの処理は、PeekMessage()でメッセージが無ければ描画をするといった感じです。
環境はOS:WinXP、CPU1.6Gz(FSB400MHz)、RAM:PC2100DDR512MB、チップセット:SiS645、ビデオボードはGeForce4MX。
オレが期待している速度は、この環境で上記の処理をFPS100以上、500MHz程度のCPUかつ非DDRメモリの環境でも、
FPS30程度を確保したい(FPSが30切るとゲームとしてはキツい)。
無謀なのかもしれないが、HSPとか吉里吉里見てると余裕で出してるように見えます。
手ほどきおながいします。
95名前は開発中のものです。:05/01/16 13:16:55 ID:/nYnDXlR
VGA*2か。
512*512だと、毎回メモリ転送を繰り返してもPentum3の800MHz/32ビットで
100FPS位出る(Pentium2-400MHzで50-70)みたいだね。ビット数による差
はそれほどないみたい。

http://www.sm.rim.or.jp/~shishido/vdib.html

ただ、DIB/DirectXのようなフレームバッファはビデオ環境に依存する面
が大きいから、CPU/メモリで判断するのは難しい。
96名前は開発中のものです。:05/01/16 14:27:11 ID:E/5FuOt0
640*480の32ビットカラーだと、一枚約1MBある。
これを100FPSにすると、バスに対して秒間100MBオーバー転送が発生する。
VRAMを作業領域として使わず、全てをメインメモリから転送するのは阿呆としかいいようがない。
97名前は開発中のものです。:05/01/16 14:30:29 ID:8IvX1yU+
DirectDrawをなぜ使わない
透明処理ってカラーキーのことか?
98名前は開発中のものです。:05/01/16 16:24:30 ID:cJAj482a
>>97
いちいち大げさだし、落ちた時怖いし。
テトリス程度ならBitBltでも充分過ぎる。
9985:05/01/16 16:58:39 ID:l1qZrVG+
>>95のヤツを640x480に改造してみたらFPS160〜200!?
値が不安定だったんで、FPSの算出の精度を上げてみたらFPS110くらいでしたorz
>>96
VRAMを使うと演算に時間がかかってしまうので。
アルファ合成などをしたいときに困る。
ただ、無演算の転送時はVRAMを使うとかは考えたんだが、
VRAMをDDraw使わずに利用する方法が分からないorz
>>97
DirectX使わずにゲーム作ってみたかったんです。
透明処理はアルファ合成やブレンド処理のことでつ。

やっぱ無理があるっぽいんで、FPSが低くてもごまかせるようにゲーム側を調整することにします。
みなさんレスしてくれてありがとです。
10097:05/01/16 17:17:23 ID:8IvX1yU+
>>99
DirectXを使いたくないという、その意義がちょっとわからないな。
自分でdibsectionでやったとこで結局メモリ帯域の壁にぶち当たって終了なだけなんだけど。

全画面に対して半透明をかけるなどするのでなければ、
基本的にDirectDrawでハードウェアブリットを使用して、
適宜、システムメモリに確保したサーフェスで自分でアルファブレンド演算して
それをbltfastするだけでも十二分に問題ないよ

さらに言えば、Direct3Dでビルボード使うのが昨今の流行だよね
アルファブレンドも拡大縮小・回転・変形なんでもやりまくり
10197:05/01/16 17:21:44 ID:8IvX1yU+
>システムメモリに確保したサーフェスで自分でアルファブレンド演算して

なんか変だな。VRAMをLockして自前で書き込む
10285:05/01/16 17:48:13 ID:l1qZrVG+
>>97
オレもDDraw使ってた時はそうしてた。
だけど、出力先がVRAMサーフェィスだと元画像がシステムRAMサーフェイス演算処理が非常に遅くなってしまう。
で、これを解決するにはVRAMから一旦システムRAMにブリットして、そこに半透明の物を描画、
最終的にこれをVRAMに戻す。
こうすればいいんだが、透明オブジェクトごとにこれをやってると大変なことになってしまう。
雲やフェードなどで、半透明処理を画面全体に使いたいので結局ボツになってしまった。
もっと効率のよいやり方があると思うんで、教えてもらえるとうれしいです。

ちなみにDirectGraphicsのさわりを1年以上前にかじったが、受験やら何やらで記憶から飛んでしまった…
SDKとかもどっか消えちゃってるっぽいし…
103名前は開発中のものです。:05/01/16 17:48:18 ID:+Q5c9pKE
>>99
MMXとか使うと良いよー
http://www.cyborg.ne.jp/~xelf/developer/MemoryCopy.html
これはメモリコピーの例だけど、アルファブレンドも高速化できるよ
10485:05/01/16 17:53:17 ID:l1qZrVG+
>>103
ありがd!
MMXはアルファブレンドで既に使ってるけど、メモリコピーでは使ってないんで試してみるわ。
105名前は開発中のものです。:05/01/16 18:33:27 ID:iFAGXXNG
>>102
画面全体に使いたいなら、答えは解像度を落とすか、Direct3Dを使うしかない。
D3Dでの2D描画はお勧め。最初、とっつき悪いけど。
106名前は開発中のものです。:05/01/16 20:36:58 ID:kmBS/1gg
GDIでゲーム作るってのはバスでレースに出るようなもんだ。
107名前は開発中のものです。:05/01/17 04:52:15 ID:EGIYB8/W
たとえスピードが出なくても、
バスで安全運転したいんじゃなかろうか?
108名前は開発中のものです。:05/01/17 06:54:24 ID:OybtQj5h
街乗りにレース仕様を求める輩は(ry
109名前は開発中のものです。:05/01/17 16:45:47 ID:5rsoc+Sh
>>94
吉里吉里は鬼のような更新エリア管理(変化があったところしか描画しない)で
あの速度を出していると聞いたことがある。ADVのような画面変化の少ない
ゲームにはすごく有効なんだろうな。常時画面が動いてるようなSTGとかでは
ほとんど意味がないだろうけど。
110名前は開発中のものです。:05/01/17 22:41:16 ID:NidjJtgD
縦STGなら、画面幅狭くして誤魔化せる♪
111名前は開発中のものです。:05/01/18 10:57:50 ID:mhTx1P2X
>109
>たとえば完全に不透明なレイヤの奥にあるレイヤは描画しないくてよいとか、
>CPUキャッシュを効率的に使用するために画像をキャッシュに収まるぐらいの
>分量で演算して順次画面に転送したりとか、変更のない領域は演算しないとか、
>いろいろあります。
サクーシャの日記より
112名前は開発中のものです。:05/01/19 23:05:34 ID:UpNya3dG
エメドラとかでやってた差分更新スクロールを思い出しちゃった
113名前は開発中のものです。:05/01/19 23:12:31 ID:aRH3B+4H
タムリン回復してくれ!
いやレーザー出してないで回復してくれ。
おいハスラムお前は下がってろ、死ぬぞ。
だからダムリン、レーザーじゃなくて回復だって。
おいハスラム下がれよ。
あ、死んだ。
114名前は開発中のものです。:05/01/25 03:39:41 ID:e91Gc3r5
>>112
それをいうならテグザー。って歳がばれるな。。。orz
115名前は開発中のものです。:05/01/29 13:40:17 ID:mEtNLycX
だいぶ下がってるみたいだが、誰もいないのか?
誰かいたらageてくれ
116名前は開発中のものです。:05/01/29 15:31:10 ID:YU0Z0PBF
おらおら
117名前は開発中のものです。:05/01/29 15:42:10 ID:0G2VwVCk
オラオラ
118名前は開発中のものです。:05/01/29 18:04:40 ID:YhpGkHYl
>>88
フレーム管理の処理は入れたか?
119名前は開発中のものです。:05/01/30 00:33:55 ID:f7U2kOiV
>>118
88だが、そのやつはウェイト無しでやったからフレーム管理はしてない。
実際に使う時は、MMタイマー使ってFPSを保つけど。
120名前は開発中のものです。:05/01/30 22:28:15 ID:uoXF1H/p
>>115出てこいや
121名前は開発中のものです。:05/01/31 21:26:15 ID:0o9LrN7x
DirectXに逃げずに未だにGDIでふんばってる香具師ってどのくらいいるんだ?
122名前は開発中のものです。:05/01/31 22:32:35 ID:jmz8AnbI
テーブルゲームとかパズルゲームの作者なら
ふんばってるかも。
123名前は開発中のものです。:05/01/31 22:53:10 ID:Yi5Y8AvB
GDIに逃げずにDirectXに移行してる香具師ってどのくらいいるんだ?
124名前は開発中のものです。:05/02/12 00:21:36 ID:eeqsTIaL
誰か画像の任意角回転方法教えてください!
125名前は開発中のものです。:05/02/12 01:36:56 ID:f0t6Ydo5
>>124
2Dか?
3D機能を使うのか?
ピクセルをゴリゴリしたいのか?
126名前は開発中のものです。:05/02/12 02:11:38 ID:eeqsTIaL
ピクセルゴリゴリキボンヌ
127名前は開発中のものです。:05/02/12 15:55:12 ID:f0t6Ydo5
擬似コードで書くとこんな漢字だろ?
for (int y=-16;y<17;++y) {
 for (int x=-16;x<17;++x) {
  int xx=x*cos(r);
  int yy=y*sin(r);
  PutPixel( Surface1, x,y, GetPixel(Surface2,xx,yy) );
 }
}
コードをお最適化したいならネットで調べてくれ
128名前は開発中のものです。:05/02/12 18:15:31 ID:eeqsTIaL
>>127
そのくらいは既に作ってあるんだけど、画像がデカくなると鈍くてぬるぽ。
もちろんsinやcosは最初の一回だけ演算で、固定小数で座標変換するくらいの工夫はしてるが。
129名前は開発中のものです。:05/02/15 12:36:06 ID:/Km3SJ1p
今時のCPUなら余裕だろ
つーか計算以外のところが重いんじゃないの?

今時でないCPUならこの辺が参考になるかも
ttp://homepage3.nifty.com/taka7646/taka/
130名前は開発中のものです。:05/02/16 19:47:28 ID:OolR/sC8
よく見れば
>>127
ってなんか間違ってる気が…
>>129
回転マトリクス使うわけだが、この乗算を640x480でやったら結構大変だと思うが…
131名前は開発中のものです。:2005/03/23(水) 10:05:46 ID:BEkGnVxI
ttp://www.yashok.com/~yashok/oth/pro/win/win_eff01.shtml
要はrotozoomerだろ?
コモドールとかamigaでOldschoolメガデモでタイルぐるぐる回すやつ。
DirectXのラッパか何か使ってるの?
俺はmallocで確保した背景(回転エフェクト)用の領域をQWORD整合して、
描画した後、プライオリティ考慮しながらoffscreenに流し込む方法とってる。
800*600とかでも十分に速度出る。1024*768はさすがにやばいけど。
あとはURLで紹介されているけど、sincosをテーブルにするとか、
テクスチャのサイズを2のべき乗にして剰余演算をANDで置き換える等々。
132名前は開発中のものです。:2005/05/03(火) 23:52:47 ID:Ez3eLyuc
移転に気づいて久しぶりに来てみたらレス付いてたわ…

>>131
とりあえずmallocでメモリ確保してGDIで出力してる。
演算は固定点小数でやってるが、タイル状のものを回転させてたいわけじゃないんで、
範囲内か外かの判定もドット毎にやってる。
それとαチャンネルも考慮してるせいか、320*240以上の回転だと無理を感じる。
133名前は開発中のものです。:2005/07/04(月) 13:12:22 ID:DCOrN9qA
あげ
134名前は開発中のものです。:2005/07/10(日) 23:14:05 ID:XW0Y5gBB
>>範囲内か外かの判定もドット毎にやってる。
エッジスキャンとか使えばちょっとは楽になるはず。
135名前は開発中のものです。:2006/10/18(水) 21:23:30 ID:kr96y9vb
過疎ってるなみんな順調なのか
136名前は開発中のものです。:2007/10/08(月) 05:35:01 ID:Cw+Y3bqy
       ???  ←買い犬
  ?  ???〓▲?              ? ? ?????■??〓?? ? ? … .
 ? ▼     ??▼        .??■? ? ? ?¨ ∵? ? ・
  ?? ??     ? ??   ?? ???? ¨???????■■〓????
    ?  ? ?■     ? ? ?????????■〓?? ?? ∴ ? .
  ?   ?   ?? ??????????? ? ∴ ….? ?  ??
   ???  ????????????????  ? ??????
     ???????   ?  ¨ ???■??? ? ? ∴‥
137名前は開発中のものです。:2007/12/24(月) 22:22:57 ID:vSGEO8zs
あげます
138名前は開発中のものです。:2008/07/28(月) 16:28:06 ID:oDAbic6p
アニメーションデータをコンバートするフリーツールってないですか?
139名前は開発中のものです。:2008/07/28(月) 17:15:45 ID:TZcaIn12
>>138
形式が何から何にかぐらい書けよ…
140138:2008/08/02(土) 00:45:13 ID:2Dggsi0/
あ、すいません。
2Dのアニメーションコンバートツールをさがしています。
flashとかを通して変換するのでもいいですが、
素材はphotoshopなんで座標の動きなどの抽出ができれば
特に形式はといません。てか、2Dの形式はあんま知らないんですよね。。
データに落とし込めれば何でもいいです。
調べながらやろうという感じですが、あんま検索してもでてこないんですよね。。
141名前は開発中のものです。:2008/08/02(土) 01:11:02 ID:ffxR51b5
>>140
俺の場合、画像データの変換(コンバート)と言えば
拡張子○○のファイルを拡張子○○に変換するというのを思い浮かべるんだけれど、そういう意味では無いのか。

3Dの分野はよくわからないや。
それこそ、Photoshopならたいていの形式に変換して保存できると思うんだけど。
アニメーションならgif形式が一般的。(俺の中では)
142名前は開発中のものです。:2008/08/02(土) 02:54:35 ID:ggW8zOrR
>>140 に書いてあることが俺にはさっぱり理解できない。
素材がフォトショップなの?座標の動きが抽出できる2Dフォーマット?

エスパーを呼べ。
143名前は開発中のものです。:2008/08/02(土) 09:24:27 ID:SuHxSoje
ひょっとして、2Dアニメってピクセルの色が固定で
そのピクセル座標を移動してるとおもってる?
3Dのシェーダーでいうバンプマップや、旗、水面の表現みたいに。

144140:2008/08/02(土) 14:11:42 ID:2Dggsi0/
すまん、よくわからん説明かいた。
飲み過ぎて、よくわからんはしょりかたしているかも。

>141
どうもサンクス。お話はよくわかります。ただ、2Dっす。

>142

photoshopのデータをflashやAEに持ってきて、
アニメーションを作成。
そのデータをコンバートして
テキストなりバイナリなりのデータに落とし込みたい。
そのコンバートツールをさがしている。
まだアニメーションはつけていない。

これでエスパー呼ばなくても大丈夫かしら?

>143
ピクセルアニメじゃないっす。わかりづらくてすいませんね。
145名前は開発中のものです。:2008/08/02(土) 14:19:36 ID:ggW8zOrR
>>144

AEやフラッシュからキーフレームの情報を書き出すツールは知らないな。
そういうアニメーションの汎用フォーマットがあることも聞いたことがない。

うちでも2Dのアニメーションの作成&再生ってやってるけど、
専用のオーサリングツールを作ってそれでやってる。
そんなに大変じゃないから作った方が早いかも。
PC で再生するんだったら、PS とかも使えるしね。
146名前は開発中のものです。:2008/08/02(土) 18:17:29 ID:F2Ze1FHS
テキストの汎用フォーマットというとSVGか?
147名前は開発中のものです。:2008/08/02(土) 19:52:17 ID:ffxR51b5
>>144
あらゆるマルチメディアファイルを相互変換するフリーソフト SUPER C
http://gigazine.net/index.php?/news/20060901_super_c/

なんか凄く嘘臭いけど
使ったことある人いる?
148名前は開発中のものです。:2008/08/03(日) 06:03:44 ID:Fm7SEmEs
>>147
ちょっとは>>144の内容を読んでやれよw
149144:2008/08/04(月) 00:16:04 ID:elwsxQFE
145-148
サンクスです。
結論としては、145のいうとおり、
自分で作った方がよさそうじゃないか、になりました。
でも、知らないこともあったので、参考になりました。

英語圏とかに知らんもんがあるかもしれないので、
もしなんか知っている方いましたら書いといてくれるとありがたいです。。
そのうち様子見にくるかもしれませんので。では。
150名前は開発中のものです。:2010/09/12(日) 21:39:42 ID:V8hxTE2+
;;;
151tor-exit-1.lab.net:2011/02/21(月) 22:39:13.07 ID:7/H3XPu/
hoshu
152 忍法帖【Lv=3,xxxP】 :2011/06/10(金) 15:19:06.81 ID:POh44ONj
test
153 忍法帖【Lv=7,xxxP】 :2011/06/20(月) 12:24:58.39 ID:RoWTlHDo
test
154 忍法帖【Lv=5,xxxP】 :2011/08/11(木) 06:13:36.29 ID:cu8bmYg7
test
155 忍法帖【Lv=2,xxxP】 :2011/08/16(火) 16:30:55.03 ID:fXlSZN6Y
INTEL
156名前は開発中のものです。:2012/04/22(日) 00:35:06.18 ID:1esUa6zf
157名前は開発中のものです。:2012/04/24(火) 10:37:13.81 ID:wzzo7GXM
158電脳プリオン 忍法帖【Lv=40,xxxPT】(1+0:5) 【38.9m】

  ∧_∧
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ ←>>128
 (_フ彡        /