OpenGLプログラミングメモ内検索 / 「ファイル保存のコモンダイアログ」で検索した結果
-
ファイル保存のコモンダイアログ
名前を付けて保存のダイアログを表示します。 ちなみに、ファイル保存の処理をプログラムしないと実際には保存されません。 あしからず。。。 resource.h #define IDR_MENU1 100 #define ID_EXIT 101 #define ID_TEST 102 #define ID_A 103 #define ID_B 104 #define ID_Menu 105 #define ID_Whats 106 #define ID_Help 107 #define ID_STATUS 108 #define ID_OPEN 109 #define ID_SAVE 110 menu.rc #include resource.h IDR_MENU1 MENU BEGIN POPUP File ...
-
ファイルを開くコモンダイアログ
オープンファイルダイアログです。 resource.h #define IDR_MENU1 100 #define ID_EXIT 101 #define ID_TEST 102 #define ID_A 103 #define ID_B 104 #define ID_Menu 105 #define ID_Whats 106 #define ID_Help 107 #define ID_STATUS 108 #define ID_OPEN 109 #define ID_SAVE 110 menu.rc #include resource.h IDR_MENU1 MENU BEGIN POPUP File BEGIN MENUITEM 開く , ID_OPEN MENUITEM 名...
-
メニュー
...ログ(64ビット) ファイル保存のコモンダイアログ(64ビット) フォント選択ダイアログ(64ビット) モーダルダイアログを表示する(64ビット) ポップアップメニューを表示する(64ビット) タブコントロールを表示する(64ビット) ▲▲▲▲▲ ▼ GUI編 Win32API メニューを表示する ステータスバーを表示する メッセージボックスを表示する ボタンを表示する ファイルを開くコモンダイアログ ファイル保存のコモンダイアログ フォント選択ダイアログ モーダルダイアログを表示する ポップアップメニューを表示する タブコントロールを表示する スタティックテキストを表示する ラジオボタンを表示する チェックボックスを表示する グループボックスを表示する エディットボックスを表示する リストボックスを表示する コンボボックスを表示する スクロールバーを表示する アップ...
-
C++/CLI:ファイルダイアログ
基本プロジェクトにオープンファイルダイアログを配置します。 フォーム上には何も表示されず、フォームデザイナの下の方に オープンファイルダイアログコントロールが表示されます。 オープンファイルダイアログを起動するには何かアクションが必要なので ボタンも配置します。 ボタンの TEXT を「ファイルを開く」にします。 ボタンをダブルクリックして以下のコードを追加します。 //ファイルフィルタ openFileDialog1- Filter = 画像ファイル(*.bmp,*.jpg,*.png,*.tif,*.ico)|*.bmp;*.jpg;*.png;*.tif;*.ico ; openFileDialog1- ShowDialog(); //取得したファイル名 String^ FileName = openFileDialo...
-
フォント選択ダイアログ
フォント選択ダイアログです。 resource.h #define IDR_MENU1 100 #define ID_EXIT 101 #define ID_FONT 102 #define ID_A 103 #define ID_B 104 #define ID_Menu 105 #define ID_Whats 106 #define ID_Help 107 #define ID_STATUS 108 menu.rc #include resource.h IDR_MENU1 MENU BEGIN POPUP File BEGIN MENUITEM Exit , ID_EXIT END POPUP Font BEGIN M...
-
モーダルダイアログを表示する
ダイアログが出ている間、ウインドウを操作できなくなるダイアログを モーダルダイアログと言います。 今回はこれを表示してみます。 resource.h #define IDR_MENU1 100 #define ID_EXIT 101 #define ID_Dialog 102 #define ID_A 103 #define ID_B 104 #define ID_Menu 105 #define ID_Whats 106 #define ID_Help 107 #define ID_STATUS 108 #define ID_TEXT 109 menu.rc #include windows.h #include resource.h IDR_MENU1 MENU BEGIN POPUP File BEGIN ...
-
C++/CLI:モーダルダイアログ
基本プロジェクトを立ち上げます。 モーダルダイアログというコントロールは無いので モーダルダイアログを自作します。 プロジェクトの新しい項目の追加を選択します。 UI の Windowsフォームを選択し、名前を Dialog.h にして 追加ボタンを押します。 プロパティの MaximizeBox と MinimizeBox と ShowInTaskbar を False にします。 プロパティの StartPosition を CenterParent にして FormBorderStyle を FixedDialog にします。 MyForm に Button を配置します。 配置されたボタンをダブルクリックして以下のコードを追加します。 Form^ Dialog = gcnew Form(); Dialog- ShowDialog(); //...
-
C++/CLI:モードレスダイアログ
前回のモーダルダイアログのプロジェクトの続きです。 MyForm のボタンをダブルクリックしてコードが表示されたら 以下のようにコードを変えます。 Form^ Dialog = gcnew Form(); Dialog- Owner = this; Dialog- Show(); // モードレスダイアログとして表示 ビルドして実行してみましょう。 モードレスダイアログは、ダイアログ表示中も親ウインドウを操作できます。 MyForm.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #include MyForm.h using namespace Project1; [STAThreadAttribute] int main(){ MyForm ^fo...
-
C++/CLI:カラーダイアログ
基本プロジェクトにカラーダイアログを配置します。 カラーダイアログ起動用にボタンも配置します。 ボタンの TEXT を「色の選択」にします。 ボタンのプロパティの BackColor を ButtonFace にします。 ボタンをダブルクリックして以下のコードを追加します。 colorDialog1- ShowDialog(); this- BackColor = colorDialog1- Color; ビルドして実行してみましょう。 MyForm.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #include MyForm.h using namespace Project1; [STAThreadAttribute] int main(){ M...
-
C++/CLI:フォルダダイアログ
基本プロジェクトにフォルダーブラウザダイアログを追加します。 フォルダーブラウザダイアログ起動用にボタンを配置します。 ボタンの TEXT を「フォルダを参照」にします。 ボタンをダブルクリックして以下のコードを追加します。 folderBrowserDialog1- ShowDialog(); //取得したフォルダ名 String^ FileName = folderBrowserDialog1- SelectedPath; ビルドして実行してみましょう。 MyForm.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #include MyForm.h using namespace Project1; [STAThreadAttribute] ...
-
ボーンデフォーム
表示メニューの正射影を選択して正射影(Ortho)にします。 表示メニューの正面を選択して真正面から見た図にします。 ポリゴンツールを押してモデルの全体を確認します。 ジョイントツールを押します。 この状態でモデルビュー上を左クリックするとジョイントが作成できます。 デフォルトではジョイントの表示が小さいので大きくします。 ファイル シーン設定を選択します。 表示半径のジョイントを8にしてOKボタンを押します。 最初のジョイントをモデル下部に作成し、次のジョイントをモデル中心より 少し下に作成します。 すると一つ目のボーンが出来上がりました。 続けて、モデル上部より少し下にジョイントを作成し、完成です。 完成したら選択ツールを押してジョイントツールを終了します。 オブジェクトパネルのobj1とJoint1をShiftキーを押しながら選択します。 オブジェクトメニューのスムーズスキ...
-
C++/CLI:フォントダイアログ
基本プロジェクトにフォントダイアログを配置します。 ボタンを追加し、TEXT を「フォント」にします。 ラベルを追加し、TEXT を「サンプルテキスト」にします。 ボタンをダブルクリックして以下のコードを追加します。 fontDialog1- ShowDialog(); label1- Font = fontDialog1- Font; ビルドして実行してみましょう。 MyForm.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #include MyForm.h using namespace Project1; [STAThreadAttribute] int main(){ MyForm ^form1 = gcnew MyForm; form1...
-
続ボーンデフォーム
前回の続きです。 まずはマテリアルを設定します。 左側にあるマテリアルパネル上で右クリックします。 新規マテリアルを選択するとマテリアルウインドウが 出てくるので、そのまま閉じます。 オブジェクトパネルの Root obj1 を選択します。 メニューの ポリゴン 選択マテリアルをセット を選択します。 これでマテリアルが設定されました。 それでは早速ボーンアニメーションを作成してみましょう。 左側にあるアニメーションパネル上で右クリックします。 新規アニメーションを選択するとアニメーションウインドウが 出てくるので、そのまま閉じます。 下側の1~29までの数値が書いてある所がキーフレームです。 キーフレームの隣の 1.000 となっている所を 0.000 にしてEnterを押します。 キーフレームの 0 の所を選択します。 オブジェクトパネルの Joint2 を選択します...
-
設定の仕方
Visual Studio 2022 Community のインストール Visual Studio 2022 Community https //visualstudio.microsoft.com/ja/downloads/ こちらから、Visual Studio 2022 Community をインストールしてください。 デフォルトだと開発環境の背景色が『濃色』になっていて見にくいので『淡色』に変更します。 ツール→オプションの環境→全般の配色テーマを『淡色』にします。 これで昔ながらの見やすい開発環境になりました。 Visual Studio 2012 Express for Windows Desktop のインストール Visual Studio 2012 Express for Windows Desktop http //www...
-
階層構造
今回、階層構造を作ってアニメーションするために、色々なソフトを試してみたのですが、http //www.vixar.jp/cyberdelia/ こちらの Cyberdelia というソフトがメタセコイアのファイルとも相性が良く最もシンプルで 操作性も良かったので Cyberdelia を使う事にします。 .X のアニメーションを作成できるソフトは他にもたくさんあるのですが、階層メッシュアニメーションだけを 出力するソフトはおそらく Cyberdelia だけではないでしょうか。詳しく調べていないので他にもあるかも しれませんが。 まず、メタセコイアで↓の図のような戦車を作成します。 戦車は 『本体』 と 『砲台』 と 『砲身』 から出来ていてそれらは のような親子関係を持っています。 それを Cyberdelia で読み込んで階層構造を設定し、アニメーションを作って .X形式で保...
-
MESH VIEW(メッシュビューア)
MESH VIEW (OPENGL プログラミングメモ) ver1.16 ダウンロードはこちら MeshView ver1.16.zip //////////////////////////////////////////////////////////////////////////// MeshView [OPENGL プログラミングメモ] ver1.16 作者 OPENGLプログラミングメモ ホームページ(OPENGLプログラミングメモ) https //w.atwiki.jp/opengl/ ホームページ2(MeshView) http //www.meshview.jp/ ///////////////////////////////////////////////////////////////////////...
-
PhysX:セットアップ
NVIDIA PhsyX についての解説です。 NVIDIA PhsyX は良く間違われますが CUDA とは違います。 CUDA は Compute Unified device Architecture の略で NVIDIA社の GPU に対する GPGPU を目的とした フレームワークまたは統合開発環境の事です。 GPU を動作させるためのプログラミング・モデル、およびプログラミング言語(CUDA-C)とそのコンパイラ、ライブラリを言います。 PhsyX は物理エンジンのSDKです。 NVIDIA PhsyX SDK 5.0.2 (2023/9/24最新) https //github.com/NVIDIA-Omniverse NVIDIA PhysX SDK 4.1 https //github.com/NVIDIAGameWorks 内の、 h...
-
WAVファイルの構成
WAVファイルの中身や扱い方を知っておくと後々役に立つかも知れません。 という訳で早速、中身をバイナリエディタ『Stirling』で見てみます。 具体的なファイル構成がどうなっているかと言うと、 4 byte RIFFヘッダ ( R I F F ) 4 byte これ以降のファイルサイズ 4 byte WAVEヘッダ ( W A V E ) 4 byte fmt チャンク ( f m t ) 4 byte fmt チャンクのバイト数 リニアPCM ならば 16(10 00 00 00) 2 byte フォーマットID リニアPCM ならば 1(01 00) 2 byte チャンネル数 モノラル ならば 1(01 00)ステレオ ならば 2(02 00) 4 byte サンプリングレート 44.1kHz ならば 44100(44 ...
-
C++/CLI:バージョン情報ダイアログ
バージョン情報ダイアログです。 これまでやってきた事を組み合わせれば これくらいは簡単にできますね。 MyForm.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #include version.h #include MyForm.h using namespace Project1; using namespace System; using namespace System Reflection; [assembly AssemblyVersionAttribute( 1.0.1.0 )]; [STAThreadAttribute] int main(){ MyForm ^form1 = gcnew MyForm; form1- ShowDialog(); return...
-
Bullet:セットアップ
こちらのページで Bullet Physics が公開されています。 Bullet Physics https //pybullet.org/wordpress/ (2023/9/24 現在の最新版のバージョンは 3.25 です。) Download の所をクリックすると GitHub の中の紹介ページに飛ぶので1階層戻ります。 Bullet Physics SDK の bullet3 の GitHub のリンクを右クリックして、リンクのアドレスをコピーします。 そしていつものように Visual Studio 2022 を起動して起動ウィザードのリポジトリのクローンを選択します。 リポジトリの場所に先ほどの GitHub のリンクのアドレスを貼り付けてクローンボタンを押します。 ソリューションエクスプローラーのフォルダービューをダブルクリッ...
-
C++/CLI:リッチテキストボックス
基本プロジェクトにリッチテキストボックスを配置します。 適当にサイズを大きくします。 プロパティの Font の Size を「24」にします。 ビルドして実行してみましょう。 フォントダイアログとかカラーダイアログと併用すれば それなりの事ができます。 MyForm.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #include MyForm.h using namespace Project1; [STAThreadAttribute] int main(){ MyForm ^form1 = gcnew MyForm; form1- ShowDialog(); return 0; } MyForm.h #pragma once namespace Proje...
-
Visual Studio 2022 DE Visual C++ 2015
Visual Studio 2022 DE Visual C++ 2015 とは? かつて、Visual Studio 2015 をインストールしようとしてできなかった人が結構居るのではないでしょうか? 何故かインストールに失敗してできなかった人が結構居ると思います。(当サイト管理人もその一人です。。。) Ж できました。。。 Visual Studio 2017 や Visual Studio 2019 、果ては Visual Studio 2022 まであるのに今更何故 2015 なのか? と、思う方は要ると思います。 結論から言うと PhysX の最新版 ver 5.0.2 や ver 4.1 をコンパイルするには Visual C++ 2015でないとコンパイルできないからです。 と、いう訳で Visual Studio 2022 から Visual C++...
-
C++/CLI:ピクチャボックス
基本プロジェクトにピクチャーボックスを配置します。 プロパティの DOCK のプルダウンメニューの真ん中にある 部分を選択します。 すると Fill という状態になってピクチャーボックスが ウインドウ全体に広がります。 下の画像を test.jpg として保存してプロジェクトのフォルダに 移動させておきます。 Image プロパティの ...となっている所をクリックすると ファイルダイアログが出てくるので、test.jpg を選択します。 Image プロパティの Size となっている所に画像サイズが 表示されているので、それを参考にウインドウサイズを変更します。 MyForm のタイトルバーを選択して MyForm のプロパティを表示します。 Size の左の+になっている所をクリックして-にします。 Width と Height を画像のサイズにします。 ビ...
-
ポップアップメニューを表示する
右クリックでポップアップメニューを表示します。 resource.h #define IDR_MENU1 100 #define ID_EXIT 101 #define ID_Dialog 102 #define ID_A 103 #define ID_B 104 #define ID_Menu 105 #define ID_Whats 106 #define ID_Help 107 #define ID_STATUS 108 #define ID_TEXT 109 #define ID_1 110 #define ID_2 111 #define ID_3 112 #define ID_popup 113 #define IDM_END 114 menu.rc #include windows.h #include resour...
-
WAVファイルのヘッダを読み込んでみる
取りあえず、.wavファイルのヘッダを読み込んで表示してみます。 #include stdio.h #include string.h #define FileName test.wav #pragma pack(push,1) struct WaveFileHeader{ char Riff[4]; // RIFFヘッダ unsigned int FileSize; // ファイルサイズ - 8 char Wave[4]; // WAVEヘッダ }; struct tagChank{ unsigned char Fmt[4]; // fmt チャンク unsigned int FmtSize; // fmt ...
-
音声ファイル再生(.wav,.mid等)
DirectShowを使って音声ファイルを再生してみます。 DirectShowはフィルタ(コーデック)をインストールするとかなりの ファイル形式を再生する事ができます。 .ogg もフィルタをインストールしたら再生できました。 #pragma comment (lib, strmiids.lib ) #include windows.h #include dshow.h #define FileName TEXT( test.mid ) IGraphBuilder *pGB; IMediaControl *pMC; void Init() { //COMを初期化 CoInitialize(NULL); //FilterGraphを生成 CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC, IID_IGrap...
-
日時指定コントロールを表示する
日時指定コントロールです。 resource.h #define IDR_MENU1 100 #define IDM_END 101 #define IDM_INPUT 102 #define ID_STATUS 103 menu.rc #include windows.h #include resource.h IDR_MENU1 MENU DISCARDABLE BEGIN POPUP ファイル BEGIN MENUITEM 終了 , IDM_END END MENUITEM 入力 , IDM_INPUT END DLG1 DIALOG DISCARDABLE 0, 0, 170, 50 STYLE DS_MODALFRAME | WS_P...
-
.Xのスキンメッシュアニメーションファイルを解析
取りあえず、DirectX SDK に付属するビューワーで再生の確認をします。 本来はスタティックメッシュであるはずの bone1.mqo が、 ウネウネ変形しています。 例によって、テンプレート部分は除去しました。 xof 0303txt 0032 # Global definition. AnimTicksPerSecond { 3000; } # Materials definition. Material Material_1 { 0.800000;0.800000;0.800000;1.000000;; 5.000000; 0.300000;0.300000;0.300000;; 0.000000;0.000000;0.000000;; } # Models definition. Frame Model { FrameTransformMatrix { 1...
-
.OBJを読み込んでみる1(解析編)
.OBJ は Wavefront社の Advanced Visualizer というソフト用のファイルフォーマットです。 3Dプログラミング入門関係のHPや書籍では必ずと言って良いほど最初の方に登場します。 何故か?と言うとファイル形式がとてもシンプルでスタティックメッシュ(アニメーションしないメッシュ)を 表現するための全ての情報を含んでいるので入門用には最適だからです。 では、まず、例によってメタセコイアで .OBJ を作成し、中身を見てみる事にします。 メタセコイアを起動して面コマンドの基本図形を選択します。 そして立方体を作成し、それを .OBJ 形式で保存します。 保存する時の注意ですが法線、UVマッピング、マテリアルにチェックし、改行コードを Windows(CR/LF)にしなければなりません。 さらに左右を反転するにもチェックをしないとOpenGLでは逆に表示されます。...
-
C++/CLI:ラベル
基本プロジェクトのフォームデザイナ画面の Label をクリックして フォームの適当な場所でクリックします。 するとラベルが作成されます。 そのラベルのプロパティの Font を選択します。 するとフォントダイアログが出てくるのでフォントサイズを24辺りにします。 プロパティの Text をクリックして ラベルでーす。に変えます。 ビルドして実行してみましょう。 簡単にスタティックテキストが表示できましたね。 もちろん、プログラムで動的にテキストを変更する事も可能です。 今回のプログラムコードは以下の通りです。 MyForm.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #include MyForm.h using namespace Project1...
-
リッチテキストエディットコントロールを表示する
リッチテキストエディットです。 頑張ればWordもどきも作れるかも知れませんね。 resource.h #define IDR_MENU1 100 #define IDM_END 101 #define IDM_FONT 102 #define ID_STATUS 108 menu.rc #include resource.h IDR_MENU1 MENU DISCARDABLE BEGIN POPUP ファイル BEGIN MENUITEM 終了 , IDM_END END POPUP 編集 BEGIN MENUITEM フォントの変更 , IDM_FONT END END main.cpp #pragma comment(l...
-
スキンメッシュアニメーションの作成
スキンメッシュアニメーションのXファイルの中身を見てみると言っても、 まずは作成しなければなりません。 スキンメッシュアニメーションを作成するソフトとして、 ToyStudio や エルフレイナ 等がありますがどちらもシェアウェアです。 また、各種市販の3DCGソフトウェアでも作成できますが、なるべくお金の かからない方法で作成したいです。 そこでカンパウェアの RokDeBone2 を使わせて頂く事にします。 *( RokDeBone2 ver5.5.2.7 以降を使用して下さい。)http //ochakkolab.moo.jp/ この RokDeBone2 は、XBOX360の周辺機器である Kinect を用いると モーションキャプチャーの機能を使う事もできます。すごいですね。 *(2012/3/2追記) …と思ったんですが、RokDeBone2 での読み込みプログラムを作成...
-
C++/CLI:メニュー
基本プロジェクトにメニューを配置します。 「ここへ入力」となっている所をクリックして「ファイル」と 入力します。 今回は適当に、それらしいメニューアイテムを入力してみます。 ビルドして実行してみましょう。 MyForm.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #include MyForm.h using namespace Project1; [STAThreadAttribute] int main(){ MyForm ^form1 = gcnew MyForm; form1- ShowDialog(); return 0; } MyForm.h #pragma once namespace Project1 { using namespace Sys...
-
.Xを読み込んでみる1(解析編)
DirectXの .X形式のファイルを読み込んで表示できると便利です。 現在の3Dアプリでは .X と .FBX が主に広く使われているようです。 では、例によってメタセコイアで .X を出力して中を見てみます。 三角ポリゴンを一枚だけ作って保存したものをメモ帳で開いてみます。 xof 0302txt 0064 template Header { 3D82AB43-62DA-11cf-AB39-0020AF71E433 WORD major; WORD minor; DWORD flags; } template Vector { 3D82AB5E-62DA-11cf-AB39-0020AF71E433 FLOAT x; FLOAT y; FLOAT z; } template Coords2d { F6F23F44-7686-11cf-8F52-004033...
-
固定機能との違い
固定機能とプログラマブルシェーダーでは何がどう違うのでしょう。 固定機能ではフラットシェーディングやグーローシェーディング(スムースシェーディング)、 ワイヤーフレーム表示程度しかありませんでした。 擬似的にトゥーンシェーディングっぽく表示する事もできますが、トゥーンシェーディング とは全然品質が違います。 固定機能というのは、あらかじめ用意された範囲内で簡単手軽に機能を切り替えたり 描画に関する事を全て 『用意された中から選んで設定する』 という物でした。 簡単手軽ですが、グラフィックスで表現できる幅が文字通り固定されています。 そこで、より幅広いグラフィックスを表現するためにプログラマブルシェーダーが登場しました。 ここでは、シェーダー使用の描画とシェーダー未使用の描画をしてみました。 左が固定機能パイプラインで描画、右がシェーダーで色を反転させて描画した物です。 シェーダーファイルの...
-
ODE:セットアップ
Open Dynamics Engine http //www.ode.org/ Open Dynamics Engine の場合は GitHub ではなく Bitbucket ですが、Visual Studio の場合は同じやり方で リポジトリをクローンできます。 (2023/9/24 現在の最新版のバージョンは 0.16.4 です。) Get the source code from BitBucket. となっている所を右クリックして、Bitbucket のリポジトリアドレスをコピーしたら いつものようにVisual Studio 2022 でリポジトリをクローンしてコンパイルするだけです。 GitHub のリポジトリをクローンしてコンパイルする方法は OpenGLプログラミングメモの別ページで新たに作りますのでそちらを参考にして下さい。 ...
-
固定機能編:おわりに…
ここまで、スキンメッシュアニメーションを解説してきましたが、 スキンメッシュアニメーションの実装方法は人それぞれ。 当サイトで解説したやり方だけではない事を頭の片隅に入れておいて 下さい。 3Dモデルのファイル形式に関しても、今回はDirectXのXファイルを 使用しましたが、実際のゲームやアプリ制作での場合は、 3Dモデルのファイル形式そのものを自作するのが1番です。 これで、固定機能編は終了です。
-
ツリービューを表示する
ツリービューを表示します。 階層構造を表現するのに便利です。 resource.h #define IDR_MENU1 100 #define ID_EXIT 101 #define ID_TEST 102 #define ID_A 103 #define ID_B 104 #define ID_Menu 105 #define ID_Whats 106 #define ID_Help 107 #define ID_STATUS 108 #define ID_TREEVIEW 1000 menu.rc #include resource.h IDR_MENU1 MENU BEGIN POPUP File BEGIN MENUITEM Exit , ID_EXIT END POPUP Tes...
-
再生速度の変更
データはそのままでサンプリングレートをいじるだけで 再生スピードを変えます。 #include stdio.h #include stdlib.h #include string.h #define FileName Warp1_ste.wav //適当な曲を探して下さい。 #define Speed 0.5 //再生スピードの倍率 // defines #define STR_RIFF RIFF #define STR_WAVE WAVE #define STR_fmt fmt #define STR_data data #define WAV_MONAURAL 1 #define WAV_STEREO 2 #pragma pack(push,1) struct WaveFileHeader...
-
サンプリングビット変換
サンプリングビット数を16Bitから8Bitに変換します。 音質は少し劣化しますがデータサイズは半分になります。 #include stdio.h #include string.h #define FileName Warp1_ste.wav //適当な曲を探して下さい。 // defines #define STR_RIFF RIFF #define STR_WAVE WAVE #define STR_fmt fmt #define STR_data data #define WAV_MONAURAL 1 #define WAV_STEREO 2 #pragma pack(push,1) struct WaveFileHeader{ char Riff[4]; ...
-
WAVの一部を抜き出し
WAVファイルの一部分を抜き出します。 #include stdio.h #include string.h #define FileName Warp1_ste.wav //適当な曲を探して下さい。 // defines #define STR_RIFF RIFF #define STR_WAVE WAVE #define STR_fmt fmt #define STR_data data #define WAV_MONAURAL 1 #define WAV_STEREO 2 #pragma pack(push,1) struct WaveFileHeader{ char Riff[4]; // RIFFヘッダ unsigned int F...
-
ツールバーを表示する
ツールバーを表示します。 resource.h #define IDR_MENU1 100 #define ID_EXIT 101 #define ID_TEST 102 #define ID_A 103 #define ID_B 104 #define ID_Menu 105 #define ID_Whats 106 #define ID_Help 107 #define ID_STATUS 108 #define IDM_NEW 1010 #define IDM_OPEN 1020 #define IDM_SAVE 1030 #define IDM_COPY 1040 #define IDM_PASTE 1050 #define IDM_DELETE 1060 #define IDM_CUT 1070 menu....
-
左右のチャンネルを操作
ステレオWAVファイルを読み込んで左右の音を消してみます。 http //taira-komori.jpn.org/freesound.html こちらのサイトで効果音を借りてきました。 #include stdio.h #include string.h #define FileName Warp1_ste.wav //適当な曲を探して下さい。 // defines #define STR_RIFF RIFF #define STR_WAVE WAVE #define STR_fmt fmt #define STR_data data #define WAV_MONAURAL 1 #define WAV_STEREO 2 #pragma pack(push,1) struct WaveFile...
-
カラオケ化
完全ではありませんが .wav ファイルからボーカルを除去します。 #include stdio.h #include stdlib.h #include string.h #include algorithm using namespace std; #define INFileName sound.wav #define OUTFileName karaoke.wav #define PAI 3.141592653589793 #define Length 3.00 // defines #define STR_RIFF RIFF #define STR_WAVE WAVE #define STR_fmt fmt #define STR_data data #define WAV_MONAU...
-
モノラル化
ステレオWAVファイルからモノラルのWAVファイルにします。 左チャンネルのみと右チャンネルのみ、左右のチャンネルを mixしたものを一度に作成します。 #include stdio.h #include string.h #define FileName Warp1_ste.wav //適当な曲を探して下さい。 // defines #define STR_RIFF RIFF #define STR_WAVE WAVE #define STR_fmt fmt #define STR_data data #define WAV_MONAURAL 1 #define WAV_STEREO 2 #pragma pack(push,1) struct WaveFileHeader{ char ...
-
ボリュームの変換
ボリュームを変えます。 最大値、最小値を超えた場合は音が割れてしまうので なるべく範囲内のボリュームにした方が良いです。 今回はサイン波の生成で作成した.wavの音を0.5倍したので 振幅が半分になっているのがわかると思います。 #include stdio.h #include stdlib.h #include string.h #include algorithm using namespace std; #define INFileName sin.wav #define OUTFileName amp.wav #define AMP 0.5 //倍率 // defines #define STR_RIFF RIFF #define STR_WAVE WAVE #define STR_fmt fmt #...
-
DDS画像を表示する
DDS画像を読み込みます。 DDS画像とは Direct Draw Surface ファイルの事です。 GLEW を使うと S3TC(DXTC)圧縮 を解凍できるようです。 ↓こちらのサイトに読み込みプログラムがありましたので使わせて頂きます。http //asura.iaigiri.com/OpenGL/gl7.htmlちょこっと改変してGLEWの初期化位置を変えてみました。 ファイル main.cpp sample.dds main.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #pragma comment(lib, glew32.lib ) #include GL/glew.h #include GL/freeglut/freeglut.h #include st...
-
困った時は
当サイトのプログラムが正常に動作しない場合 まずは OpenGL とグラフィックスカードのドライバを最新のものにして下さい。 それでも解決しない場合はコメント板にて連絡を下さい。 コンソール画面を消す #pragma comment(linker, "/SUBSYSTEM WINDOWS /ENTRY mainCRTStartup") 以前のVisual Studio 2012辺りまでは、このプラグマでコンソール画面を消す事ができました。 もちろん今でも可能なのですが、現在のVisual Studio 2022ではデフォルトでプロジェクトの プロパティ、リンカーのシステムのサブシステムの項目が『コンソール (/SUBSYSTEM CONSOLE)』 になってしまっています。 これでは最初からプラグマコメントが入力されているので除去できません。 ...
-
スキンメッシュアニメーションの仕組み
さて、お待ちかねの『固定機能 スキニング編』です。 スキンメッシュアニメーションはプログラマーにとって一つの壁に なっていると思います。 まず、いきなり DirectX SDK のサンプルとかを見ても、 ( ゚д゚)・・・ ( ゚д゚)ポカーン となる事受けあいです。 当サイトでは少しずつ、その仕組みを解説し、攻略していこうと思います。 では次回、スキンメッシュのアニメーションXファイルを作成して、 その中身を見て見ましょう。
-
ボーン(骨)
ToyStudio Advance でボーンを入れる前に用語の解説です。 ボーンの表現は3DCGソフトによって若干違いがありますが、 だいたい似通っています。 まず、ジョイント(関節)があり、2つのジョイントに挟まれているのが ボーン(骨)です。 ボーンは四角錐で表現されます。 四角錐の先側、細い方が子側を表し、底側の太い方が親側を表しています。 それでは ToyStudio Advance を起動しましょう。 ファイル 開く を選択します。 先程作った bone1.mqo を読み込みます。 3Dウインドウの操作はメタセコイアと同じ感覚でできます。 右ドラッグで視点回転、マウスホイールで視点の拡大縮小です。 表示メニューから正射影(Ortho)とパースペクティブ表示や 正面表示、側面表示、上面表示などを切り替える事ができます。 では次回、ボーンを作成してみます。 ...
-
@wiki全体から「ファイル保存のコモンダイアログ」で調べる
更新順にページ一覧表示
|
作成順にページ一覧表示
|
ページ名順にページ一覧表示
|
wiki内検索