【C++】 DirectX初心者質問スレ Part13 【C】at TECH
【C++】 DirectX初心者質問スレ Part13 【C】 - 暇つぶし2ch591:デフォルトの名無しさん
07/08/03 00:24:13
>>590
変えたいのは透明度だけなんだから全部黒でいいじゃん。

□はRGBAが(0, 0, 0, 0)な黒の透明ピクセル
■はRGBAが(0, 0, 0, 255)な黒い不透明ピクセル

□□□□□□
□□■■□□
□■■■■□
□■■■■□
□□■■□□
□□□□□□

PhotoShopみたいにちゃんと透明度管理してくれるソフト使ってると
いちいち透明部分を別の色にする必要ないと思うんだがな。


592:デフォルトの名無しさん
07/08/03 00:32:03
>>590
フィルタなんて全部OFFにして
最後に一発フルシーンアンチエイリアスでFA
FSAAなければ適当に拡大縮小してぼかしてもいい

593:デフォルトの名無しさん
07/08/03 00:36:13
Zバッファとかステンシルバッファを駆使してマスクかけられんかな?

594:デフォルトの名無しさん
07/08/03 00:45:45
はじめっからぼかしたキャラに淵つけたもんをテクスチャに描いておくw

595:デフォルトの名無しさん
07/08/03 01:01:58
>>590
テクスチャフィルタは透明かどうかを考慮せずに補間するので
完全に透明な部分の色も混ざってしまうのは仕方が無い。
(そもそもαは透明度と決まっているわけでもない)

解決方法は、不透明部分に隣接する透明部分には、不透明の
部分からうまく補間した色を置いておくのが普通。

596:583
07/08/03 02:22:45
>>589
やはりそうですか、、、なまじ一部にだけ機能が提供されているからモードによる動作違いに悩みますな。
結局はこの簡易機能には一切関わらず、とにかく読み込み時にリニア、Present直前の書き込み時にシェーダーでsRGBにするという一貫性を持たせるしかないようですね。

>というかこの質問、あまり初心者じゃないぞw
やはりそうですか。周りでも聞いても”はぁ?”って感じでみんなリニアとノンリニアを考えずに適当にやっているみたい。ま、ゲームならどうでも良いでしょうが。
ググっても一切情報は出てこないですよね。いやはや確信が持てて助かりました。


597:デフォルトの名無しさん
07/08/03 07:05:38
>>595
おお、
つーか、あれか、デザイナさんの作ったデータみると
キャラの枠よりαの枠のが2まわりぐらい小さくなってるな
そういうことか・・・なるほど・・・今気付いてしまったw

598:デフォルトの名無しさん
07/08/03 10:59:59
>>597
もう少し日本語を書く訓練しておきなさいよ。まるで小学生の日記のようじゃないですか。

599:デフォルトの名無しさん
07/08/03 14:34:15
マウスを使用したゲームを作っているのですが
なぜか、カーソルの座標が(0,0)か(640,0)の時にクリックをすると
ゲームが終了してしまいます。


そこで、カーソルの座標のyを常に1以上にしたいのですが
「カーソルの座標を取得する」関数はあるのですが
「カーソルを任意の場所に移動させる」関数が見つかりません。


未熟者の浅はかな質問ではありますがよろしくお願いします。


それと、出来れば(0,0)と(640,0)の時にのみゲームが終了する
理由も教えていただければ幸いです。


後、参考になるかどうかは分かりませんが、
ゲーム中は「カーソルキーを非表示にする」という処理を行っているのですが
(0,0)と(640,0)の時にのみカーソルキーが表示されてしまいます。

600:デフォルトの名無しさん
07/08/03 15:10:01
それはプログラムが悪いんじゃないかとしか

601:デフォルトの名無しさん
07/08/03 15:21:46
>>599
ウィンドウスタイルに問題あるんじゃないか?
フルスクリーンならタイトルバーとか閉じるボタンは付けてはいかんぞ。

マウスカーソルを移動させるAPIはあるが、そんな対処療法のためには
教えるわけにはいかんな。誤魔化さないで、ちゃんと原因を突き止めろ。

602:デフォルトの名無しさん
07/08/03 16:28:12
>>601
601さんのアドバイスのお陰で出来ました。
CreateWindowEXの第1引数を0からWS_EX_TOOLWINDOWにしたら、出来ました。

これからは、すぐ諦めず原因を追求していきたいと思います。
本当にありがとうございました^-^

603:デフォルトの名無しさん
07/08/03 17:09:17
それ本当に解決になってるのか?

604:デフォルトの名無しさん
07/08/03 18:23:35
>>601
× 対処療法
○ 対症療法

605:デフォルトの名無しさん
07/08/03 19:55:52
>>602
XPスタイルだからだろ?

デフォルトのLunaはタイトルバーの左上と右上の角が丸くなってるから、
背景になっている部分をクリックしてウィンドウが非アクティブ化したとか
そんな下らん理由だろ

606:デフォルトの名無しさん
07/08/03 21:53:20
質問させてください
テクスチャーをD3DPOOL_SYSTEMMEMで読み込んだときの「システムメモリー」とはどこを指すのでしょうか?
いわゆるmallocやnewで割り振られるメモリーのことだと思っていたのですが

・タスクマネージャーのプロセスタブを見ると確かにメモリーを食っているっぽい
・だけどウインドウを「最小化」するとタスクマネージャーのプロセスタブ上ではメモリー食ってない状態に
・でもパフォーマンスタグを見る限り、やっぱりメモリー食いっぱなし

となっており、混乱しています。


607:デフォルトの名無しさん
07/08/03 22:01:41
>>606
『「最小化」すると』のあたり、分かって聞いている釣りにも見えるな。

608:デフォルトの名無しさん
07/08/03 22:07:59
>>606
最小化したらスワップするからメモリを食ってない状態になるんでしょ

609:デフォルトの名無しさん
07/08/03 22:13:10
ワーキングメモリの話かなぁ

610:デフォルトの名無しさん
07/08/03 22:43:41
>>607-608
釣りではないです。
最小化するとスワップ…。スワップっていうのは確か、メモリー上のをHDDの仮想メモリに逃がすんですよね。
なるほどそういう理由だったのですか。

てっきり「テクスチャーロード時に一時的に使ったメモリーを、最小化した機会にやっと開放したのかな」とか思ってました。
Java脳ですか。

じゃあ単純にシステムメモリー=PCのメインメモリですね。
ありがとうございました。

611:デフォルトの名無しさん
07/08/03 22:50:58
>>610
最小化時にはスワップだけでなくメモリを解放する事もあるよ

612:デフォルトの名無しさん
07/08/03 23:26:04
>>591-597
アドバイスありがとうございました。

まず1ドット太らせる機能を持つツールを探してみました。
フォトショですらそういう機能はないそうです。

次に絵描きさんにそもそも太らせるようお願いしようかと検討してみました。
小さめのドット絵を扱うので元画像を太らせつつ描くのはつらいようです。

最後に、テクスチャーを読み込んだら即座にロックし、プログラムで1ドット太らせてみました。
思いのほか処理が早く、本来の画像読み込みから10%程度多く時間がかかるくらいで済みました。
画像も綺麗に拡大縮小できています。

613:デフォルトの名無しさん
07/08/04 00:04:34
アルファ効かせてるならコピーして上下左右斜めにそれぞれ1ドットずらして
ペタリと貼るだけな気もする
でそれをまたキャプチャー

614:デフォルトの名無しさん
07/08/04 01:01:13
premultiplied alpha にするという手も。

615:デフォルトの名無しさん
07/08/04 01:23:41
初心者ウザすぎ。もう来るな

616:462
07/08/04 01:38:46
人とのコミュニケーション能力の無いガキは来るな

617:デフォルトの名無しさん
07/08/04 08:21:42
>>612
太らせる?
元のキャラ絵の輪郭からα画像を生成して(フォトショップの色域選択で可)
縦横2ドットずつ縮小するだけじゃね?

>>615
スレタイ嫁w

質問するほうも初心者として扱われるのを覚悟しなきゃいけんし、
答えるほうも多少わけわからん日本語を覚悟しないと駄目だろ?

618:デフォルトの名無しさん
07/08/04 16:50:48
>>617
多少わけわからん日本語てwww

日本語がわけわからん理由としてDirectXの初心者だからってのは言い訳にもならないぞ。
質問する側であれ答える側であれ、分かりやすい日本語を書くべきなのは当然だろう。



619:デフォルトの名無しさん
07/08/04 17:31:45
質問者に関しては
・開発環境
・目的
・現状
・現状へのプロセス
これらをハッキリ伝えないと回答のしようが無い場合が多い。
日本語云々もそうだけど、曖昧にしたり何故か事実を歪曲させて書かれるとモウネ


620:デフォルトの名無しさん
07/08/05 03:28:44
質問です
ゲームのエフェクトとしてパーティクルとビルボードをしようしようかとおもうのですが
その際の処理速度を上げる方法としていい方法は何かないでしょうか?

同じテクスチャのパーティクルはまとめてD3DLOCK_DISCARDで頂点バッファを
作成し描画する程度は思いつくのですが・・・

621:デフォルトの名無しさん
07/08/05 03:34:07
>>620
普通のモデルとやることかわらんけど?
やってみて重かったら最適化しろよ
無駄だぞ
初心者のくせに組む前から失敗したくねーとか甘いこといってんじゃねぇよ

622:デフォルトの名無しさん
07/08/05 07:20:47
なんでこう喧嘩腰になるのかねぇ…
嫌なことあった?

623:デフォルトの名無しさん
07/08/05 08:13:43
2chでストレス発散するタイプ?
八つ当たりされた方はたまらんな。

624:デフォルトの名無しさん
07/08/05 08:39:54
~をやってみた→処理が重い→どうすれば軽くなる?
ならわかるけど
~をやるつもり→速い処理教えて
↑こんな奴相手にしなくていいと思う
やんわり言っても同じことだと思うけど?
ただの煽りと区別つかないのはちょっと困る

625:デフォルトの名無しさん
07/08/05 09:13:17
俺には>>621は煽りにしか見えん。
つか>>621は相手にしてんじゃん。相手にした上で煽ってる。

>やんわり言っても同じことだと思うけど?
同じじゃねーよタコ。

って言われたらカチンって来るだろ?
顔が見えないネットじゃ文面に気を使うのは大事だと思うよ。

626:デフォルトの名無しさん
07/08/05 09:13:47
ゆとりにイライラしても始まらないのは確か。

627:デフォルトの名無しさん
07/08/05 09:17:19
>>625
>同じじゃねーよタコ。
どう同じじゃねーんだよタコ
って返すだけだけどな

628:デフォルトの名無しさん
07/08/05 09:20:19
age

629:デフォルトの名無しさん
07/08/05 09:20:53
正直、現実で>>620のような奴が増えては困る
その場その場の方法なんて教えるだけ無駄だと俺は思う
初心者スレは技術より技術者の有り方を叩きこんでやるのが俺のおせっかい

それが嫌(初心者扱いがうっとおしいと思う)なら通常の質問スレにいけ

630:デフォルトの名無しさん
07/08/05 11:01:38
CComPtr<IDirect3DTexture9>をCreateTexture等の引数に直接指定した場合
Attachを使わずに代入したのと同じく参照カウントは2になってしまうんでしょうか?

631:デフォルトの名無しさん
07/08/05 11:15:32
すみません教えてください

DirectX BusterというのでDirectXをアンインストールした後
再インストールしようとしたのですが
「インストールの完了」と表示されても
DirectXの診断ではヴァージョンが更新されていません
どうすればインストール出来るのでしょうか;


632:デフォルトの名無しさん
07/08/05 11:24:06
>>629
ここはDirectXについてのスレです。
技術者の有り方については別の場所でやってください。
まずあなた自身が勉強して日本語と空気を読めるようにならないと、
誰にも教えることなんて出来ないでしょうけどね。

633:デフォルトの名無しさん
07/08/05 11:50:47
>>632
同意。そんなのはリアル世界で会社の糞後輩相手に右往左往してやって欲しい。
ここでは逆に純粋に技術話を端的にして欲しいな。


634:デフォルトの名無しさん
07/08/05 12:11:15
>>632
そう?だれでも同じレスつけると思うけど?
だって無駄じゃん
こいつは自分でやってもみねぇで何をもって速くなったと判断するのか?
いま、その技術がそこでできるかどうかなんて問題じゃねぇじゃん
直接的に
Q1→A1
Q2→A2
 ・
 ・
 ・
ってやることに全く意味を感じない
どうせヘルプ見れば載ってるようなのばっかだろ?
また、次にとるべき行動が誰の目から見ても明らかなもんとかよ
調べるの面倒だから聞いたとかそんなもんだろ?
現実、会社で一発でもやってしまうとそこで終了な職場もあるから俺はそういうのを技術を通して教えて生きたいと思う

質問する側も勝手にすればいいと思うけど回答つける側だって勝手じゃん?
俺は俺のやり方でやらせてもらうよ

635:デフォルトの名無しさん
07/08/05 12:20:25
そういうレスが要らない

636:デフォルトの名無しさん
07/08/05 12:26:10
>>635が次のレスで技術的なことをいいます!
ではドゾー↓

637:デフォルトの名無しさん
07/08/05 12:26:43
僕らは卒業までの期間が決まってるんです。
趣味でやってる暇な社会人とは使える時間が違うんです


638:デフォルトの名無しさん
07/08/05 12:32:55
そういうレスが要らない

639:デフォルトの名無しさん
07/08/05 12:38:23
会社で技術者のあり方を教えるのに
>>621の口調で教えるんだなお前は

640:デフォルトの名無しさん
07/08/05 12:56:38
>>639
多少ですます調に変更はあるものの言うね、まちがいなく
それでシカトして困るの俺じゃねぇし
やる気ないの明らかに相手だし

641:デフォルトの名無しさん
07/08/05 13:15:09
俺は別に心構えとかここで言ってもいいと思ってるけどね
多少ですます調に変わるって言うところが不愉快だ

642:デフォルトの名無しさん
07/08/05 13:36:55
まあ落ち着け
突っ込まれてるのは口調だ
内容については誰も突っ込んでない
そこがまず食い違ってるぞ

643:デフォルトの名無しさん
07/08/05 13:44:47
心構えなら技術のないリタイア組でも口出せるから必死なんだろ。

644:デフォルトの名無しさん
07/08/05 15:04:06
ああ、なるほど。
技術が無いからこの初心者スレにいるが、教えられないけど偉そうには
言いたいって感じか。

645:デフォルトの名無しさん
07/08/05 15:05:00
とりあえずおまえらプールにでも行ってこい

646:デフォルトの名無しさん
07/08/05 17:00:43
むしろ初心者を挫折させたくて仕方がないんだw

647:デフォルトの名無しさん
07/08/05 18:40:49
>>645
市民プールなんて排水口にまきこまれそうで怖くていけねーよ

648:デフォルトの名無しさん
07/08/05 18:42:57
幼女発見

649:デフォルトの名無しさん
07/08/05 18:56:38
排水口の中で

650:デフォルトの名無しさん
07/08/05 19:42:31
市民プールは若い娘はいない。ロリとババアだけだ

651:デフォルトの名無しさん
07/08/05 20:56:49
DirectX SDK を October 2003 から、 June 2007に
バージョンアップしたところ、

プログラム内で、DirectXで文字を表示する箇所、
DrawText( NULL,str, -1,pRect, DT_LEFT | DT_EXPANDTABS, color);

において、

Run-Time Check Failure #0 - The value of ESP was not properly
saved across a function call. This is usually a result of calling
a function declared with one calling convention with a function
pointer declared with a different calling convention.

というメッセージが表示されて停止してしまいます。
これは何が問題なのでしょうか?

ちなみにDrawTextの行をコメントにするとプログラムは正常に動きます。

652:デフォルトの名無しさん
07/08/05 21:37:13
>>651
DrawTextの仕様が変わってんだろ?多分
引数に変更があるはずだから探し出せ

653:デフォルトの名無しさん
07/08/05 21:54:40
DrawTextってGDIか?

654:デフォルトの名無しさん
07/08/05 22:09:09
いいえ。DirectXの方です。
LPD3DXFONT pFont;
pFont->DrawText
として使っています。

>DrawText関数を使う前の、
D3DXCreateFont関数では、S_OKを返していました。
仕様変更をしらべてみます。

655:デフォルトの名無しさん
07/08/05 22:17:06
調べ方わかるか?
SDKのサンプルでDrawTextを使ってるもんを調べるんだ

656:デフォルトの名無しさん
07/08/05 22:26:29
ある呼び出し規約で宣言された関数を
別の呼び出し規約の関数ポインタで呼び出しちゃったと言ってるんで

インクルードフォルダとライブラリフォルダが正しいかとか調べてみては。
昔のインクルードを読んでるのにライブラリが最新のをリンクしてて、矛盾が生じてるとかあるかも

657:デフォルトの名無しさん
07/08/05 22:38:03
>> 655 656
皆さんありがとうございました。解決しました。

古いSDKのフォルダ(DX90SDK)が残っていたので、削除しました。
(新しいSDKは、Program Filesの中にインストールされていました)
そしてリビルドかけたところ、
D3DXCreateFont等がリンクできないというメッセージがでたので、
リンクするライブラリを、d3dx9dt.lib から d3dx9.lib にしたところ、
うまくビルドできました。



658:デフォルトの名無しさん
07/08/05 23:05:54
旧SDK全部アンインストールしてもう1回入れなおしたほうがいいな

659:デフォルトの名無しさん
07/08/06 07:28:23
lib選択してリンクしてるってのがもう怪しいな

660:デフォルトの名無しさん
07/08/06 18:07:06
物体の反射を作ろうとしてるんですが
xファイルから面の法線ベクトルを取得する方法ってありますでしょうか?


661:デフォルトの名無しさん
07/08/06 18:14:00
中のデータを取得するだけ。

662:デフォルトの名無しさん
07/08/06 19:48:10
>>661
xファイルから取得できるのは点の法線ベクトルだと思います
なんとかして面にしたいのですが方法ありますでしょうか?

663:デフォルトの名無しさん
07/08/06 19:52:23
じゃあ各面について辺の外積を求めれば?

664:デフォルトの名無しさん
07/08/06 20:52:01
>>663
そういう計算じゃ駄目なんです
CGツールでは面の法線ベクトルで指定できるわけですから
それを頂点や辺から求めたのでは結果が異なりませんか?

665:デフォルトの名無しさん
07/08/06 21:22:23
エクスポートされたデータが面の法線を出しているのなら、
面を構成している頂点が面の法線になっているだろう。

頭が弱いのか?

666:デフォルトの名無しさん
07/08/06 21:42:25
つまり、単なる平均じゃなくて重み付けの計算がやりたいが、具体的に教えろということだ。


667:デフォルトの名無しさん
07/08/06 21:57:53
意味不明

668:デフォルトの名無しさん
07/08/06 23:04:33
Xファイルには面の法線データは入っていないので、計算じゃだめってんなら、無理です。

669:デフォルトの名無しさん
07/08/06 23:12:14
DirectXの方で面法線なんて設定できたっけ?

670:デフォルトの名無しさん
07/08/06 23:13:18
あ、1頂点につき面の頂点分持てば可能か・・・

671:デフォルトの名無しさん
07/08/06 23:17:18
意味不明

672:デフォルトの名無しさん
07/08/06 23:20:35
モデリングソフト側で面法線を利用してエクスポートしているのなら、
面を構成している頂点の法線が全て共通になるだけの話。
計算も糞もない。

なぜこんな単純なことが分からないのか、それがさっぱり分からない。

673:デフォルトの名無しさん
07/08/06 23:37:56
モルダーにでも聞け

674:デフォルトの名無しさん
07/08/06 23:50:40
>面を構成している頂点の法線が全て共通になるだけの話。
うそーん?
じゃあ点ABCDから、三角形ABC、BCDのポリゴンがあるとしたら
BとCの法線ベクトルはABCと同値なの?BCDと同値なの?

675:デフォルトの名無しさん
07/08/07 00:24:32
ジオメトリシェーダを使えば
面法線も余裕のよっちゃんかしらね。

676:デフォルトの名無しさん
07/08/07 00:26:26
そういや法線の求め方に「正解」ってのは見たことねぇな。

たいがいは頂点の属する面の法線を足し合わせるだけだろうけど、
(足し合わせる前に法線正規化するorしない派がある)
面の向きに依存しないように頂点の角度を考慮に入れたりする場合もある。
この時点でツールによって実装バラバラなのに、ここから面をスムースにする
角度指定なんか入るとさぁ大変。

ぶっちゃけxファイルからツールの法線を完全に再現したいんなら(質問読み違えてる?)
ツールのSDK等でソースが公開されていることを祈るしかねぇんじゃないの?

677:デフォルトの名無しさん
07/08/07 00:40:18
自分はツールにはあまり詳しくないんだが「頂点の角度」ってなんじゃらほい??

それはさておき、ツールで指定した面法線の値に依存するような
反射を作りたいんなら、そもそもX形式でやることがアレかも?
そのツールからX形式にするときに、求める情報が失われているかどうか
電卓とかで調べて、ダメなら結局自前でエクスポーターとか書くしかないんじゃね?

678:デフォルトの名無しさん
07/08/07 06:23:20
>>674
その場合ってBとCの頂点は法線を2つもつためにBとCの頂点がそれぞれ2つになるんじゃね?
ΔABCと△BCDのBCは別の頂点になるんじゃね?っつこと

679:デフォルトの名無しさん
07/08/07 08:27:09
Xファイルのフォーマットの仕様では法線のベクトル配列とインデックス配列は頂点座標のそれらとは独立しているので、
頂点4つに対して法線を6つ用意して法線を共有しない三角形を2つ作るといったことも記述できるよ。
URLリンク(msdn2.microsoft.com)
ただ、そのような変則的な書き方を利用するかどうかはCGツールのエクスポータ次第だけどね。

680:デフォルトの名無しさん
07/08/07 09:16:48
Xファイルで面法線を記述する例
(頂点座標4個、法線ベクトル2個、三角形2個)

------------------------------
xof 0302txt 0032
Mesh {
4;
-1.0;0.0;0.0;,
1.0;0.0;0.0;;
0.0;-1.0;1.0;,
0.0;1.0;1.0;,
2;
3;0,1,2;,
3;1,0,3;;
MeshNormals {
2;
0.0;-0.7071;-0.7071;,
0.0;0.7071;-0.7071;,
2;
3;0,0,0;,
3;1,1,1;;
}
}
------------------------------

DirectX Viewerではこれで期待通りに動作した。

681:デフォルトの名無しさん
07/08/07 10:00:42
だからモデリング時に面法線を使用した場合、エクスポートした時点でデータが入っているんだから、
これ以上グダグダ言っても始まらないだろ。
入っている物をそのまま使えばいいだけ。

逆に頂点ごとに法線が異なる場合は、モデリング時の指定かエクスポートの仕方が悪い。
結局データを読み込む段階に対処すべき話ではない。

682:デフォルトの名無しさん
07/08/08 00:19:30
面法線を設定したって表示は頂点法線なんだべ?
なんか勝手に反映されてるような気がしないでもないけどねw
されてねぇんかな?


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch