DirectX9を使った球の動かすデモの作成方法
- DirectX初心者の方向けに、球を表示させてフルスクリーンで移動させるデモの作成方法を紹介します。
- この記事では、DirectX9とC++を使用して球を描画し、フルスクリーンモードで右から左に移動させる方法について詳しく説明します。
- また、ハードウェアで処理できるようにするためのプログラムも紹介します。Visual Studio .NET 2005とDirectX SDK - October 2006が必要です。
- ベストアンサー
DirectX9を使って球を動かすデモの作成
当方DirectX初心者で、全く無学です。 先日DirectXに関する本を何冊か購入しまして、一読してみたのですが、全 く理解できませんでした…。 とりあえずDirectX9のシェーダー(?)で球を表示し、それをフルスクリー ンモードで画面の右から左に移動させるデモを作成したいのですが、プログ ラム(C++でお願いします)が全くわかりません。 浅薄な質問で申し訳ございませんが、よろしくお願い申し上げます。 なお、その際DirectX9対応のビデオカードがある場合は、ハードウェアで処理できるようにするプログラムを書いていただけると幸いです。 環境 Visual Studio .NET 2005 DirectX SDK - October 2006
- DC1394
- お礼率83% (51/61)
- C・C++・C#
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
「シェーダー」については今の時点では関係ないと思ってください。 Samples\C++\Direct3D\Tutorialsの中に Tut01_CreateDevice というのがあるのでまずそれを理解してください。 あと基本的なWindowsプログラミングの知識は大丈夫でしょうか? もしわからないのであれば先にそちらを勉強する必要があります。 http://www.kumei.ne.jp/c_lang/index_sdk.html
関連するQ&A
- VS2012でDirectXを取り入れたい
こんばんは Visual Studio 2012 でDirectX SDKを取り入れたいのですが プロジェクト毎に設定していたら面倒くさくてかなわないです。 そこでプロジェクト作成毎に再設定しないような設定はどうすれば できるでしょうか? サイトを見てみてもあまりなのですごく困っています。
- ベストアンサー
- C・C++・C#
- DirectXでの影の適用方法
現在、アニメーションがついているスキンメッシュの影を、シャドウボリューム法で表現しようと試みているのですが、どうしても影を表示させることができません。 この問題の解決方法を知っておられる方がいましたらよろしくお願いいたします。 「DirectX逆引き大全500の極意」の112と218を組み合わせて実装を試みています。 環境は Visual Studio2003 Microsoft DirectX SDK (November 2007)
- 締切済み
- C・C++・C#
- Visual Studio 2005(VB.net)でWEBカメラの映
Visual Studio 2005(VB.net)でWEBカメラの映像を表示するサンプルを作成しようと思っています。 ネットで調べるとDirectX9 SDKとか、Windows SDKとかをダウンロードしてインストールすると書いてありましたがどれをダウンロードしてインストールすればよいのかよくわかりませんでしたので投稿しました。 ダウンロード先のURLなどを教えていただけませんでしょうか。 申し訳ありませんが宜しくお願いします。 では、失礼します。
- ベストアンサー
- Visual Basic
- DirectInputオブジェクト
最近DirectXプログラミングをやり始めた者です。 DirectInputオブジェクトを作成しようと次のようなプログラムを書いたのですがうまく作成できません。 LPDIRECTINPUT8 g_pDI; DirectInput8Create(GetModuleHandle(NULL), DIRECTINPUT_VERSION, IID_IDirectInput8, (void**)&g_pDI, NULL)); 開発環境は WinXP Pro Visual Studio 2005 Pro DirectX SDK (April 2007) です。
- 締切済み
- C・C++・C#
- Directshowを使いたいのですが…
Directshowを使う為に、 Microsoft DirectX SDK (March2008)とDirectshowが入っている Extrasを共にHドライブに入れてVisual studio2005 visualC++でビルドしたのですが<dshow.h>インクルードが開けませんでした。 <dshow.h>は、Directshowのヘッダファイルを指しているものです。 必要なものは入れたはずなのですが…。 別なものでも入れる必要があるのでしょうか? それとも入れる場所は決まっているのでしょうか? 本によると、フォルダで指定先は決まっていなかったので後者は考えにくいです。 お願い致します。
- ベストアンサー
- C・C++・C#
- mayaからXファイルをExportする方法について
mayaからうまくXファイルをエクスポートする方法が分かりません。 Xファイル自体は出せるのですが、マテリアルにトランスペアレンシー がかかってなかったり、テクスチャの名前の記録の仕方が分からないです。 環境 Microsoft DirectX SDK (February 2006) Maya6.5 Complete Microsoft Visual Studio 8 mayaツールバーのWindow>Settings/Preferences>Plug-in Manager ので下のほうにあるSDKのチェックボックスをオンにし、 File>Export Selectionで出てくるオプション設定を どういう風に設定すればテクスチャ情報をもたせてエクスポート できるのでしょうか。 どなたかご教示お願いします。
- ベストアンサー
- グラフィックソフト
- 「マクロが再定義されました」と「C1083: include ファイルを開けません。」のエラー
少しここで質問してもいいのか不安ですが、助言お願いします。プログラミングについてはまったくの初心者です。(C言語見だして十日程度) 環境はXP, Microsoft Visual C++08, DirectX SDK(November 2008)です。 "0からのゲームプログラミング"と言うサイトに沿って勉強してるのですが、 上記サイト:http://www.plustarnet.com/aspil/Programming/ 上記サイトコンテンツの、2D編の"スケルトンプログラム"の項目でスケルトンプログラムをダウンロードし、記事の通りに作成したのですが、次のようなエラーがでます。 c:\documents and settings\USER\my documents\visual studio 2008\projects\samplestg\skeleton\win32\header\stdafx.h(27) : warning C4005: 'UNICODE' : マクロが再定義されました。コマンド ラインの引数 : 'UNICODE' の前の定義を確認してください c:\documents and settings\USER\my documents\visual studio 2008\projects\samplestg\skeleton\header\music.h(18) : fatal error C1083: include ファイルを開けません。'dmusici.h': No such file or directory エラー 4、警告 4 ソースファイルにある4つの.cppそれぞれで出ます。 (1).定義云々と言われる方は(こちらは警告) //#define UNICODE // UNICODE を使用 #ifdef UNICODE #define _UNICODE ←ここ #endif ここです。MSDNのヘルプを見ると、削除または#undefを使え、だったので、#ifdefと#defineの間に"#undef _UNICODE"を追加した所通りました。(削除でも通りました) ただ、これでその後プログラムしていくのに変えて大丈夫でしょうか? (2).includeエラーの方は、(こちらがエラー) #include <dmusici.h> となってるのですが、"dmusici.h"と言うのは"windows.h"などと一緒(ライブラリ?SDK?依存)の物でしょうか? C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include C:\Program Files\Microsoft DirectX SDK (November 2008)\Include とVC++08にセットアップ(?)してますが、どちらにも"dmusici.h"はありませんでした。これはこちらのSDKの問題でしょうか? (1)は、一応解決済みで、警告はでないのですが、もし他にいい方法があれば教えてほしいです。 (2)は、自分的にはDirectX SDKあたりだと思うのですが、良く分かってません… そもそも上記サイトでの解説が04年時の物で、"Visual C++ 6.0"と"DirectX 9.0 SDK Update (Summer 2003)"でのプログラムと解説なので、今のDirectX SDK (November 2008)で動作出来ない(このエラーが解決してもその後そぐわなくなる)ものなのでしょうか?そのあたりも教えていただきたいです。 かなり長文になってしまいました^^;。失礼しました。
- ベストアンサー
- C・C++・C#
- Windows7とDirectX9.0cについて
こんにちは。 現在DirectX9.0cでプログラムを書いているものです。 質問させてください。 私は普段は一人暮らしで、デスクトップで開発しています。 しかし今は年末ということもあり、帰省していてノートパソコンで開発しています。 デスクトップPCで開発していたアプリケーションをノートパソコンで実行してみたところ、実行速度がひどく落ちてしまって理由がわからず困っています。 デスクトップでは60しっかり出るのに対し、ノートパソコンで実行するとFPSは1(程度)です。 環境や設定などは以下のとおりです。 ・DirectXのデバイス生成時 D3DPRESENT_PARAMETERS d3dpp={}; d3dpp.BackBufferWidth = 1024; d3dpp.BackBufferHeight = 768; d3dpp.Windowed = true; d3dpp.EnableAutoDepthStencil = true; d3dpp.BackBufferFormat = D3DFMT_A8R8G8B8; d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8; d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; d3dpp.BackBufferCount = 1; d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_ONE; gpd3d = Direct3DCreate9( D3D_SDK_VERSION ); gpd3d->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_REF, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &d3dpp, &gd3ddevice );. ・やってること ビルボードにテクスチャを貼って表示と4枚 CreateVertexBufferなどは使用せずSetFVFとDrawPrimitiveUPで描画。 D3DDEVTYPE_REFの部分をD3DDEVTYPE_HALにしてもデスクトップ、ノートパソコンともにエラーも出ずデバイスは生成できるのですが、ノートパソコン側でD3DDEVTYPE_HALで実行すると何も表示されないので仕方なくD3DDEVTYPE_REFで実行しています。 開発環境 VisualStudio2008 academic edition Microsoft DirectX SDK (June 2010) スペック /* ・デスクトップPC Core i7 920 2.66GHz Windows7 64bit Ultimate Memory 12GB Geforce 9800GTX */ /* ・ノートパソコン Core i7 Q720 1.60GHz Windows7 64bit Ultimate Memory 4GB Geforce GT 240M */ このスペックでFPSがまったくでないので何が問題かさっぱりです。 DirectXのControlPanelでDebugモードにして出力を見ましたが特に問題は見つけられませんでした。 ほかにもリビルドやReleaseモードでコンパイルなども試してみたのですが症状は変わらずです。 どのような問題があってノーとパソコンのWindows7 64bit上でのDirectX9.0cの実行速度が上がらないことが考えられますでしょうか? /* 現在の状態 ・シェーダー(HLSL)などは使用していません。 ・View行列とProjection行列とWorld行列をセットして座標変換して描画しています。 ・スレッドは立ち上げていません。 ・メッセージループは以下のような形です MSG msg={0}; while( msg.message != WM_QUIT ) { if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) ) { TranslateMessage( &msg ); DispatchMessage( &msg ); } else { /* アップデート処理や描画処理など */ } } */ わかりづらいかと思いますが、よろしくお願いします。
- ベストアンサー
- C・C++・C#
- リリース実行やExe実行で動作が異なる
質問です。 Microsoft Visual Studio 2008 Professional Edition - JPN Microsoft DirectX SDK (August 2007) 上記の環境で開発を行っているのですが、 Debug実行、Release実行、Exe実行で動作ができなくなることが あるのですが、原因はなんなんでしょうか? ご教授御願い致します。 特にコンパイル環境の設定を変更したわけではなく、 リリース環境も"最大限に最適化"のみとなっています。 フォルダパス等も間違っておらず、DirectXの描画が不正となります。 基本的にDebug実行では、問題なく、リリース環境とExe実行に問題が発生します。 原因は、環境構築の違いからくるものだと思うのですが、 解決するには、どうすればよいのでしょうか? また、他の問題があるのでしょうか? 宜しく御願い致します。
- ベストアンサー
- C・C++・C#
- DirectXでのゲーム作り error C2065: 'MsgProc'の解決法
DirectXについて学びたくなり「15歳から始めるDirectX9 3Dゲームプログラミング」という本を使って勉強しています。 しかしウインドウを作り×ボタンを押したら終了というプログラムの所でエラーがでています。 どうかエラーの原因を教えてください。 #include<windows.h> #include<tchar.h> int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPInst,LPSTR lpCmd, int nCmd){ WNDCLASSEX wc = {sizeof (WNDCLASSEX),CS_CLASSDC,MsgProc,0L,0L,hInst,NULL,NULL,NULL,NULL,_T("My Window"),NULL}; RegisterClassEx(&wc); HWND hWnd = CreateWindow(_T("BUTTON"),_T("ウインド名"),WS_OVERLAPPEDWINDOW,100,100,300,300,NULL,NULL,hInst,NULL); ShowWindow(hWnd,SW_SHOWDEFAULT); MSG msg; ZeroMemory(&msg,sizeof(msg)); while(msg.message!=WM_QUIT){ if(PeekMessage(&msg,NULL,0L,0L,PM_REMOVE)){ TranslateMessage(&msg); DispatchMessage(&msg); } } UnregisterClass(_T("My Window"),hInst); return 0; } エラー内容は : error C2065: 'MsgProc' : 定義されていない識別子です。 です。 環境は Microsoft Visual Studio 8 Microsoft DirectX SDK (March 2008) で、環境設定はきちんとできていると思います。 どうかお願いします。
- ベストアンサー
- C・C++・C#
お礼
ご回答ありがとうございました^^ おっしゃいました「Tut01_CreateDevice」ですが、いきなり難しいです…(汗 また、Windows APIの初歩は理解しています。 なんとか球を表示するまでがんばってみます。ありがとうございました。