07/07/26 04:53:13
>>467
> いまさら時代はDX9というあたり、
10の環境はまだ2%もないし、シェーダ弄くらなきゃ8.1と9は全然かわんないし、普通じゃねえの?
> たぶんテクスチャも256X256を上限にしてるよ。
極端すぎる。電柱を相手にファイティングポーズ取るのはやめとけ。
488:デフォルトの名無しさん
07/07/26 11:32:47
2D描画で
D3DXCreateTextureFromFileInMemoryEx
で読み込んだデータを
DrawIndexedPrimitiveUP
で、描画するルーチンで制作していたのですが、
複数のTextureで構成された絵を拡縮する必要がでてきたので、
どのようにすればいいか悩んでいます。
イメージとしては、シューティングゲームは普通に組めたので、
ボスキャラを拡縮させながら登場させようとしたものの、計算で
調整しながら表示させると微妙にズレがでるケースがあるので、
可能なら一度構成したものを拡縮させたいと思っているのです。
命令などについてヒントが頂けないでしょうか。
489:デフォルトの名無しさん
07/07/26 11:55:44
よーわからんが、マップチップをそのままチップ毎に拡大したら
つなぎ目が目立つって状況け?
だったらまずレンダーターゲットで作成したテクスチャに描画して
それを拡大するってのでイケるんじゃねぇかな。
490:デフォルトの名無しさん
07/07/26 13:37:21
>>489
状況はそんな感じです。
レンダーターゲットとか理解しきれてなかったので、いま調べながら勉強中。
どう作るか方向性は見えてきました。 ありがとうございます。
491:488
07/07/26 18:37:58
できた
悩んでいろいろ調べてる時間が一番長かった。
492:デフォルトの名無しさん
07/07/26 20:16:53
実は普通じゃね?
493:デフォルトの名無しさん
07/07/26 21:38:24
実際のコーディングなんて全工程の20%にしかすぎないんだZE?
494:デフォルトの名無しさん
07/07/26 21:49:46
普通はパーツで作っても気になるほどずれないだろ。
そもそも整数とfloatの変換がまずいことなってんじゃねえの?
495:デフォルトの名無しさん
07/07/26 22:25:33
3Dの海岸線は困ったな。
綺麗に繋がらないし、フライト物だったので広範囲を描画しないといけないわ、
近づいたらテクスチャが荒いからって大きなのを用意したらVRAMが足りなくなるわで。
もう解決せずに放置してるが。
496:デフォルトの名無しさん
07/07/26 22:47:14
>>473
具体名を挙げると正方形じゃないと駄目で
さらに256だか512までだかとかいうウンコな制限が付いてたのは
VooDooとかいうグラボだけだった希ガス
もうないしこんなのサポートする意味もないから完全無視でおk
>>495
もやかけて限界まで誤魔化す
当然だろ
誰もみてねぇぞwそんなとこw
ハイご苦労さんw
497:デフォルトの名無しさん
07/07/26 23:05:28
誤魔化せるようなクオリティならいいんだけどね。
地上を高速で走り回るようなゲーム(レースやロボゲー)だとテクスチャのの1ドットのずれも大きかったりするし。
レースゲームはカーブとかよく綺麗に描けるなと感心する。
498:デフォルトの名無しさん
07/07/26 23:18:59
>>497
だから気にするからだろw
499:デフォルトの名無しさん
07/07/26 23:22:11
>>497
現状どの程度なのかプリントスクリーン見せてよ
500:デフォルトの名無しさん
07/07/26 23:35:04
mode 7で回転すればいい
501:デフォルトの名無しさん
07/07/26 23:38:07
>>499
俺作ってないぞww
PSでもすごいと思うから中古ショップ漁ってきてくれw
502:デフォルトの名無しさん
07/07/26 23:52:35
だいたいレースゲーなんてどれとってもジャギっててキタネーじゃん
水平線なんて気にする前にやることいくらでもあんぞ多分w
503:デフォルトの名無しさん
07/07/27 00:05:54
D3DXLoadMeshHierarchyFromXを使ってXFILEを読んでいるのですが、マテリアル名を取得できません。
どのような方法をとればマテリアル名を取得できるでしょうか?
504:デフォルトの名無しさん
07/07/27 00:11:10
>>495
URLリンク(www.realityprime.com)
505:デフォルトの名無しさん
07/07/27 00:23:31
>>503
ほんとだ
ねーじゃんw
あれかな?作った奴よくわかってねーのかな?
506:デフォルトの名無しさん
07/07/27 01:18:32
だからXぐらい自前で読み込めよ
507:デフォルトの名無しさん
07/07/27 03:34:32
ていうかマテリアルだけ独立してないとおかしいときあるよな?
1つのインスタンスを複数ってのは考えられてねぇのかな?
っていうかそれ以前だな
マテリアルの種別を外部から特定できねーじゃんなw
仕方ネェからメッシュかテクスチャのファイルネーム辺りにマテリアル名も突っ込んどけば?w
508:デフォルトの名無しさん
07/07/27 08:36:24
でも世界の開発者も誰も困ってない
SDKサンプル用途としてはそれで十分なんだろう
509:デフォルトの名無しさん
07/07/27 09:58:26
神か
510:デフォルトの名無しさん
07/07/27 22:20:41
DirectX関係の質問はここでいいのでしょうか
DirectX Busterを使ってDirectXをアンインストールしたのですが
再インストールが出来ない状態になってしまいました
どうしたら再インストールできるようになるか教えてください
511:デフォルトの名無しさん
07/07/27 22:24:14
まずはプログラムの作成と何の関係があるのかを明確にせよ。
512:デフォルトの名無しさん
07/07/27 22:46:31
≫511
DirectX 9を入れたら動きがおかしくなったのでアンインストールしたんです
元々はDirectX 8でゲーム作ってました
DirectX 8では問題なく動いてたから間違いなくDirectX 9のバグだと思うんです
513:デフォルトの名無しさん
07/07/27 22:51:30
間違ったプログラムがたまたま動いていただけなのに、何でもかんでも他人のせい。
514:デフォルトの名無しさん
07/07/28 05:52:59
>DirectX 8では問題なく動いてたから間違いなくDirectX 9のバグだと思うんです
で、DirectX8→9の変更点は確認して、プログラムの修正はやったの?
単に9のSDKで再コンパイルしただけ?
9のバージョンは?
515:デフォルトの名無しさん
07/07/28 06:37:45
ビルドもせずに実行したんじゃね
516:デフォルトの名無しさん
07/07/28 07:08:43
>>515
そんなことが出来る人間がいるのか。尊敬するわ
517:デフォルトの名無しさん
07/07/28 07:48:26
≫513-516
原因がわかりました
知り合いにDirectX 9を入れてやってもらったんですが
ゲームを動かすといきなりWindowsがエラーを出して止まるようです
こちらとまったく同じ状態です
DirectX 9 SDKに入ってるプログラムはふつうに動いたそうです
これもこちらとまったく同じ状態です
ゲームの最初のところでスプライトがいっぱい(2000ぐらい)出るんですけど
これを出さないようにしたら動きました
多分DirectX 8よりDirectX 9のほうがスプライトの上限?が低いはずです
518:デフォルトの名無しさん
07/07/28 10:18:56
ふーん。
519:デフォルトの名無しさん
07/07/28 11:34:03
( ・ω・)・・・
520:デフォルトの名無しさん
07/07/28 14:02:32
フォントを表示させたいのですがうまくいきません。
フォント表示するコードだけ載せときます。初期化もしています。
これが実行時にうまく行きません。コンパイルまではうまくいきます。
void GameOver(){//ゲームオーバー
if(getPassedTime(1)>3000){
RECT rc={0,160,640,260};
g_ptextsprite->Begin(D3DXSPRITE_ALPHABLEND|D3DXSPRITE_SORT_TEXTURE);
g_pxfonts[hgofont]->DrawText(g_ptextsprite,_T("GAME OVER"),-1,&rc,
DT_CENTER|DT_VCENTER,
D3DCOLOR_COLORVALUE(1.0f,0,0,1.0f));
g_ptextsprite->End();
}
if(getPassedTime(1)>15000){
gamemode=GM_MAIN;
//初期表示に戻す
mx=0.0f;
mz=-2.0f;
angle=0;
SetViews();
}}
エラーメッセージです。
main.obj : error LNK2001: 外部シンボル ""struct ID3DXSprite *
g_ptextsprite" (?g_ptextsprite@@3PAUID3DXSprite@@A)" は未解決です。
my3dlib.obj : error LNK2001: 外部シンボル ""struct ID3DXSprite *
g_ptextsprite" (?g_ptextsprite@@3PAUID3DXSprite@@A)" は未解決です。
どなたかアドバイスいただけませんか?
521:デフォルトの名無しさん
07/07/28 16:45:27
そのエラーメッセージはリンク時に出力されるんじゃないの?
なのに「実行時にうまく行かない」・・・???
どっちだ
522:デフォルトの名無しさん
07/07/28 17:12:27
>>521
ですからコンパイルまではうまくいくんですよ。
つまりプログラムにはなんの問題もないと言ってるんです。
実行するとエラーが出るので、
環境依存なのかWinのフォントあたりがバグってる可能性もアリ?かと。
523:デフォルトの名無しさん
07/07/28 17:15:32
コンパイルができる≠プログラムに問題がない
524:デフォルトの名無しさん
07/07/28 17:17:09
コンパイルができてリンクに失敗してるんじゃ
525:デフォルトの名無しさん
07/07/28 17:29:41
>>521
だから、お前が貼った、「・・・は未解決です。」 ってのはリンク時に出るエラーじゃないの?
こんなエラーメッセージが実行時にでるの?
意味が分からん
526:デフォルトの名無しさん
07/07/28 17:30:24
アンカーミスった。>>522ね
527:デフォルトの名無しさん
07/07/28 17:33:03
最近の若者はコンパイルとリンクの別を知らんのかね
どっちも「コンパイル」に含めてるんだろうな
528:デフォルトの名無しさん
07/07/28 17:33:22
>>522
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
529:デフォルトの名無しさん
07/07/28 17:37:27
だから、どう見ても実行時エラーじゃなくてリンク時エラーに見えるんだが
530:デフォルトの名無しさん
07/07/28 18:07:10
横からすみません
>>504で書かれていることと同じような内容をを日本語で解説しているサイトはありますでしょうか
興味があるのに無い英語力で行った和訳がめちゃぐちゃでニントモカントモ
531:デフォルトの名無しさん
07/07/28 18:15:37
>>523-527 >>529
あーすいませんVisual Studioから実行するとリンクが動くの忘れてました。
DirectX SDKを入れなおしても同じエラーが出るので、
そうなるとstruct ID3DXSpriteというやつがバグってるということですか?
こういうバグの報告はマイクロソフトにすればいいのかもわかりません。
もしくはプログラムには問題ないので、リンクをしない方法があれば教えてほしいです。
532:デフォルトの名無しさん
07/07/28 18:18:36
プログラムを書くだけで実行しないのであれば、リンクをする必要はありません。
533:デフォルトの名無しさん
07/07/28 18:19:57
なかなか良いキャラが出てきましたね
534:デフォルトの名無しさん
07/07/28 18:23:53
うむ
ネタならネタだと先に言ってくれりゃいいのによもう
535:デフォルトの名無しさん
07/07/28 18:29:26
>>531
すごいバグを見つけたね!
536:デフォルトの名無しさん
07/07/28 18:36:35
>>520
おまえ無知(無恥)すぎるよ
537:デフォルトの名無しさん
07/07/28 21:27:41
> そうなるとstruct ID3DXSpriteというやつがバグってるということですか
あなたのコードに問題があります。
LNK2001 を MSDN ライブラリで調べるか
ぐぐる先生に聞きましょう。
538:デフォルトの名無しさん
07/07/28 21:31:47
DirectXキチガイ質問スレと分離したらどうだろうか
539:デフォルトの名無しさん
07/07/28 21:33:33
本人が認識していない以上、自己判断は出来ないだろ
540:デフォルトの名無しさん
07/07/28 21:35:28
こっちをキチガイ質問スレにしてみんな移動すればいんじゃね
541:デフォルトの名無しさん
07/07/28 21:39:16
最初に自分を疑えない(再確認出来ない)奴は、どんな種類の仕事でも止めた方が良いよ。
リンクエラーが出るって事は、お前が悪いんだよ。
リンクしているライブラリが足りネーか、必要なヘッダをちゃんと読んでないかだろ。
542:デフォルトの名無しさん
07/07/28 21:39:48
>>530
URLリンク(www.hyuki.com)
543:デフォルトの名無しさん
07/07/28 21:49:06
>>542
結城先生あいかわらずいい仕事してるなあ
こういう視点の文章が日本語で読めるのはとても有難い
544:デフォルトの名無しさん
07/07/28 21:58:28
>>542
アリガタス
調べても辿り着かないようなサイトなので助かります
545:デフォルトの名無しさん
07/07/28 22:00:28
>>531
まずコンパイルとリンクというのがどういう処理なのかを勉強すれ。
その上で、リンカが
「main.objおよびmy3dlib.objという2つのオブジェクト(ソースをコンパイルしたもの)において
g_ptextspriteが見つからない」
と言ってることを理解すれ。
g_ptextspriteはどこで宣言してんだ?
あとは何すればいいかわかるだろう、わからないならもう少し基礎を重視したほうがいい
546:デフォルトの名無しさん
07/07/28 22:18:30
>>543
場所がyukiwikiってだけで訳したのは結城じゃないぞ
547:デフォルトの名無しさん
07/07/28 22:20:54
>>547
How Google Earth [Really] Worksで日本語ググルすれば上位に出てくるのだが。
辿り着かないんじゃなくて、辿り着けない、だろ。
548:デフォルトの名無しさん
07/07/28 22:22:16
自戒乙
549:デフォルトの名無しさん
07/07/28 22:22:44
悔しそう
550:デフォルトの名無しさん
07/07/28 22:28:49
>>547
英語のサイト名+日本語で検索する発想がねーわwww
551:デフォルトの名無しさん
07/07/28 22:32:07
そうか。
まぁ日本語訳あるの知ってて敢えて最初に英語版を貼った俺が悪かったよ。
お前らに読めるはずがなかったんだな。
552:デフォルトの名無しさん
07/07/28 22:37:18
>>550
サイト名じゃなくて記事名。
面白そうな英語の記事は訳されてたり概要が紹介されてたりすることが多々あるので
日本語でググれば結構引っかかる。
553:デフォルトの名無しさん
07/07/28 22:41:42
サンプルの解説ならともかく、アルゴリズムの解説であれば誤訳しちゃうととんでもないことになっちゃうからね。
和訳のミスを理解出来るならもうそのアルゴリズムを理解しているんじゃないかと。
もし和訳しているサイトがあれば誤訳は最小限に抑えれるし、間違っててもしてきしやすいよね。
このスレじゃないけど個人的に誤訳したものを持ってくるより、お前の誤訳で打ち込んだソースを持って来いとか言いたい時が多々。
554:デフォルトの名無しさん
07/07/28 22:50:31
>>532-553
あまりDirectXには詳しくないので、DirectXのリンクについてもう少し勉強します。
>g_ptextspriteはどこで宣言してんだ?
これは市村さんに聞かないとわからないです。月曜日まで待って下さい。
555:デフォルトの名無しさん
07/07/28 23:25:39
>>542で小さな画像を用意する(ミップマップ用)とありますが
用意するのは良しとして描画する面の数が膨大になりますよね
この点はDirectXのミップマップの機能に任せて大丈夫なのでしょうか
動きの早いゲームだと常時画像の解放と読込が行われることに?
処理落ちするんじゃないかと思ってたり・・・そこはプログラマの腕次第ですね
556:デフォルトの名無しさん
07/07/28 23:26:46
市村さんかわいそす
557:デフォルトの名無しさん
07/07/29 00:19:49
市村さん: それは派遣クンに聞かないとわからないです。
派遣クン: DirectXがプログラムどおりに動かない原因を調べるのは僕の仕事ではありません。
>>520あたりに戻る
558:名無しさん@そうだ選挙に行こう
07/07/29 05:35:03
HDR勉強中です。
例えば、レンダリングはA16R16G16B16FのFP16で行い、プレゼントするときにX8R8G8B8のバックバッファーに転送するとどういった感じで丸められるんでしょう?
A16R16G16B16Fって-1024.0~1024の範囲だと思うのですが、これがまず0~1024にクリップされて、それから0~255に変換されるのでしょうか?
それとも-1024~0と256~1024がクリップされて0~255に変換されるのでしょうか?
559:名無しさん@そうだ選挙に行こう
07/07/29 11:17:41
やってみろよ
560:名無しさん@そうだ選挙に行こう
07/07/29 17:20:36
入出力が決まっていて内部が個別の実装に委ねられているというのは
それはそういう仕様なんであって
手近にある一個で試してみた結果でOKとは限らないわけです
561:名無しさん@そうだ選挙に行こう
07/07/29 18:33:51
>>555
ミップマップはDirectXのでいいと思う。
水平近くならいいけど、上空から見下ろす時にかなりの箇所を描画しなくてはならないから、
3レベルぐらいのテクスチャを用意したほうがいい。
それよりテクスチャや地形に凹凸を細かくつけたモデルを用意するとなると、
1つのマップに1万種類ぐらい用意しないといけなくなる。
移動可能範囲の設定や砂埃が立ったり水しぶきが出るとかの設定とか。
面倒極まりない作業をどうにかしないとな。全面海とかなら楽なんだが。
562:520
07/07/29 22:36:18
別の方が話題を膨らませていてびっくりしました。
明らかにリンクに失敗しているようです。
とりあえずspriteは無視して作業しようと思います。
文字描写系は全部コメントアウトしましたw
文字もグラフィック系使おうかな、とも。
回答していただいた方ありがとうございました。
563:デフォルトの名無しさん
07/07/30 00:16:41
>>562
g_ptextsprite の実体を作ってないだけじゃないのか
564:デフォルトの名無しさん
07/07/30 05:05:37
>>558
そもそもA16R16G16B16FからX8R8G8B8のバックバッファーへ転送ってサポートされているんだっけ?
565:デフォルトの名無しさん
07/07/30 19:13:23
>>558
レンダリングターゲットとなるテクスチャ(バックバッファ)を作成する際のフィルター指定で
動作が変わったような記憶があるけど、ちょっと動作確認出来ない。
566:稼げるとか騙されて正社員辞めて一般派遣やってるバカ
07/07/31 13:19:35
元々は正社員の特定派遣だったのに取引先にフリーのほうが稼げるとか騙されて
結局、一般派遣やってるバカがいるんだけどw
一般派遣の身分のどこがフリーだってのw
毎日毎日、他人様の会社に出勤する派遣契約書にサインする段階で気づけよ
なんか派遣先といい関係、とか言ってたから思わず吹き出しちゃったよw
最近はマネージャーもやってるとか寝言言ってるし、派遣がまねぇじゃぁ?はあ!?w
そもそも信頼されてるなら直接契約するか正社員にするはずだが、
いつでも切れる派遣会社経由って舐められてんだよ
派遣期間が長くならないうちに早く就職しろ、と忠告すると、ウッキー!って逆ギレw
バカで頑固だから何度言っても理解できない
騙されたとはいえ結局は自分で決めて一般派遣やってる癖に逆ギレしちゃってまぁ
人間として本当に恥ずかしい
567:デフォルトの名無しさん
07/07/31 14:02:40
>>565
そんなん見たこと無いなぁ。
568:565
07/07/31 19:35:08
>>567
ごめん。テクスチャロード時の原色フィルタの事と記憶がごっちゃになってました。
レンダリング時のはわかんないっす。
569:デフォルトの名無しさん
07/07/31 21:49:07
>>566
派遣もマネージャーやるぞ(マジです)
570:デフォルトの名無しさん
07/07/31 22:59:31
予算にタッチできない派遣が一体何をマネージすんの?
571:デフォルトの名無しさん
07/07/31 23:16:27
これからの時代はオレら派遣が生き甲斐や夢をマネージするんだ!
と求人広告に書いてありました。
572:デフォルトの名無しさん
07/07/31 23:18:28
バカか?
言われたことを言われた通りにやるだけの派遣が何を生きがいにしろと?
年収があがることのない派遣が何の夢を持てと?
573:デフォルトの名無しさん
07/08/01 00:23:28
スレと無関係な話に食いつく馬鹿を何とか出来ないのか?
574:デフォルトの名無しさん
07/08/01 03:49:27
>>570
資本主義だし
派遣だってノルマを決められて締め付けられるってことさ
具体的にいうと半請負状態になってて派遣社員の人数を進捗具合によって調節したり
人数的、スキル的にできるかどうか、予算的にやるかどうかを決める役
別に重要でもないし難しくもないけどね
+1してみてよかったらさらに+1、
+1してみて駄目だったら-1
こんな程度のこと
575:デフォルトの名無しさん
07/08/01 05:21:40
荒らしでしょ?定期的に派遣の話して、無関係な雑談を装ってるけど。
576:デフォルトの名無しさん
07/08/01 15:24:17
>>573
NG登録もしらない馬鹿がうようよしてんのはしょうがない
だって初心者スレだし
577:デフォルトの名無しさん
07/08/01 15:29:54
派遣をNGワードに登録完了
578:デフォルトの名無しさん
07/08/01 15:49:50
>>558
A16R16G16B16FからX8R8G8B8への転送だが同じく不思議に思ったんで試してみたら俺のマシンだとそもそもA16R16G16B16Fをサポートしていないみたい。
誰か助けてやってくれ。
579:デフォルトの名無しさん
07/08/01 16:09:21
NGワード登録って現実逃避だよね
ハケン、ジュケン、シュウショク、ニート、、、
彼は突き付けられる現実を全てNGワード登録して現実から逃げて逃げて逃げまくるのであった。
580:デフォルトの名無しさん
07/08/01 19:20:22
一度作成した頂点バッファでもLock(),UnLock()で内容を書き込めると思うのですが、
その頂点フォーマットが、座標、法線、テクスチャだった場合、座標データだけを
書き換える事ってできますか?
お願いします。
581:デフォルトの名無しさん
07/08/01 19:41:50
ロックして座標だけ書き換えればいい。
ただし、
ロックする際に D3DLOCK_DISCARD を指定したときは内部で新しく作成されたバッファが
返される可能性があるので、座標だけでなく全てのデータを書き込まないといけない。
ただし、
D3DLOCK_DISCARD を指定しないとパフォーマンスが大幅に落ちる可能性があるので、
頂点データを動的に変更する場合は D3DLOCK_DISCARD を指定して
全データを上書きするのが普通。
582:デフォルトの名無しさん
07/08/01 19:46:40
>>581
なるほど。詳しい説明ありがとうございます。
参考にされていただきます。
583:デフォルトの名無しさん
07/08/02 16:11:21
うーん、訳分からん助けてくれ。
写真をテクスチャーとして貼り付けるようなソフトなんだが、ピクセルシェーダーで加工するとなんかかなりおかしい。
で、調べてみたらガンマがリニアとsRGBを考慮しないといけないって事が分かったんで、処理はリニアにすることにした。
で、PresentするときにLINEAR_CONTENTってフラグを立てるとsRGBにガンマ変換してくれるんでやったーって感じと思ったら、
これってX8R8G8B8しかサポートされていないのか?
しかもフルスクリーンモードだと駄目みたいだけど、どうすれば良いのか。
584:デフォルトの名無しさん
07/08/02 20:03:35
ピクセルシェーダを使わずにソフトウェアで自分の思うように処理すればいい。
はい解決。
585:デフォルトの名無しさん
07/08/02 20:26:22
てゆーか状況説明に「なんかかなりおかしい」とかやめてけれ。
586:デフォルトの名無しさん
07/08/02 22:48:03
>>583
何を言ってるのかさっぱりわからないw
587:デフォルトの名無しさん
07/08/02 22:52:17
このイミフな文章は最近のBBX並だな
588:デフォルトの名無しさん
07/08/02 23:10:46
プログラムもきっと意味不明に違いない
真面目に書いてるとしたら最低の部類だな
いつ、どこで、だれが、なにを、どうした
の定型文に当てはめて文章作るところから叩き直さなきゃ確実に駄目だな
589:デフォルトの名無しさん
07/08/02 23:39:26
>>583
つURLリンク(msdn.microsoft.com)
D3DPRESENT_LINEAR_CONTENTはX8R8G8B8専用とウィンドウモード、ドライバサポートがあるときのみ
動作する簡易機能。
どのモードでも動作させるなら、ここに書いてるようにごたごたと気にしながら処理する必要がある
最終的に色書き込むときに、シェーダでsRGB変換してもいいんでないかな
というかこの質問、あまり初心者じゃないぞw
>>585
その行の説明がどうだろうと、質問の内容にはあまり関係はない。動機の説明だし
590:デフォルトの名無しさん
07/08/03 00:15:16
質問です。
描画時の拡大縮小の際、D3DTEXF_LINEARを指定しているのですが、意図とはちょっとだけ違った描画になってしまってコマっています。
D3DTEXF_LINEARは、4ピクセルを参照して補完するというのは知っています。
そのせいかキャラクターの淵が思っているのとは少し違うようになってしまいます。
□□□□□□
□□■■□□
□■■■■□
□■■■■□
□□■■□□
□□□□□□
□はRGBAが(255, 0, 255, 0)なピンクの透明ピクセル
■はRGBAが(0, 0, 0, 255)な黒い不透明ピクセル
とします。
これを、拡大や縮小すると、黒丸のふちにピンクが混じって現れてしまうのです。
4ピクセルを参照して補完するわけですから分からないでもないのですが、ピンクはα値が0。
見えて欲しくない色なわけです。
D3DTEXF_POINTやD3DTEXF_NONEにすればピンクはまったく参照されなくなる(単純に透過される)のですが、補完自体は欲しいところ。
これを解決(D3DTEXF_LINEARをかけつつ、透明色は完全に無視させる)することはできますでしょうか?
591:デフォルトの名無しさん
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
されてねぇんかな?