OpenGLプログラミングメモ
http://w.atwiki.jp/opengl/
OpenGLプログラミングメモ
ja
2024-03-05T20:25:19+09:00
1709637919
-
MESH VIEW(メッシュビューア)
https://w.atwiki.jp/opengl/pages/332.html
*MESH VIEW (OPENGL プログラミングメモ) ver1.15
>#image(https://img.atwiki.jp/opengl/attach/332/954/meshview115.png)
>
>ダウンロードはこちら
>&link(MeshView ver1.15.zip){https://terabox.com/s/1fsAGzuQyIu2OcufP0fy-9w}
>
>&html(////////////////////////////////////////////////////////////////////////////)
>
>MeshView [OPENGL プログラミングメモ] ver1.15
>
>作者:OPENGLプログラミングメモ
>
>ホームページ(OPENGLプログラミングメモ)
>https://w.atwiki.jp/opengl/
>
>&html(////////////////////////////////////////////////////////////////////////////)
>
>◇このソフトは?
>OpenGLを使用して3Dモデルを表示するソフトです。
>
>◇出来る事(2024年3月5日現在)
>OBJモデルの表示
>MQOモデルの表示(三角ポリゴンのみ、法線が少し変www)
>Xモデルの表示(スタティックメッシュ)
>Xモデルの階層メッシュアニメーションの表示
>Xモデルのスキンメッシュアニメーションの表示(box.xのみ正常表示)
>BVH描画
>マウスドラッグによる任意軸回転
>
>◇バージョン履歴
>ver1.15(2024年3月5日)
>上記ホームページアドレスが、https://w.atwiki.jp/opengl/pages/
>になっていたのを https://w.atwiki.jp/opengl/ に直した。
>解像度をSVGAだけ選択できるようにした。
>(解像度を変えるとデバッグモード表示の文字やテクスチャの位置が
>ズレるため、とりあえずの対処)
>
>ver1.14(2024年2月5日)
>とりあえず、Language(言語)は日本語(Japanese)だけ選択できるように
>メニューの一部項目にチェックを付けた
>デバッグモード表示をメニューでON/OFFできるようにした
>
>ver1.13(2024年2月4日)
>メニューにLanguage(言語)を追加
>デバッグモードの背景グラフィックをBackBufferクラスで代替
>
>ver1.12(2024年1月14日)
>メニューのセパレーターを追加
>メニューにデバッグモード表示の追加
>BackBufferクラスの追加
>
>ver1.11(2024年1月7日)
>GLWrapperに2Dポリゴン描画機能を追加
>著作権表記にAll Rights Reserved.を付け忘れていたので追記
>
>ver1.10(2023年12月14日)
>BVH(Bounding Volume Hierarchy)描画機能を追加
>
>ver1.09(2023年12月12日)
>GLWrapper.h(新規作り直し)を追加
>
>ver1.08(2023年12月3日)
>スキンメッシュアニメーションのプログラムを改善
>
>ver1.07(2023年12月1日)
>.xファイル(スキンメッシュアニメーション)の読み込みを追加(box.xのみ正常表示)
>
>ver1.06(2023年11月30日)
>.xファイルのモデル表示時に文字が消えていたのを修正
>.xファイル(階層メッシュアニメーション)の読み込みを追加
>
>ver1.05(2023年11月26日)
>バージョン情報ダイアログの整備
>MQOファイル読み込み(三角ポリゴンのみ、法線が少し変www)
>簡易チェックサム
>
>ver1.03(2023年10月30日)
>.xファイル(Direct3D Retained Mode)読み込み(スタティックメッシュ)
>
>ver1.02(2023年10月23日)
>アイコンを設定
>
>ver1.01(2023年10月22日)
>MQOファイル読み込み(法線なし)
>
>ver1.0 (2023年10月18日)
>とりあえず、.objモデルだけ読み込みと表示
>ウインドウ関連を整備
>
>◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
>動作環境
>Windows11
>Windows10
>上記OSで動作確認をしました。
>◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
>
>◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
>開発環境
>Visual Studio 2022
>GIMP
>ペイント
>Metasequia
>DotPainterALFAR
>LogoShader
>◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
>
>◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
>著作権
>MeshViewはフリーソフトですが、著作権はOPENGLプログラミングメモにあります。
>OPENGLプログラミングメモは本ソフトウェアの使用から生じるいかなる損害に関して
>一切の責任を負いません。
>◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
>©2023 OPENGLプログラミングメモ All Rights Reserved.
以下は過去記事
*MESH VIEW (OPENGL プログラミングメモ) ver1.14
>#image(https://img.atwiki.jp/opengl/attach/332/952/meshview114_1.png)
>#image(https://img.atwiki.jp/opengl/attach/332/953/meshview114_2.png)
>◇このソフトは?
>OpenGLを使用して3Dモデルを表示するソフトです。
>
>◇出来る事(2024年2月5日現在)
>OBJモデルの表示
>MQOモデルの表示(三角ポリゴンのみ、法線が少し変www)
>Xモデルの表示(スタティックメッシュ)
>Xモデルの階層メッシュアニメーションの表示
>Xモデルのスキンメッシュアニメーションの表示(box.xのみ正常表示)
>BVH描画
>マウスドラッグによる任意軸回転
>
>◇バージョン履歴
>ver1.14(2024年2月5日)
>とりあえず、Language(言語)は日本語(Japanese)だけ選択できるように
>メニューの一部項目にチェックを付けた
>デバッグモード表示をメニューでON/OFFできるようにした
>
>ver1.13(2024年2月4日)
>メニューにLanguage(言語)を追加
>デバッグモードの背景グラフィックをBackBufferクラスで代替
>
>ver1.12(2024年1月14日)
>メニューのセパレーターを追加
>メニューにデバッグモード表示の追加
>BackBufferクラスの追加
>
>ver1.11(2024年1月7日)
>GLWrapperに2Dポリゴン描画機能を追加
>著作権表記にAll Rights Reserved.を付け忘れていたので追記
>
>ver1.10(2023年12月14日)
>BVH(Bounding Volume Hierarchy)描画機能を追加
>
>ver1.09(2023年12月12日)
>GLWrapper.h(新規作り直し)を追加
>
>ver1.08(2023年12月3日)
>スキンメッシュアニメーションのプログラムを改善
>
>ver1.07(2023年12月1日)
>.xファイル(スキンメッシュアニメーション)の読み込みを追加(box.xのみ正常表示)
>
>ver1.06(2023年11月30日)
>.xファイルのモデル表示時に文字が消えていたのを修正
>.xファイル(階層メッシュアニメーション)の読み込みを追加
>
>ver1.05(2023年11月26日)
>バージョン情報ダイアログの整備
>MQOファイル読み込み(三角ポリゴンのみ、法線が少し変www)
>簡易チェックサム
>
>ver1.03(2023年10月30日)
>.xファイル(Direct3D Retained Mode)読み込み(スタティックメッシュ)
>
>ver1.02(2023年10月23日)
>アイコンを設定
>
>ver1.01(2023年10月22日)
>MQOファイル読み込み(法線なし)
>
>ver1.0 (2023年10月18日)
>とりあえず、.objモデルだけ読み込みと表示
>ウインドウ関連を整備
*MESH VIEW (OPENGL プログラミングメモ) ver1.13
>#image(https://img.atwiki.jp/opengl/attach/332/951/meshview113.png)
>◇このソフトは?
>OpenGLを使用して3Dモデルを表示するソフトです。
>
>◇出来る事(2024年2月4日現在)
>OBJモデルの表示
>MQOモデルの表示(三角ポリゴンのみ、法線が少し変www)
>Xモデルの表示(スタティックメッシュ)
>Xモデルの階層メッシュアニメーションの表示
>Xモデルのスキンメッシュアニメーションの表示(box.xのみ正常表示)
>BVH描画
>マウスドラッグによる任意軸回転
>
>◇バージョン履歴
>ver1.13(2024年2月4日)
>メニューにLanguage(言語)を追加
>デバッグモードの背景グラフィックをBackBufferクラスで代替
>
>ver1.12(2024年1月14日)
>メニューのセパレーターを追加
>メニューにデバッグモード表示の追加
>BackBufferクラスの追加
>
>ver1.11(2024年1月7日)
>GLWrapperに2Dポリゴン描画機能を追加
>著作権表記にAll Rights Reserved.を付け忘れていたので追記
>
>ver1.10(2023年12月14日)
>BVH(Bounding Volume Hierarchy)描画機能を追加
>
>ver1.09(2023年12月12日)
>GLWrapper.h(新規作り直し)を追加
>
>ver1.08(2023年12月3日)
>スキンメッシュアニメーションのプログラムを改善
>
>ver1.07(2023年12月1日)
>.xファイル(スキンメッシュアニメーション)の読み込みを追加(box.xのみ正常表示)
>
>ver1.06(2023年11月30日)
>.xファイルのモデル表示時に文字が消えていたのを修正
>.xファイル(階層メッシュアニメーション)の読み込みを追加
>
>ver1.05(2023年11月26日)
>バージョン情報ダイアログの整備
>MQOファイル読み込み(三角ポリゴンのみ、法線が少し変www)
>簡易チェックサム
>
>ver1.03(2023年10月30日)
>.xファイル(Direct3D Retained Mode)読み込み(スタティックメッシュ)
>
>ver1.02(2023年10月23日)
>アイコンを設定
>
>ver1.01(2023年10月22日)
>MQOファイル読み込み(法線なし)
>
>ver1.0 (2023年10月18日)
>とりあえず、.objモデルだけ読み込みと表示
>ウインドウ関連を整備
*MESH VIEW (OPENGL プログラミングメモ) ver1.12
//>#image(https://img.atwiki.jp/opengl/pub/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202024-01-14%20233902.png,title=MeshView ver1.12)
>#image(https://img.atwiki.jp/opengl/attach/332/950/meshview112.png)
>このソフトは?
>OpenGLを使用して3Dモデルを表示するソフトです。
>
>出来る事(2024年1月14日現在)
>OBJモデルの表示
>MQOモデルの表示(三角ポリゴンのみ、法線が少し変www)
>Xモデルの表示(スタティックメッシュ)
>Xモデルの階層メッシュアニメーションの表示
>Xモデルのスキンメッシュアニメーションの表示(box.xのみ正常表示)
>BVH描画
>マウスドラッグによる任意軸回転
>
>バージョン履歴
>ver1.12(2024年1月14日)
>メニューのセパレーターを追加
>メニューにデバッグモード表示の追加
>BackBufferクラスの追加
*MESH VIEW (OPENGL プログラミングメモ) ver1.11
>&image(meshview111.png)
>このソフトは?
>OpenGLを使用して3Dモデルを表示するソフトです。
>
>出来る事(2024年1月7日現在)
>OBJモデルの表示
>MQOモデルの表示(三角ポリゴンのみ、法線が少し変www)
>Xモデルの表示(スタティックメッシュ)
>Xモデルの階層メッシュアニメーションの表示
>Xモデルのスキンメッシュアニメーションの表示(box.xのみ正常表示)
>BVH描画
>マウスドラッグによる任意軸回転
>
>バージョン履歴
>ver1.11(2024年1月7日)
>GLWrapperに2Dポリゴン描画機能を追加
>著作権表記にAll Rights Reserved.を付け忘れていたので追記
*MESH VIEW (OPENGL プログラミングメモ) ver1.10
>#image(https://img.atwiki.jp/opengl/attach/332/948/meshview110.png,title=MeshView1.10)
>このソフトは?
>OpenGLを使用して3Dモデルを表示するソフトです。
>こちらからダウンロードできます。
>&link(MeshView ver1.10.zip){https://terabox.com/s/1erdqeWwjTylmFEpadUV5bQ}
#javascript(){
<a href=”https://terabox.com/s/1erdqeWwjTylmFEpadUV5bQ” onclick=”ga(‘send’, ‘event’, ‘download’, ‘ver1.10’, ‘MeshView ver1.10.zip’);”></a>
}
>出来る事(2023年12月14日現在)
>OBJモデルの表示
>MQOモデルの表示(三角ポリゴンのみ、法線が少し変www)
>Xモデルの表示(スタティックメッシュ)
>Xモデルの階層メッシュアニメーションの表示
>Xモデルのスキンメッシュアニメーションの表示(box.xのみ正常表示)
>BVH描画
>マウスドラッグによる任意軸回転
>
>バージョン履歴
>ver1.10(2023年12月14日)
>BVH(Bounding Volume Hierarchy)描画機能を追加
>
>ver1.09(2023年12月12日)
>GLWrapper.h(新規作り直し)を追加
>
>ver1.08(2023年12月3日)
>スキンメッシュアニメーションのプログラムを改善
>
>ver1.07(2023年12月1日)
>.xファイル(スキンメッシュアニメーション)の読み込みを追加(box.xのみ正常表示)
>
>ver1.06(2023年11月30日)
>.xファイルのモデル表示時に文字が消えていたのを修正
>.xファイル(階層メッシュアニメーション)の読み込みを追加
>
>ver1.05(2023年11月26日)
>バージョン情報ダイアログの整備
>MQOファイル読み込み(三角ポリゴンのみ、法線が少し変www)
>簡易チェックサム
>
>ver1.03(2023年10月30日)
>.xファイル(Direct3D Retained Mode)読み込み(スタティックメッシュ)
>
>ver1.02(2023年10月23日)
>アイコンを設定
>
>ver1.01(2023年10月22日)
>MQOファイル読み込み(法線なし)
>
>ver1.0 (2023年10月18日)
>とりあえず、.objモデルだけ読み込みと表示
>ウインドウ関連を整備
*MESH VIEW (OPENGL プログラミングメモ) ver1.07
>&image(meshview107.png)
>
>このソフトは?
>OpenGLを使用して3Dモデルを表示するソフトです。
>
>出来る事(2023年12月1日現在)
>OBJモデルの表示
>MQOモデルの表示(三角ポリゴンのみ、法線が少し変www)
>Xモデルの表示(スタティックメッシュ)
>Xモデルの階層メッシュアニメーションの表示
>Xモデルのスキンメッシュアニメーションの表示(box.xのみ正常表示)
>マウスドラッグによる任意軸回転
*MESH VIEW (OPENGL プログラミングメモ) ver1.06
>&image(meshview106.png)
>このソフトは何?
>OpenGLを使用して3Dモデルを表示するソフトです。
>
>出来る事(2023年11月30日現在)
>OBJモデルの表示
>MQOモデルの表示(三角ポリゴンのみ、法線が少し変www)
>Xモデルの表示(スタティックメッシュ)
>Xモデルの階層メッシュアニメーションの表示
>マウスドラッグによる任意軸回転
>&image(meshview105.png)
>このソフトは何?
>OpenGLを使用して3Dモデルを表示するソフトです。
>こちらからダウンロードできます。
>&link(MeshView ver1.05.zip){https://terabox.com/s/1i-N-p_2xSy7SDiBp5jOHfQ}
#javascript(){
<a href=”https://terabox.com/s/1i-N-p_2xSy7SDiBp5jOHfQ” onclick=”ga(‘send’, ‘event’, ‘download’, ‘ver1.05’, ‘MeshView ver1.05.zip’);”></a>
}
>出来る事(2023年11月26日現在)
>OBJモデルの表示
>MQOモデルの表示(三角ポリゴンのみ、法線が少し変www)
>Xモデルの表示(スタティックメッシュ)
>マウスドラッグによる任意軸回転
>動作環境
>Windows11
>Windows10
>上記OSで動作確認をしました。
>開発環境
>Visual Studio 2022
>GIMP
>ペイント
>Metasequia
>DotPainterALFAR
>LogoShader
>著作権
>MeshViewはフリーソフトですが、著作権はOPENGLプログラミングメモにあります。
>OPENGLプログラミングメモは本ソフトウェアの使用から生じるいかなる損害に関して
>一切の責任を負いません。
>
>©2023 OPENGLプログラミングメモ All Rights Reserved.
>バージョン履歴
>
>MeshView ver1.05
>2023年11月26日、バージョン情報ダイアログの整備
>MQOファイル読み込み(三角ポリゴンのみ、法線が少し変www)
>簡易チェックサム
>
>MeshView ver1.03
>2023年10月30日、.xファイル(Direct3D Retained Mode)読み込み(スタティックメッシュ)
>
>MeshView ver1.02
>2023年10月23日、アイコンファイル設定
>
>MeshView ver1.01
>2023年10月22日、MQOファイル読み込み(法線なし)
>
>MeshView ver1.0
>2023年10月21日、とりあえず ver1.0 を公開
>&link(MeshView ver1.0.zip){https://terabox.com/s/19uoT3Kae5UnZmgpC_Y7ABA}
#javascript(){
<a href=”https://terabox.com/s/19uoT3Kae5UnZmgpC_Y7ABA” onclick=”ga(‘send’, ‘event’, ‘download’, ‘ver1.0’, ‘MeshView ver1.0.zip’);”></a>
}
>&image(meshview_1.png)
>2023年10月18日現在、鋭意開発中です。。。
>今現在、出来ている所
>1、ウインドウ関連
>2、メニュー
>3、OBJファイル読み込み、表示
>4、マウスドラッグによる任意軸回転
>
>今後の予定
>1、MQOファイル読み込み、表示
>2、FBXファイル読み込み、表示
>3、.xファイル読み込み、表示
2024-03-05T20:25:19+09:00
1709637919
-
メニュー
https://w.atwiki.jp/opengl/pages/2.html
**Menu
>-[[トップページ]]
>-[[コメント板]]
>-[[GL Wrapper 総合サイト>>https://seesaawiki.jp/w/glwrapper/]]
//>-[[GL Wrapper 総合サイト>>http://wiki.livedoor.jp/glwrapper/]]
//>-[[OpenGLプログラミングメモ 2nd>>http://opengl.html.xdomain.jp/]]
//>-[[Blenderチュートリアル>>http://www54.atwiki.jp/blender_tutorial]]
//>-[[DirectX11プログラミングメモ>>http://www43.atwiki.jp/directx11/]]
&bold(){初めに}
>-[[なぜOpenGLを使うのか?]]
>-[[設定の仕方]]
>-[[困った時は]]
>-[[考察]]
>-[[PC用語の独自調査]]
>-[[GitHubの使い方]]
>-[[Visual Studio 2022 DE Visual C++ 2015]]
>-[[Visual Studio 2017 Expressを入手する]]
>-[[MESH VIEW(メッシュビューア)]]
&aname(bottom0){&bold(){チュートリアルリンク}}
>&link_aname(bottom1){▼固定機能編へ}
>&link_aname(bottom2){▼固定機能:スタティックメッシュ編へ}
>&link_aname(bottom3){▼固定機能:階層メッシュアニメーション編へ}
>&link_aname(bottom4){▼固定機能:スキニング編へ}
>&link_aname(bottom5){▼シェーダー:GLSL編へ}
>&link_aname(bottom6){▼シェーダー:画像フィルタ偏へ}
>&link_aname(bottom7){▼3Dライブラリ編:Irrlicht編へ}
>&link_aname(bottom8){▼3Dライブラリ編:Ogre編へ}
>&link_aname(bottom9){▼当たり判定:2D編へ}
>&link_aname(bottom10){▼当たり判定:3D編へ}
>&link_aname(bottom11){▼物理演算:Bullet Physicsへ}
>&link_aname(bottom12){▼物理演算:PhysXへ}
>&link_aname(bottom13){▼物理演算:Open Dynamics Engineへ}
>&link_aname(bottom14){▼GPGPU:CUDAへ}
>&link_aname(bottom15){▼GPGPU:OpenCLへ}
>&link_aname(bottom16){▼GUI編:Win64APIへ}
>&link_aname(bottom17){▼GUI編:Win32APIへ}
>&link_aname(bottom18){▼GUI編:C++/CLIへ}
>&link_aname(bottom19){▼GUI編:ドッキングウインドウ(C++/CLI)へ}
>&link_aname(bottom20){▼アセンブラ編:MASM32へ}
>&link_aname(bottom21){▼サウンド編:WAVファイルへ}
>&link_aname(bottom22){▼サウンド編:MIDIファイルへ}
>&link_aname(bottom23){▼サウンド編:OpenALへ}
>&link_aname(bottom24){▼サウンド編:DirectSoundへ}
>&link_aname(bottom25){▼サウンド編:DirectShowへ}
&bold(){チュートリアル}
&aname(bottom1){&bold(){▼ 固定機能編}}
>+[[空のウインドウを表示する]]
>+[[ウインドウサイズを指定する]]
>+[[フルスクリーンで起動する]]
>+[[フルスクリーンとウインドウモードの切り替え]]
>+[[点を描画する]]
>+[[線を描画する]]
>+[[四角形を描画する]]
>+[[円を描画する]]
>+[[文字列描画]]
>+[[マウスイベント]]
>+[[キーボードの状態を取得]]
>+[[ジョイパッドの状態を取得(Win32API)]]
>+[[ジョイパッドの状態を取得(DirectInput)]]
>+[[ジョイパッドの状態を取得(XInput)]]
>+[[.wavを再生する(win32API)]]
>+[[.wavを再生する(DirectMusic)]]
>+[[.midを再生する(mciコマンド)]]
>+[[.midを再生する(DirectMusic)]]
>+[[タイマーイベント]]
>+[[画像を表示する(GDI+)]]
>+[[PNG画像を表示する(glpng)]]
>+[[PNG画像の一部をストレッチ描画する(LodePNG)]]
>+[[DDS画像を表示する]]
>+[[BMP画像を表示する]]
>+[[JPEG画像を表示する]]
>+[[板ポリゴンを表示する]]
>+[[2Dと3Dの描画を切り替える]]
>+[[3Dシーンの設定と立方体の表示]]
>+[[ズームイン・アウト]]
>+[[球を表示して移動する]]
>+[[トーラスの表示と回転]]
>+[[円錐の表示と拡大縮小]]
>+[[円柱を表示してみる]]
>+[[直方体を表示してみる]]
>+[[指定座標で円運動]]
>+[[フラットシェーディング]]
>+[[ワイヤーフレーム表示]]
>+[[スムースシェーディング]]
>+[[マテリアルの設定]]
>+[[カラーマテリアル]]
>+[[固定機能:テクスチャマッピング]]
>+[[ミップマップ]]
>+[[バイリニアフィルタリング]]
>+[[異方性フィルタリング]]
>+[[視点の回転(クォータニオン)]]
>+[[超簡単に任意軸回転]]
>+[[ビルボード]]
>+[[法線]]
>+[[隠面消去]]
>+[[アルファブレンディング]]
>+[[アルファテスト]]
>+[[固定機能:フォグ]]
>+[[アンチエイリアシング]]
>+[[ステンシルテスト]]
>+[[固定機能:鏡面反射]]
>+[[固定機能:スポットライト]]
>+[[テッセレーション]]
>+[[頂点配列]]
>+[[ディスプレイリスト]]
>+[[VBO]]
>+[[VBO(テクスチャ付)]]
>+[[PBO]]
>+[[FBO]]
>+[[垂直同期ON/OFF]]
>+[[OpenGLのバージョンとGPUの情報を得る]]
>+[[秒間60フレーム]]
>+[[簡易輪郭線描画]]
>+[[固定機能:トゥーンレンダリング]]
>+[[固定機能:グレースケール]]
&link_aname(bottom0){▲▲▲▲▲}
&aname(bottom2){&bold(){▼ 固定機能:スタティックメッシュ編}}
>+[[.MQOを読み込んで表示する(GLMetaseq)]]
>+[[.MQOを自力で読み込んでみる1(解析編)]]
>+[[.MQOを自力で読み込んでみる2(読み込み編)]]
>+[[.MQOを自力で読み込んでみる3(表示編)]]]
>+[[.MQOローダ(ワイヤーフレーム表示編)]]
>+[[.OBJを読み込んでみる1(解析編)]]
>+[[.OBJを読み込んでみる2(読み込み編)]]
>+[[.OBJを読み込んでみる3(表示編)]]
>+[[.Xを読み込んでみる1(解析編)]]
>+[[.Xを読み込んでみる2(解析編2)]]
>+[[.Xを読み込んでみる3(読み込み編)]]
>+[[.Xを読み込んでみる4(表示編)]]
>+[[.FBXを読み込んでみる1(解析編)]]
>+[[.FBXを読み込んでみる2(読み込み編)]]
>+[[.FBXを読み込んでみる3(表示編)]]
&link_aname(bottom0){▲▲▲▲▲}
&aname(bottom3){&bold(){▼ 固定機能:階層メッシュアニメーション編}}
>+[[アニメーションとは]]
>+[[階層構造]]
>+[[.Xの階層メッシュアニメーションの構造]]
>+[[再帰関数]]
>+[[.Xの階層メッシュアニメーションを読み込んでみる1]]
>+[[自己参照構造体と自己参照クラス]]
>+[[2分木構造]]
>+[[.Xの階層メッシュアニメーションを読み込んでみる2]]
>+[[キーフレーム]]
>+[[行列(マトリックス)とは]]
>+[[行列:単位行列]]
>+[[行列:行列の計算方法]]
>+[[行列:行列の適用]]
>+[[行列:平行移動行列]]
>+[[行列:回転行列]]
>+[[行列:拡大縮小行列]]
>+[[行列:零行列]]
>+[[行列:行列の合成]]
>+[[行列:逆行列]]
>+[[行列:転置行列]]
>+[[gluPerspectiveを置き換える]]
>+[[正規化]]
>+[[内積]]
>+[[外積]]
>+[[gluLookAtを置き換える]]
>+[[行列:合成行列から拡大縮小成分を抜き出す]]
>+[[行列:効率の良い合成]]
>+[[クォータニオン]]
>+[[クォータニオンによる任意軸回転]]
>+[[再びキーフレーム]]
>+[[線形補間]]
>+[[.Xの階層メッシュアニメーションを読み込んでみる3]]
>+[[クォータニオンと回転行列の変換]]
>+[[球面線形補間]]
>+[[.Xの階層メッシュアニメーションを読み込んでみる4]]
&link_aname(bottom0){▲▲▲▲▲}
&aname(bottom4){&bold(){▼ 固定機能:スキニング編}}
>+[[スキンメッシュアニメーションの仕組み]]
>+[[スキンメッシュアニメーションの作成]]
>+[[ボーン(骨)]]
>+[[ボーンデフォーム]]
>+[[続ボーンデフォーム]]
>+[[.Xのスキンメッシュアニメーションファイルを解析]]
>+[[スキンメッシュアニメーションの原理1]]
>+[[グローバル座標とローカル座標]]
>+[[バインドポーズ]]
>+[[.Xのスキンメッシュアニメーションを読み込んでみる1]]
>+[[階層ボーンアニメーション]]
>+[[スキンメッシュアニメーションの原理2]]
>+[[同次座標系]]
>+[[幾何変換]]
>+[[同次座標系で計算]]
>+[[ボーンオフセット行列]]
>+[[スキンメッシュアニメーションの原理3]]
>+[[ウェイト]]
>+[[頂点ブレンディング]]
>+[[.Xのスキンメッシュアニメーションを読み込んでみる2]]
>+[[法線の再設定]]
>+[[スキンメッシュアニメーションの原理4]]
>+[[.Xのスキンメッシュアニメーションを読み込んでみる3]]
>+[[ソフトウェアスキニング]]
>+[[固定機能編:おわりに…]]
&link_aname(bottom0){▲▲▲▲▲}
&bold(){プログラマブルシェーダー編}
&aname(bottom5){&bold(){▼ シェーダー:GLSL編}}
>+[[固定機能との違い]]
>+[[頂点シェーダー]]
>+[[フラグメントシェーダー]]
>+[[GLSLとの変数のやり取り]]
>+[[シェーダーを使うにあたって]]
>+[[数学:極限 (その1)]]
>+[[数学:極限 (その2)]]
>+[[数学:Σ(シグマ)計算 (その1)]]
>+[[数学:Σ(シグマ)計算 (その2)]]
>+[[数学:対数(log)]]
>+[[数学:微分法 (その1)]]
>+[[数学:微分法 (その2)]]
>+[[数学:積分法 (その1)]]
>+[[数学:積分法 (その2)]]
>+[[光とは]]
>+[[環境光]]
>+[[ランバート拡散照明]]
>+[[拡散照明]]
>+[[フォン鏡面反射]]
>+[[鏡面反射]]
>+[[クック・トランス金属反射]]
>+[[金属反射]]
>+[[カラーシフト]]
>+[[簡易シャドウイング]]
>+[[距離減衰]]
>+[[スポットライト]]
>+[[フォグ]]
>+[[GLSL:テクスチャマッピング]]
>+[[GLSL:マルチテクスチャ]]
>+[[床面反射]]
>+[[オフスクリーンレンダリング]]
>+[[環境マッピング]]
>+[[投影マッピング]]
>+[[シャドウマッピング]]
>+[[ソフトシャドウ]]
>+[[水面]]
>+[[バンプマッピング]]
>+[[視差マッピング]]
>+[[ディスプレースメントマップ]]
>+[[輪郭線抽出(IDマップ)]]
>+[[輪郭線抽出(深度マップ)]]
>+[[輪郭線抽出(法線マップ)]]
>+[[セルシェーディング]]
>+[[SSAO]]
>+[[ハードウェアスキニング]]
&link_aname(bottom0){▲▲▲▲▲}
&aname(bottom6){&bold(){▼ シェーダー:画像フィルタ偏}}
>+[[色の反転]]
>+[[ぼかしフィルタ]]
>+[[ガウスフィルタ]]
>+[[モザイク]]
>+[[モノトーン]]
>+[[セピア調]]
>+[[残像]]
>+[[モーションブラー]]
>+[[輪郭抽出]]
>+[[フォーカスフィルタ]]
&link_aname(bottom0){▲▲▲▲▲}
&aname(bottom7){&bold(){▼ 3Dライブラリ編:Irrlicht編}}
>+[[Irrlichtのインストール]]
&link_aname(bottom0){▲▲▲▲▲}
&aname(bottom8){&bold(){▼ 3Dライブラリ編:Ogre編}}
>+[[Ogreのインストール]]
&link_aname(bottom0){▲▲▲▲▲}
&bold(){当たり判定編}
&aname(bottom9){&bold(){▼ 当たり判定:2D編}}
>+[[2D:点と点]]
>+[[2D:点と線]]
>+[[2D:線と線]]
>+[[2D:円と円]]
>+[[2D:正方形と正方形]]
&link_aname(bottom0){▲▲▲▲▲}
&aname(bottom10){&bold(){▼ 当たり判定:3D編}}
>+[[3D:球と球]]
>+[[3D:AABBとAABB]]
>+[[3D:OBBとOBB]]
>+[[3D:線分と無限平面]]
&link_aname(bottom0){▲▲▲▲▲}
&bold(){物理演算編}
&aname(bottom11){&bold(){▼ 物理演算:Bullet Physics}}
>+[[Bullet:セットアップ]]
>+[[Bullet:はじめに]]
&aname(bottom12){&bold(){▼ 物理演算:PhysX}}
>+[[PhysX:セットアップ]]
>+[[PhysX:PhysXについて]]
&aname(bottom13){&bold(){▼ 物理演算:Open Dynamics Engine}}
>+[[ODE:セットアップ]]
>+[[ODE:箱の自由落下と地面との衝突判定]]
>+[[ODE:摩擦]]
>+[[ODE:各種衝突判定]]
>+[[ODE:ドミノ倒し]]
>+[[ODE:ジョイント]]
>+[[ODE:簡易ボーリング]]
>+[[ODE:簡易ピンボール]]
>+[[ODE:簡易カートゲーム]]
&link_aname(bottom0){▲▲▲▲▲}
&bold(){GPGPU編}
&aname(bottom14){&bold(){▼ GPGPU:CUDA}}
>+[[CUDA:セットアップ]]
&aname(bottom15){&bold(){▼ GPGPU:OpenCL}}
>+[[OpenCL:セットアップ]]
&link_aname(bottom0){▲▲▲▲▲}
&bold(){GUI編}
&aname(bottom16){&bold(){▼ GUI編:Win64API}}
>+[[メニューを表示する(64ビット)]]
>+[[ステータスバーを表示する(64ビット)]]
>+[[メッセージボックスを表示する(64ビット)]]
>+[[ボタンを表示する(64ビット)]]
>+[[ファイルを開くコモンダイアログ(64ビット)]]
>+[[ファイル保存のコモンダイアログ(64ビット)]]
>+[[フォント選択ダイアログ(64ビット)]]
>+[[モーダルダイアログを表示する(64ビット)]]
>+[[ポップアップメニューを表示する(64ビット)]]
>+[[タブコントロールを表示する(64ビット)]]
&link_aname(bottom0){▲▲▲▲▲}
&aname(bottom17){&bold(){▼ GUI編:Win32API}}
>+[[メニューを表示する]]
>+[[ステータスバーを表示する]]
>+[[メッセージボックスを表示する]]
>+[[ボタンを表示する]]
>+[[ファイルを開くコモンダイアログ]]
>+[[ファイル保存のコモンダイアログ]]
>+[[フォント選択ダイアログ]]
>+[[モーダルダイアログを表示する]]
>+[[ポップアップメニューを表示する]]
>+[[タブコントロールを表示する]]
>+[[スタティックテキストを表示する]]
>+[[ラジオボタンを表示する]]
>+[[チェックボックスを表示する]]
>+[[グループボックスを表示する]]
>+[[エディットボックスを表示する]]
>+[[リストボックスを表示する]]
>+[[コンボボックスを表示する]]
>+[[スクロールバーを表示する]]
>+[[アップダウンコントロールを表示する]]
>+[[トラックバーを表示する]]
>+[[ツールバーを表示する]]
>+[[ツールチップを表示する]]
>+[[フラットツールバーを表示する]]
>+[[プログレスバーを表示する]]
>+[[リストビューを表示する]]
>+[[ツリービューを表示する]]
>+[[レバーコントロールを表示する]]
>+[[MDIを表示する]]
>+[[リッチテキストエディットコントロールを表示する]]
>+[[日時指定コントロールを表示する]]
>+[[ページャーコントロールを表示する]]
>+[[シェブロンを表示する]]
>+[[分割ウインドウ]]
>+[[総集編:Lunaインターフェース]]
>+[[GUI編:おわりに…]]
&link_aname(bottom0){▲▲▲▲▲}
&aname(bottom18){&bold(){▼ GUI編:C++/CLI}}
>+[[C++/CLI:はじめに]]
>+[[C++/CLI:基本プロジェクト]]
>+[[C++/CLI:ラベル]]
>+[[C++/CLI:ボタン]]
>+[[C++/CLI:チェックボックス]]
>+[[C++/CLI:ラジオボタン]]
>+[[C++/CLI:ピクチャボックス]]
>+[[C++/CLI:テキストボックス]]
>+[[C++/CLI:リストボックス]]
>+[[C++/CLI:コンボボックス]]
>+[[C++/CLI:webブラウザ]]
>+[[C++/CLI:リンクラベル]]
>+[[C++/CLI:ファイルダイアログ]]
>+[[C++/CLI:フォルダダイアログ]]
>+[[C++/CLI:カラーダイアログ]]
>+[[C++/CLI:フォントダイアログ]]
>+[[C++/CLI:モーダルダイアログ]]
>+[[C++/CLI:モードレスダイアログ]]
>+[[C++/CLI:バージョン情報ダイアログ]]
>+[[C++/CLI:日付入力]]
>+[[C++/CLI:カレンダー]]
>+[[C++/CLI:タイマー]]
>+[[C++/CLI:アップダウンコントロール]]
>+[[C++/CLI:スクロールバー]]
>+[[C++/CLI:トラックバー]]
>+[[C++/CLI:プログレスバー]]
>+[[C++/CLI:リストビュー]]
>+[[C++/CLI:オーナードロー]]
>+[[C++/CLI:パネル]]
>+[[C++/CLI:フローレイアウトパネル]]
>+[[C++/CLI:テーブルレイアウトパネル]]
>+[[C++/CLI:グループボックス]]
>+[[C++/CLI:タブコントロール]]
>+[[C++/CLI:スプリットコンテナ]]
>+[[C++/CLI:メニュー]]
>+[[C++/CLI:コンテキストメニュー]]
>+[[C++/CLI:ステータスバー]]
>+[[C++/CLI:ツールバー]]
>+[[C++/CLI:ツールストリップコンテナ]]
>+[[C++/CLI:ツールチップ]]
>+[[C++/CLI:ツリービュー]]
>+[[C++/CLI:リッチテキストボックス]]
>+[[C++/CLI:MDI]]
>+[[C++/CLI:ドッキングウインドウ(SDock)]]
>+[[C++/CLI:データグリッドビュー]]
>+[[C++/CLI:ビジュアルスタイル]]
>+[[C++/CLIでOpenGLを簡単に表示する]]
&link_aname(bottom0){▲▲▲▲▲}
&aname(bottom19){&bold(){▼ GUI編:ドッキングウインドウC++/CLI}}
>+[[C++/CLI:ドッキングウインドウ その1]]
>+[[C++/CLI:ドッキングウインドウ その2]]
>+[[C++/CLI:ドッキングウインドウ その3]]
>+[[C++/CLI:ドッキングウインドウ その4]]
&link_aname(bottom0){▲▲▲▲▲}
&aname(bottom20){&bold(){▼ アセンブラ編:MASM32}}
>+[[Visual C++でインラインアセンブラを使う]]
>+[[MASM32を使ってみる]]
&link_aname(bottom0){▲▲▲▲▲}
&bold(){サウンド編}
&aname(bottom21){&bold(){▼ サウンド編:WAVファイル}}
>+[[WAVファイルの構成]]
>+[[WAVファイルのヘッダを読み込んでみる]]
>+[[左右のチャンネルを操作]]
>+[[モノラル化]]
>+[[サンプリングビット変換]]
>+[[WAVの一部を抜き出し]]
>+[[再生速度の変更]]
>+[[方形波の生成]]
>+[[ノコギリ波の生成]]
>+[[サイン波の生成]]
>+[[三角波の生成]]
>+[[ボリュームの変換]]
>+[[sin波状にボリューム変換]]
>+[[左右バランスの変更]]
>+[[カラオケ化]]
>+[[逆再生]]
>+[[WAVを直接再生]]
>+[[エコー]]
&link_aname(bottom0){▲▲▲▲▲}
&aname(bottom22){&bold(){▼ サウンド編:MIDIファイル}}
>+[[WindowsメディアプレイヤーのMIDI音源を変えてみる]]
>+[[FluidSynthの.libをVisual Studioでコンパイルする]]
>+[[FluidSynthでMIDI再生]]
>+[[ZynAddSubFX]]
>+[[TiMidity++(TWSYNTH)]]
&link_aname(bottom0){▲▲▲▲▲}
&aname(bottom23){&bold(){▼ サウンド編:OpenAL}}
>+[[.wav再生(OpenAL)]]
>+[[ストリーミング再生(.wav)(OpenAL)]]
>+[[.ogg再生(OpenAL)]]
>+[[3Dサウンド(OpenAL)]]
>+[[.mid再生(OpenAL)]]
&link_aname(bottom0){▲▲▲▲▲}
&aname(bottom24){&bold(){▼ サウンド編:DirectSound}}
>+[[.wav再生(DirectSound)]]
>+[[ストリーミング再生(DirectSound)]]
>+[[3Dサウンド(DirectSound)]]
&link_aname(bottom0){▲▲▲▲▲}
&aname(bottom25){&bold(){▼ サウンド編:DirectShow}}
>+[[音声ファイル再生(.wav,.mid等)]]
>+[[再生位置の取得]]
>+[[再生位置の設定]]
>+[[再生終了時間の取得]]
&link_aname(bottom0){▲▲▲▲▲}
2024-02-04T21:15:54+09:00
1707048954
-
設定の仕方
https://w.atwiki.jp/opengl/pages/15.html
**Visual Studio 2022 Community のインストール
>Visual Studio 2022 Community
>https://visualstudio.microsoft.com/ja/downloads/
>こちらから、Visual Studio 2022 Community をインストールしてください。
>デフォルトだと開発環境の背景色が『濃色』になっていて見にくいので『淡色』に変更します。
>&image(Visual Studio 2022.png)
>ツール→オプションの環境→全般の配色テーマを『淡色』にします。
>&image(Visual Studio 2022_1.png)
>&image(Visual Studio 2022_2.png)
>&image(Visual Studio 2022_3.png)
>これで昔ながらの見やすい開発環境になりました。
>&image(Visual Studio 2022_4.png)
**&s(){Visual Studio 2012 Express for Windows Desktop のインストール}
>&s(){Visual Studio 2012 Express for Windows Desktop}
>&s(){http://www.microsoft.com/visualstudio/jpn/downloads}
>&s(){こちらから、Visual Studio 2012 Express for Windows Desktop を インストールしてください。}
**&s(){Visual Studio 2012 のアイコンライブラリー入手方法}
>&s(){Visual Studio 2010までは特定のフォルダにインストールされていましたが、}
>&s(){Visual Studio 2012はバグによりアイコンライブラリーはインストールされないようです。}
>&s(){http://www.microsoft.com/en-us/download/details.aspx?id=35825}
>&s(){こちらから、Visual Studio Image Library をダウンロードして解凍してください。}
**freeglut のインストール
>OpenGLを簡単に使用できるようにするためのユーティリティとして、glut がありますが、
>glut はver3.7で更新が止まっています。
>また、glut には色々と不備がありますので glut を拡張した freeglut を使用します。
>
>freeglut
>http://freeglut.sourceforge.net/
>
>&s(){こちらから freeglut をダウンロードしてください。}
>以前は freeglut を CMAKE していましたが、今は GitHub から直接 Visual Studio 2022 でライブラリファイルを作れるようです。
>&image(freeglut_1.png)
>freeglutのページを下の方にスクロールしていくと GitHub のリポジトリのリンクがあるので右クリックして、リンクのアドレスをコピーします。
>&image(freeglut_2.png)
>Visual Studio 2022 を起動して起動ウィザードのリポジトリのクローン(C)を押します。
>&image(freeglut_3.png)
>リポジトリの場所の所に先ほどのコピーしたリンクのアドレスをペーストします。
>クローンボタンを押します。
>&image(freeglut_4.png)
>ソリューションエクスプローラーのフォルダービューをダブルクリックします。
>&image(freeglut_5.png)
>フォルダービューが展開されて freeglut の リポジトリのクローンが表示されました。
>&image(freeglut_6.png)
>メニューの下にあるツールバーの中の x64-Debug となっている構成設定のプルダウンをクリックして、
>構成を管理します...のメニューアイテムをクリックします。
>&image(freeglut_7.png)
>すると、CMakeの設定ページが出てきます。
>x64-Debugの設定は既にあるのでそのままで、構成の所の下にあるプラスボタン[+]を押します。
>CMakeSettingsのダイアログが出てくるので x64-Release を選択します。
>&image(freeglut_8.png)
>これで64bitのデバッグとリリースの設定ができました。
>&image(freeglut_9.png)
>今度は32bitの設定をします。
>また構成の所の下にあるプラスボタン[+]を押します。
>CMakeSettingsのダイアログの x86-Debug を選択します。
>&image(freeglut_10.png)
>32ビットのデバッグ版の設定ができたので今度はリリース版の設定をします。
>また構成の所の下にあるプラスボタン[+]を押します。
>CMakeSettingsのダイアログの x86-Release を選択します。
>&image(freeglut_11.png)
>これで全ての構成設定ができたので CMake の設定ページを閉じます。
>&image(freeglut_12.png)
>保存ダイアログが出てくるので保存ボタンを押します。
>&image(freeglut_13.png)
>メニューの下にあるツールバーの中の x64-Debug となっている構成設定のプルダウンをクリックすると、
>x64-Debug
>x64-Release
>x86-Debug
>x86-Release
>この4つの設定が出てきます。
>&image(freeglut_14.png)
>これで準備が整いました。
>
>メニューのビルド、すべてビルドを選択します。
>&image(freeglut_15.png)
>ソリューションの freeglut\out\build\x64-Debug\lib\ に64ビットデバッグ版の .lib ができています。
>&image(freeglut_16.png)
>メニューの下にあるツールバーの中の x64-Debug となっている構成設定のプルダウンをクリックして、
>x64-Release にします。
>&image(freeglut_17.png)
>メニューのビルド、すべてビルドを選択します。
>&image(freeglut_15.png)
>ソリューションの freeglut\out\build\x64-Release\lib\ に64ビットリリース版の .lib ができています。
>&image(freeglut_18.png)
>同様にして、32ビット版のライブラリを作ります。
>メニューの下にあるツールバーの中の構成設定のプルダウンをクリックして、 x86-Debug にします。
>&image(freeglut_19.png)
>メニューのビルド、すべてビルドを選択します。
>&image(freeglut_15.png)
>ソリューションの freeglut\out\build\x86-Debug\lib\ に32ビットデバッグ版の .lib ができています。
>&image(freeglut_20.png)
>やっと最後です。
>メニューの下にあるツールバーの中の構成設定のプルダウンをクリックして、 x86-Release にします。
>&image(freeglut_21.png)
>メニューのビルド、すべてビルドを選択します。
>&image(freeglut_15.png)
>ソリューションの freeglut\out\build\x86-Release\lib\ に32ビットリリース版の .lib ができています。
>&image(freeglut_22.png)
>これで64ビットと32ビットのデバッグとリリースの .lib が作れました。
**GLEW のインストール
>OpenGLでプログラマブルシェーダー GLSL を使うためのライブラリです。
>http://glew.sourceforge.net/
>こちらから GLEW をダウンロードしてください。
>
>glewで色々と問題が出るようなので解説です。
>まず、glewのオフィシャルからglewのソースをダウンロードします。
>http://glew.sourceforge.net/
>&ref(glew1.png)
>今回はglew-1.10.0.zipをダウンロードしました。
>それを解凍して
>解凍フォルダ \glew-1.10.0\build\vc10\ にあるglew.slnを起動します。
>初回起動の時は更新のポップアップウインドウが出るので更新します。
>プロジェクトの構成をReleaseのWin32にします。
>&ref(glew5.png)
>ソリューションエクスプローラーのglew_sharedを右クリックしてプロパティを
>表示します。
>構成プロパティのリンカーの詳細設定の安全な例外ハンドラーを含むイメージ
>が最初は「はい(/SAFESEH)」になっているので消去して空欄にします。
>&ref(glew2.png)
>プロジェクトのプロパティのランタイムライブラリをマルチスレッドにします。
>&ref(glew4.png)
>そのままソリューションをビルドすると文字列リテラルが長すぎるという
>エラーがでます。
>glew.rcのエラーが出た部分をコメントアウトします。
>&ref(glew3.png)
>再度、ソリューションをビルドしてみましょう。
>すると今回は正常に終了します。
>
>そこまで出来たら、各種ファイルを配置しましょう。
>解凍フォルダ \glew-1.10.0\include\GL\ にあるglew.h、glxew.h、wglew.hを
>C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\GL\
>にコピーします。
>解凍フォルダ \glew-1.10.0\lib\Release\Win32\ にあるglew32.lib、glew32s.libを
>C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\
>にコピーします。
>解凍フォルダ \glew-1.10.0\bin\Release\Win32\ にあるglew32.dllを
>C:\Windows\SysWOW64\
>にコピーします。
>
>これでglewが使えるようになりました。
**OpenGL SDK のインストール
>OpenGLの拡張機能です。
>https://registry.khronos.org/OpenGL/index_gl.php#headers
>&image(glext.png)
>の、glext.h
>https://registry.khronos.org/OpenGL/api/GL/glext.h
>と、glcorearb.h
>https://registry.khronos.org/OpenGL/api/GL/glcorearb.h
>と、glxext.h
>https://registry.khronos.org/OpenGL/api/GL/glxext.h
>と、wglext.h
>https://registry.khronos.org/OpenGL/api/GL/wglext.h
>を glew のインクルードフォルダにある GL フォルダにコピーして下さい。
>
><KHR/khrplatform.h> は要らないかと思います。
以下は過去記事
>&s(){OpenGLの拡張機能です。}
>&s(){>http://www.opengl.org/registry/}
>&s(){の、glext.h}
>&s(){http://www.opengl.org/registry/api/glext.h}
>&s(){と、glxext.h}
>&s(){http://www.opengl.org/registry/api/glxext.h}
>&s(){と、wglext.h}
>&s(){http://www.opengl.org/registry/api/wglext.h}
>&s(){をOpenGLのインクルードフォルダにコピーして下さい。}
**LodePNG のインストール
>このサイトのプログラムは LodePNG version 20100314 を使用しています。
>http://members.gamedev.net/lode/projects/LodePNG/
>現在の最新版 LodePNG は引数などが大幅に変更されています。
>LodePNG は作者様の意向により改変、再配布等が自由に行える模様ですので
>LodePNG version 20100314 を、ここで再配布致します。
>[[lodepng.cpp>http://www21.atwiki.jp/opengl?cmd=upload&act=open&pageid=15&file=lodepng.cpp]]
>[[lodepng.h>http://www21.atwiki.jp/opengl?cmd=upload&act=open&pageid=15&file=lodepng.h]]
**OpenAL のインストール
//>http://connect.creativelabs.com/openal/default.aspx
>https://www.openal.org/
>の Downloads から OpenAL 1.1 Core SDK (OpenAL11CoreSDK.zip) と OpenAL 1.1 Windows Installer (oalinst.zip) をダウンロードして解凍して
>それぞれのインストーラーを実行します。
**ALUT のインストール
//>http://connect.creativelabs.com/openal/default.aspx
>https://directory.fsf.org/wiki/Freealut
>の Download から freealut_1.1.0.orig.tar をダウンロードして
>解凍して適当な場所に配置します。
**プロジェクトの作成 (64bitアプリケーション)
>Visual Studio 2022(C/C++)を起動して
>新しいプロジェクトの作成→コンソールアプリを選択して、次へボタンを押します。
>プロジェクト名を適当に付けて作成ボタンを押します。
>するとWindowsの64ビットアプリ(X64アプリ)が作成されます。
>そのままデバッグメニューのデバッグ開始を押すと、Visual StudioデフォルトのHello World!プログラムが起動します。
>その.cppファイルに当サイトのプログラムをコピー&ペーストして.hファイルを追加してビルドすると実行ファイルが出来上がります。
**プロジェクトの作成 (32bitアプリケーション)
>上記のプロジェクトの作成 (64bitアプリケーション)で64bitプロジェクトを作り、構成設定をx86にします。
>これだけです。
>&image(x86x64.png)
>
>以下は過去記事(Visual Studio 2012)
>&s(){Visual C++ を起動して}
>&s(){ファイル → 新規作成 → プロジェクト を選択します。}
>&s(){Win32 の Win32 コンソール アプリケーション を選択します。}
>&s(){プロジェクト名とソリューション名を適当に付けて OK ボタンを押します。}
>&s(){すると Win32 アプリケーション ウィザードが起動するので}
>&s(){アプリケーションの設定 を選択します。}
>&s(){コンソール アプリケーションを選択し、 空のプロジェクト にチェックします。}
>&s(){そして 完了ボタンを押すとプロジェクトが出来上がります。}
>&s(){後は、プロジェクトに .cpp や .h を追加して当サイトのサンプルをビルドして下さい。}
&youtube(https://www.youtube.com/watch?v=AX7fJCZzgnY){425,350}
----
2023-12-03T23:44:31+09:00
1701614671
-
Visual Studio 2017 Expressを入手する
https://w.atwiki.jp/opengl/pages/336.html
*Visual Studio Express 2017 for Windows Desktop
>Visual Studio Express 2017 for Windows Desktop は利用条件が緩いので
>今でも使っている方がいるのではないでしょうか?
>今は Microsoft のダウンロードセンターからは入手できなくなっています。
>でも Visual Studio Installer を使うと今でもインストールできるようです。
>やり方ですが、ダウンロードセンターから Visual Studio Professional.exe 等の
>Visual Studio Installer を入手し、コマンドラインで
>①Visual Studio Professional.exe 等のパスを入力
>&image(express2017_3.png)
>②スペースキーでスペースを入力
>③以下のコマンドをコピーしてペースト
>|.\VisualStudioSetup.exe --channelUri https://aka.ms/vs/15/release/channel --productId Microsoft.VisualStudio.Product.WDExpress|
>④Enterキーを押す
>⑤Visual Studio Express 2017 のインストール画面が出てくるのでインストールします。
>#image(https://img.atwiki.jp/opengl/attach/336/943/express2017.png,width=640,height=320,title=visual Studio 2017 Express)
>
>#image(https://img.atwiki.jp/opengl/attach/336/944/express2017_2.png,width=640,height=320,title=visual Studio 2017 Express_2)
>
>これで Visual Studio Express 2017 がインストールできました。
2023-11-29T22:57:01+09:00
1701266221
-
ボタンを表示する(64ビット)
https://w.atwiki.jp/opengl/pages/335.html
2023-11-28T16:44:55+09:00
1701157495
-
メッセージボックスを表示する(64ビット)
https://w.atwiki.jp/opengl/pages/334.html
<p><strong>メッセージボックスです。<br />
32ビットと64ビットの両方に対応しています。</strong></p>
<p><img alt="win64" src="https://img.atwiki.jp/opengl/attach/334/940/mes.png" style="width:649px;height:520px;" /></p>
<p>resource.h</p>
<table border="1" cellpadding="1" cellspacing="1" style="width:600px;">
<tbody>
<tr>
<td>#pragma once<br />
#define IDR_MENU1 100<br />
#define ID_EXIT 101<br />
#define ID_TEST 102<br />
#define ID_A 103<br />
#define ID_B 104<br />
#define ID_Menu 105<br />
#define ID_Whats 106<br />
#define ID_Help 107<br />
#define ID_STATUS 108<br /></td>
</tr>
</tbody>
</table>
<p>menu.rc</p>
<table border="1" cellpadding="1" cellspacing="1" style="width:600px;">
<tbody>
<tr>
<td>
<p>#include "resource.h"</p>
<p>IDR_MENU1 MENU<br />
BEGIN<br />
POPUP "File"<br />
BEGIN<br />
MENUITEM "Exit", ID_EXIT<br />
END<br />
POPUP "Test"<br />
BEGIN<br />
MENUITEM "てすつ", ID_TEST<br />
END<br />
POPUP "Option"<br />
BEGIN<br />
MENUITEM "A", ID_A<br />
MENUITEM "B", ID_B<br />
MENUITEM "めにゅ~", ID_Menu<br />
MENUITEM "whats?", ID_Whats<br />
END<br />
MENUITEM "ヘルプ", ID_Help<br />
END</p>
</td>
</tr>
</tbody>
</table>
<p>main.cpp</p>
<table border="1" cellpadding="1" cellspacing="1" style="width:600px;">
<tbody>
<tr>
<td>
<p>#pragma comment(linker, "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")<br />
#pragma comment(lib, "comctl32.lib")<br />
#include <GL/freeglut/freeglut.h><br />
#include "resource.h"<br />
#include <commctrl.h> //CreateStatusWindow()のために必要</p>
<p>//FreeGlutのウインドウプロシージャを置き換える為の変数<br />
WNDPROC WndProc = NULL; //元のウィンドウプロシージャ<br />
HWND hWnd2 = NULL; //ウィンドウハンドル<br />
HMENU hMenu = NULL; //メニュー<br />
HWND hStatusbar; // ステータスバーのハンドル</p>
<p>//Windowのサイズ<br />
int width = 640;<br />
int height = 480;</p>
<p>//回転用<br />
float anglex = 0.0f;<br />
//白<br />
GLfloat white[] = { 1.0, 1.0, 1.0, 1.0 };</p>
<p>//置き換えた後のプロシージャ<br />
LRESULT CALLBACK WndProc2(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{<br />
switch (msg) {<br />
case WM_SIZE:<br />
SendMessage(hStatusbar, WM_SIZE, wParam, lParam);<br />
return 0;<br />
case WM_COMMAND:<br />
switch (LOWORD(wParam)) {<br />
case ID_EXIT:<br />
PostQuitMessage(0);<br />
}<br />
return 0;<br />
case WM_DESTROY:<br />
exit(0);<br />
break;<br />
default:<br />
if (WndProc) {<br />
return CallWindowProc(WndProc, hWnd, msg, wParam, lParam);<br />
}<br />
else {<br />
return DefWindowProc(hWnd, msg, wParam, lParam);<br />
}<br />
}<br />
}</p>
<p>//ウィンドウの検索<br />
BOOL CALLBACK enumWindowsProc(HWND hWnd, LPARAM lParam) {<br />
HANDLE hModule = (__int64*)GetWindowLongPtr(hWnd, GWLP_HINSTANCE);<br />
if (GetModuleHandle(NULL) == hModule) {<br />
wchar_t ClassName[256];<br />
GetClassNameW(hWnd, ClassName, sizeof(ClassName) /
sizeof(ClassName[0]));<br />
if (wcsncmp(ClassName, L"FREEGLUT", wcslen(ClassName)) == 0) {<br />
hWnd2 = hWnd;<br />
return FALSE;<br />
}<br />
}<br />
return TRUE;<br />
}</p>
<p>void display(void) {<br />
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);<br />
glViewport(0, 0, width, height);<br />
glMatrixMode(GL_PROJECTION);<br />
glLoadIdentity();</p>
<p> gluPerspective(30.0, (double)width / (double)height, 1.0, 1000.0);<br />
glMatrixMode(GL_MODELVIEW);<br />
glLoadIdentity();</p>
<p> gluLookAt(150.0, 150.0, -150.0,<br />
0.0, 0.0, 0.0,<br />
0.0, 1.0, 0.0);</p>
<p> glMaterialfv(GL_FRONT, GL_DIFFUSE, white);<br />
//回転<br />
glRotatef(anglex, 1.0f, 0.0f, 0.0f);//X軸を回転<br />
glutSolidSphere(40.0, 16, 16);</p>
<p> glutSwapBuffers();<br />
}<br />
void idle(void) {<br />
anglex += 2.0f;<br />
Sleep(1);<br />
glutPostRedisplay();<br />
}<br />
void Init() {<br />
glClearColor(0.3f, 0.3f, 0.3f, 1.0f);<br />
glEnable(GL_DEPTH_TEST);<br />
//ワイヤーフレーム<br />
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);<br />
}<br />
int main(int argc, char* argv[]) {<br />
glutInit(&argc, argv);<br />
glutInitWindowPosition(100, 100);<br />
glutInitWindowSize(width, height);<br />
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);<br />
glutCreateWindow("メッセージボックス");<br />
//FreeGlutのウインドウハンドルとウインドウプロシージャを置き換える<br />
EnumWindows(enumWindowsProc, 0);<br />
if (hWnd2) {<br />
WndProc = (WNDPROC)(__int64)GetWindowLongW(hWnd2, GWLP_WNDPROC);<br />
SetWindowLongW(hWnd2, GWLP_WNDPROC, (LONG)(LRESULT)WndProc2);<br />
}<br />
else {<br />
return false;<br />
}<br />
//メニューを作成<br />
hMenu = LoadMenu(GetModuleHandle(NULL), MAKEINTRESOURCE(IDR_MENU1));<br />
if (hMenu) {<br />
SetMenu(hWnd2, hMenu);<br />
}<br />
else {<br />
return false;<br />
}<br />
// コモンコントロール関係の初期化<br />
InitCommonControls();<br />
// ステータスバーを作成<br />
hStatusbar = CreateStatusWindowW(WS_CHILD | WS_VISIBLE | CCS_BOTTOM |
SBARS_SIZEGRIP,<br />
L"ステータスバー", hWnd2, ID_STATUS);</p>
<p> MessageBox(hWnd2, L"メッセージボックスです。", L"タイトル", MB_OK);<br />
glutDisplayFunc(display);<br />
glutIdleFunc(idle);<br />
Init();<br />
glutMainLoop();<br />
return true;<br />
}</p>
</td>
</tr>
</tbody>
</table>
<p> </p>
2023-11-28T15:22:16+09:00
1701152536
-
ステータスバーを表示する(64ビット)
https://w.atwiki.jp/opengl/pages/333.html
<p><strong>前回と同様にステータスバーを表示してみました。<br />
32ビットと64ビットの両方に対応しています。</strong></p>
<p><img alt="win64" src="https://img.atwiki.jp/opengl/attach/333/939/status.png" style="width:652px;height:523px;" /></p>
<p>resource.h</p>
<table border="1" cellpadding="1" cellspacing="1" style="width:600px;">
<tbody>
<tr>
<td>#pragma once<br />
#define IDR_MENU1 100<br />
#define ID_EXIT 101<br />
#define ID_TEST 102<br />
#define ID_A 103<br />
#define ID_B 104<br />
#define ID_Menu 105<br />
#define ID_Whats 106<br />
#define ID_Help 107<br />
#define ID_STATUS 108<br /></td>
</tr>
</tbody>
</table>
<p>menu.rc</p>
<table border="1" cellpadding="1" cellspacing="1" style="width:600px;">
<tbody>
<tr>
<td>
<p>#include "resource.h"</p>
<p>IDR_MENU1 MENU<br />
BEGIN<br />
POPUP "File"<br />
BEGIN<br />
MENUITEM "Exit", ID_EXIT<br />
END<br />
POPUP "Test"<br />
BEGIN<br />
MENUITEM "てすつ", ID_TEST<br />
END<br />
POPUP "Option"<br />
BEGIN<br />
MENUITEM "A", ID_A<br />
MENUITEM "B", ID_B<br />
MENUITEM "めにゅ~", ID_Menu<br />
MENUITEM "whats?", ID_Whats<br />
END<br />
MENUITEM "ヘルプ", ID_Help<br />
END</p>
</td>
</tr>
</tbody>
</table>
<p>main.cpp</p>
<table border="1" cellpadding="1" cellspacing="1" style="width:600px;">
<tbody>
<tr>
<td>
<p>#pragma comment(linker, "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")<br />
#pragma comment(lib, "comctl32.lib")<br />
#include <GL/freeglut/freeglut.h><br />
#include "resource.h"<br />
#include <commctrl.h> //CreateStatusWindow()のために必要</p>
<p><br />
//FreeGlutのウインドウプロシージャを置き換える為の変数<br />
WNDPROC WndProc = NULL; //元のウィンドウプロシージャ<br />
HWND hWnd2 = NULL; //ウィンドウハンドル<br />
HMENU hMenu = NULL; //メニュー<br />
HWND hStatusbar; // ステータスバーのハンドル</p>
<p>//Windowのサイズ<br />
int width = 640;<br />
int height = 480;</p>
<p>//回転用<br />
float anglex = 0.0f;<br />
//白<br />
GLfloat white[] = { 1.0, 1.0, 1.0, 1.0 };</p>
<p>//置き換えた後のプロシージャ<br />
LRESULT CALLBACK WndProc2(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{<br />
switch (msg) {<br />
case WM_SIZE:<br />
SendMessage(hStatusbar, WM_SIZE, wParam, lParam);<br />
return 0;<br />
case WM_COMMAND:<br />
switch (LOWORD(wParam)) {<br />
case ID_EXIT:<br />
PostQuitMessage(0);<br />
}<br />
return 0;<br />
case WM_DESTROY:<br />
exit(0);<br />
break;<br />
default:<br />
if (WndProc) {<br />
return CallWindowProc(WndProc, hWnd, msg, wParam, lParam);<br />
}<br />
else {<br />
return DefWindowProc(hWnd, msg, wParam, lParam);<br />
}<br />
}<br />
}</p>
<p>//ウィンドウの検索<br />
BOOL CALLBACK enumWindowsProc(HWND hWnd, LPARAM lParam) {<br />
HANDLE hModule = (__int64*)GetWindowLongPtr(hWnd, GWLP_HINSTANCE);<br />
if (GetModuleHandle(NULL) == hModule) {<br />
wchar_t ClassName[256];<br />
GetClassNameW(hWnd, ClassName, sizeof(ClassName) /
sizeof(ClassName[0]));<br />
if (wcsncmp(ClassName, L"FREEGLUT", wcslen(ClassName)) == 0) {<br />
hWnd2 = hWnd;<br />
return FALSE;<br />
}<br />
}<br />
return TRUE;<br />
}</p>
<p>void display(void) {<br />
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);<br />
glViewport(0, 0, width, height);<br />
glMatrixMode(GL_PROJECTION);<br />
glLoadIdentity();</p>
<p> gluPerspective(30.0, (double)width / (double)height, 1.0, 1000.0);<br />
glMatrixMode(GL_MODELVIEW);<br />
glLoadIdentity();</p>
<p> gluLookAt(150.0, 150.0, -150.0,<br />
0.0, 0.0, 0.0,<br />
0.0, 1.0, 0.0);</p>
<p> glMaterialfv(GL_FRONT, GL_DIFFUSE, white);<br />
//回転<br />
glRotatef(anglex, 1.0f, 0.0f, 0.0f);//X軸を回転<br />
glutSolidSphere(40.0, 16, 16);</p>
<p> glutSwapBuffers();<br />
}<br />
void idle(void) {<br />
anglex += 2.0f;<br />
Sleep(1);<br />
glutPostRedisplay();<br />
}<br />
void Init() {<br />
glClearColor(0.3f, 0.3f, 0.3f, 1.0f);<br />
glEnable(GL_DEPTH_TEST);<br />
//ワイヤーフレーム<br />
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);<br />
}<br />
int main(int argc, char* argv[]) {<br />
glutInit(&argc, argv);<br />
glutInitWindowPosition(100, 100);<br />
glutInitWindowSize(width, height);<br />
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);<br />
glutCreateWindow("ステータスバー");<br />
//FreeGlutのウインドウハンドルとウインドウプロシージャを置き換える<br />
EnumWindows(enumWindowsProc, 0);<br />
if (hWnd2) {<br />
WndProc = (WNDPROC)(__int64)GetWindowLongW(hWnd2, GWLP_WNDPROC);<br />
SetWindowLongW(hWnd2, GWLP_WNDPROC, (LONG)(LRESULT)WndProc2);<br />
}<br />
else {<br />
return false;<br />
}<br />
//メニューを作成<br />
hMenu = LoadMenu(GetModuleHandle(NULL), MAKEINTRESOURCE(IDR_MENU1));<br />
if (hMenu) {<br />
SetMenu(hWnd2, hMenu);<br />
}<br />
else {<br />
return false;<br />
}<br />
// コモンコントロール関係の初期化<br />
InitCommonControls();<br />
// ステータスバーを作成<br />
hStatusbar = CreateStatusWindowW(WS_CHILD | WS_VISIBLE | CCS_BOTTOM |
SBARS_SIZEGRIP,<br />
L"ステータスバー", hWnd2, ID_STATUS);<br />
glutDisplayFunc(display);<br />
glutIdleFunc(idle);<br />
Init();<br />
glutMainLoop();<br />
return true;<br />
}</p>
</td>
</tr>
</tbody>
</table>
<p> </p>
2023-11-28T01:01:29+09:00
1701100889
-
コメント板
https://w.atwiki.jp/opengl/pages/13.html
簡易掲示板です。
何かありましたらコメントを。
----
- てすと -- 管理人 (2010-03-22 11:30:06)
- directXのホウノライブラリは開発中止になったんですか? -- 人間 (2010-09-26 23:25:06)
- OpenGL最近勢いづいてていい感じですね。C#+OpenTKの開発のしやすさもなかなかすごいし、ゲーム業界もOpenGLにシフトしないかな。 -- shocker (2010-09-29 02:37:52)
- カンリニンサァァアアーーーン -- 人間 (2010-10-05 21:44:33)
- DX Wrapperライブラリの開発は無期限停止状態です。 -- 管理人 (2010-10-10 19:40:54)
- ゲーム業界でもPC、XBOX、DC以外はOpenGL採用の方向になっているようです。 -- 管理人 (2010-10-10 19:44:07)
- 初めまして、メタセコイヤの画面を模倣することに挑戦したのですが、全くうまく行きません,,,, サンプルコードを載せて頂く事は出来ないでしょうか? よろしくお願いします。 -- Candy (2011-01-25 21:06:26)
- これから参考にさせていただきます。 -- メアセコイタ (2011-01-26 12:42:32)
- 投げやりすぎやない?もう少し自分でがんばって見いや。 -- >>Candy (2011-01-26 19:11:04)
- 名無しさん > すいません、3日ほど考えて、下の面の描画は出来たのですが,,,正直大してレベルの高くない中学生の私では今までのチュートリアルではつらいです、、 -- Candy (2011-01-27 21:14:49)
- LodePNGのバージョンが変わって引数が全然変わってませんか・・ -- メアセコイタ (2011-01-27 22:17:45)
- ↑2 中学生だからとかは関係なくね。ここのチュートリアル程度がわからんのなら本かえよ。それでもムリなら諦めろ、お前にはまだ早いってことだ。書いてること理解して応用できないやつにプログラミングは無理 -- msoutside (2011-01-30 18:38:11)
- メアセコイタさん、ご指摘ありがとうございます。設定の仕方のページでLodePNGを再配布致しますので、それを使用して下さい。 -- 管理人 (2011-01-30 21:50:15)
- Candyさん、どういった事ができないのでしょうか? -- 管理人 (2011-01-30 21:54:58)
- LodePNGの対応ありがとうございます。 今度はGLMetaseq.hなのですが、freeglutの互換のためglut.hをインクルードしてもfreeglutをインクルードしてくれるようなので、GLMetaseq.hを書き換える必要はなさそうです。 -- メアセコイタ (2011-02-02 22:59:10)
- すいません、これではfreeglut_std.hだけでfreeglut_ext.hが含まれないので、別にインクルードする必要がありそう・・・ -- メアセコイタ (2011-02-07 11:24:02)
- メアセコイタさん、何やらエラーが発生するので管理人はGLMetaseq.hを書き換えるようにしています。 -- 管理人 (2011-02-07 13:05:27)
- GLSL編はいつ頃予定していますか? 楽しみで仕方ないです。 -- yamada (2011-02-20 02:59:51)
- yamadaさん、管理人が学習してからになりますのでかなり後になると思います。 -- 管理人 (2011-02-20 19:01:37)
- http://www.sofix.co.jp/weblog/archives/cat8/opengl/index.html を動かしてみました。視点は変えられましたが、回転とか移動とかしません・・・ -- わさびぃ (2011-02-23 16:45:46)
- わさびぃさん、他の方が作成したサイトの内容に関する質問はお受けすることができません。ご了承下さい。 -- 管理人 (2011-02-23 18:42:05)
- あの管理人さんは、いつもどういったサイトで勉強しているのですか? 毎回凄いなと思うのですが、、、独自に研究しているのですか? -- あいうえお (2011-04-11 17:49:06)
- あいうえおさん、googleとかで見つかったサイトとかOpenGLの各種書籍等を参考にしています。独自に調べる時もあります。 -- 管理人 (2011-04-12 18:01:40)
- 何かお勧めのサイト、図書などありましたら教えてくださいませんか?なるべく日本語か英語のものをお願いします。。 -- ほげ (2011-06-10 13:44:16)
- 「MESH GURU」 とか 「OpenGL + GLSL による 3DCG アニメーション」 とかですかね。 -- 管理人 (2011-06-13 17:20:12)
- .Xの階層メッシュアニメーションを読み込んでみる4の更新楽しみです -- 村長 (2011-12-21 12:41:31)
- 今、更新しました。 -- 管理人 (2011-12-21 18:30:54)
- 涙出るほど嬉しいです、挑戦していた最中のところでした。ありがとうございます。これからも直向きに勉強させていただきます。 -- 村長 (2011-12-21 20:14:22)
- メッシュアニメーション大変勉強になりました。スキンアニメーションも自分でも挑戦してみています。学習の励みになります。 -- 村長 (2011-12-22 17:20:36)
- 村長さん、頑張ってください。 -- 管理人 (2011-12-22 18:24:05)
- 「ジョイパッドの状態を取得(Win32API)」 についてですが、joyGetPosEx()の第一引数にJOYSTICKID2 + 1とすれば3つ目取得、+2で4つ目取得できますよ。それ以上はやってないので不明ですが -- cl (2011-12-30 07:04:55)
- clさん、情報ありがとうございます。ジョイパッドを沢山持っていないので動作確認が取れずにいました。取りあえず2つまでは確実に取得できるみたいなので『?』にしています。動作確認出来次第、更新致します。 -- 管理人 (2011-12-31 21:50:11)
- あけましておめでとうございます。今年も参考にさせていただきます。 -- 村長 (2012-01-03 14:54:15)
- 村長さん、あけましておめでとうございます。 -- 管理人 (2012-01-03 17:40:19)
- いつもお世話になっております。素朴な質問なのですが、glutSolidSphere(Cube,Cone etc)などを削除する方法はあるのでしょうか? -- 村長 (2012-01-11 16:14:53)
- 村長さん、質問の意味が良く理解できませんが、glutSolidSphereで描画した球の表示を消すという事でしょうか? そういう事でしたら画面クリアをしてif文などでglutSolidSphereをしない処理にすれば表示を消す事はできます。 -- 管理人 (2012-01-11 18:06:06)
- 回答ありがとうございます。どうやら、画面のクリアをしていなかっただけでした・・・。お手数おかけしました。 -- 村長 (2012-01-11 20:00:47)
- いつもお世話になっております。VBOに関しての質問です。VBOにtextureを貼り付けることは可能ですか?glTexCoordPointerを使用して試みたのですがうまい具合にいかないので、ヒントを頂ければ幸いです。 -- 村長 (2012-01-15 19:10:35)
- http://www.arakin.dyndns.org/gl_torusvbo.php ←こちらのサイトにサンプルがありましたので紹介しておきます。当サイトでもサンプルを作成しておきます。しばらくお待ち下さい。 -- 管理人 (2012-01-15 23:35:33)
- 管理人さん、いつもありがとうございます。参考にさせて頂き習熟に励みます。更新楽しみです。 -- 村長 (2012-01-16 09:06:04)
- 村長さん、VBO(テクスチャ付き)のページを作成しました。 -- 管理人 (2012-01-16 18:25:58)
- あぁ、もうなんと申し上げてよいやら・・・!ご多忙な中ありがとうございます。さっそく学習させていただきます。本当にいつもありがとうございます。おかげで今、OpenGLで簡単なものを作れるまでになりました。毎日ここで復習をすることが日課です。これからも更新楽しみにしています。 -- 村長 (2012-01-16 20:42:45)
- 度々すみません。VBOでの動的確保配列の使用についての質問です。glBufferDataに渡す頂点配列、法線配列、色配列をC++で「動的確保」して渡そうとしているのですが、glBufferDataの第3引数には配列のアドレスを渡せばよいのでしょうか?よろしければヒントを頂けると幸いです。先日教えて頂いたことで、glDrawRangElementsなども使えるようになりました。本当にありがとうございました。 -- 村長 (2012-01-18 18:26:31)
- そうですね。動的確保した配列の先頭のアドレスを渡してあげれば良いです。 -- 管理人 (2012-01-18 20:08:04)
- ありがとうございます。再度挑戦してみます! -- 村長 (2012-01-18 20:30:26)
- 管理人さん、無事「配列の動的確保での描画」出来ました。ありがとうございました。 -- 村長 (2012-01-19 09:37:55)
- コメント板が村長とか言う人の専用質問板みたいになってね? -- 閲覧者 (2012-01-19 17:01:41)
- 閲覧者さん、大変お騒がせ致しました。随分お世話になり、閲覧されているほかの方々もいらっしゃると思いますので、以後はコメントを控えさせて頂きます。資料が少ない中、丁寧に受け答えをしていただいていた管理人さんと、閲覧者の方々もありがとうございました。 -- 村長 (2012-01-19 20:40:12)
- まぁ、あまり気にする事ではないと思いますが。 -- 管理人 (2012-01-19 22:43:38)
- 管理人さん、ありがとうございます。日々演習を続けております。スキンメッシュの更新楽しみです。 -- 村長 (2012-01-24 08:46:42)
- 更新拝見致しました。スキンメッシュの凄いですね。アニメーションも楽しみです。 -- 村長 (2012-01-31 20:37:17)
- しばらくお待ちください。。。 -- 管理人 (2012-01-31 22:34:00)
- 初めて書き込みします。参考にさせていただいてます。「MQOを読み込んで表示する(GLMetaseq)」のリンクが切れていたので一応お知らせしておきます。ttp://kougaku-navi.net/ARToolKit/index.htmlに変更になったようです。 -- イスト (2012-11-24 22:22:57)
- イストさん、ご報告ありがとうございます。修正しておきました。 -- 管理人 (2012-11-25 20:30:45)
- 固定機能:スキニング編 17章以降、早く読みたいです!ぜひ執筆お願いいたします! -- dotpoco (2012-12-11 19:04:07)
- dotpocoさん、今ちょっとサウンドの方に取り掛かってるので、かなり後になると思います。 -- 管理人 (2012-12-13 10:42:35)
- そこをなんとか」本仮屋ユイカ風、、、お願いします。>管理人さん -- dotpoco (2012-12-13 12:21:33)
- 固定機能:スキニング編 17章-21章まで、ソースコードを頂けませんか? -- 名無しさん (2012-12-13 14:56:38)
- 固定機能:スキニング編 17章-21章まで、ソースコードを頂けませんか?仕事のために冬休み勉強したいのですが?有償でも構いません。 -- dotpoco改めhiroponie1(@gmail.com) (2012-12-13 15:02:31)
- まだ作成していないのでソースコードはありません。今すぐスキニングについて学習したいのであれば、こちらの http://asura.iaigiri.com/OpenGL/gl67.html とか http://marupeke296.com/ とかを参考にしてみてはどうでしょうか。 -- 管理人 (2012-12-13 17:27:37)
- ご丁寧にも、迅速なご回答ありがとうございます!参考にしてみます。 -- dotpoco (2012-12-13 18:31:30)
- スタティックメッシュ編4のコードなのですが、マテリアルが無いMQOには対応していないように見えます。(マテリアル毎のグループで管理している為) -- wagtail (2013-05-21 08:15:06)
- wagtailさん、マテリアルが無いMQOには対応していません。 -- 管理人 (2013-05-21 21:44:59)
- .OBJを読み込んでみる3(表示編)でコードを動かすとLoadOBJ.obj : error LNK2019: 未解決の外部シンボル __imp__glewInit@0 が関数 "void __cdecl Init(void)" (?Init@@YAXXZ) で参照されました。となり、どうやっても解決できなかったので検索しましたが結果を全て試してもダメで打つ手なしです。 -- tes (2013-05-25 22:39:16)
- tesさん、そのエラーはglewのスタティック版を使うリンカの設定にした時にでるようです。そのプログラムはglewを使用していないのでプロジェクトの設定を見直してください。 -- 管理人 (2013-05-26 16:31:00)
- MQOを読み込んで表示する(GLMetaseq)でglutCreateWindow() glutInitDisplayMode()の順で呼んでいますがglutInitDisplayMode()が先ではないですか? -- おはぎぼたもち (2013-06-21 07:32:34)
- glutInitDisplayMode()が先の方が良いかもしれませんね。 -- 管理人 (2013-06-26 17:06:30)
- 初めて書き込みします。GUI編のメニューを表示する解説のところで、Windows8 64bit版、VisualStudio2012でサンプルコードを一文字違わず書いて実行してみたのですが、ウィンドウがすぐに縮こまってしまいます。これはWindows8だから起きることなのでしょうか?ちなみに縮こまるというのは最小化されるのではなくウィンドウの高さが限りなく小さくなるといった感じです。説明分かりづらくてすみません。 -- karasu (2013-08-25 15:04:48)
- karasuさん、報告ありがとうございます。同環境で試した所、同じ現象が起きました。glutReshapeWindow(WIDTH,HEIGHT);を追加する事で正常に表示されるようです。コードも修正しておきました。 -- 管理人 (2013-08-28 11:53:31)
- @wikiの方で問題が発生し、管理パスワードがリセットされました。メールでの連絡が取れない状態です。よって当サイトは、更新できなくなりました。 -- 管理人 (2014-03-14 19:12:44)
- http://opengl.html.xdomain.jp/ ←こちらで再開する予定です。。。 -- 管理人 (2014-03-15 20:23:51)
- 23..Xのスキンメッシュアニメーションを読み込んでみる3 がリンク切れなんですが・・・ -- RICE (2014-03-20 10:42:31)
- RICEさん、そのページは作成していません。 -- 管理人 (2014-03-20 19:35:57)
- @wikiからメールで連絡があり、パスワードの再発行に成功しました。当サイトはこのまま継続します。http://opengl.html.xdomain.jp/ ←こちらも予備で継続します。 -- 管理人 (2014-03-24 19:46:40)
- 序盤のコードほとんどそのようですが、 -- RICE (2014-03-26 13:09:57)
- •序盤のコードほとんどそのようですがglutInitDisplayMode()が先でないと描画でノイズが出ます -- RICE (2014-03-26 13:11:07)
- RICEさん、少しずつ直していきます。 -- 管理人 (2014-03-26 21:04:40)
- Xファイルの解析関係のページですが、{}がインデントされてないので、入れ子構造がわかりにくいです。インデントしたら行が横に長くなるからというのはわかるのですが。 -- RICE (2014-04-16 15:56:48)
- すいません。よく見ると微妙にインデントされてますね。もうちょっとあけて欲しいですが・・・ -- RICE (2014-04-16 16:09:48)
- RICEさん、メタセコイアで.xを保存すると当サイトで公開している状態になります。それをそのまま使っているので、このような事になっております。データを変えると読み込みプログラムの方で読み込めなくなる可能性もあるので変更はできません。ご了承ください。 -- 管理人 (2014-04-16 16:14:13)
- ページ目次が左にズラッとならんでいて、毎回下の方にスクロールして探すのが手間なんで、各ページに「前へ」「次へ」のリンクが欲しいです -- RICE (2014-05-06 14:08:28)
- RICEさん、ご指摘ありがとうございます。各チュートリアルへのリンクを作成しました。少しずつ形を整えて行きます。 -- 管理人 (2014-05-06 22:00:12)
- 行列:回転行列 のページですが、なぜ、rotate[5]=cos(radian);rotate[6]=sin(radian);rotate[9]=-sin(radian);rotate[10]=cos(radian);と、DirectX側の配列の並びで入れるのでしょうか? -- RICE (2014-09-02 09:57:50)
- RICEさん、rotate[5]=cos(radian);rotate[6]=sin(radian);rotate[9]=-sin(radian);rotate[10]=cos(radian);というのはOpenGL、DirectX共に同じです。詳しくは平行移動のページの行列の並びを見れば、双方共に同じである事がわかると思います。 -- 管理人 (2014-09-02 17:57:28)
- 一次配列上はOpenGLでもDirectXでも並びは同じだったんですね。勘違いしてました。 -- RICE (2014-11-10 10:31:50)
- http://opengl.html.xdomain.jp/ ←予備サイトを閉鎖しました。 -- 管理人 (2014-11-23 15:00:03)
- xの階層メッシュ読み込み4のxfile.hのload_Animation()でQuaternion[i].y=Quaternion[i].y*-1;Quaternion[i].z=Quaternion[i].z*-1;とクォータニオンの符号を反転させているのは何故なんでしょうか? -- RICE (2014-12-10 15:43:59)
- RICEさん、だいぶ前に作ったコードなので忘れましたが、ただの力技だったと思います。そのようにしないと正常なアニメーションにならないので、そうしました。 -- 管理人 (2014-12-11 02:39:00)
- 投影マッピングについてお伺いしたいです。プログラムを実行するとエラーは起こらずボールが転がる画面が表示されるのですが、PNG画像が投影されません。何卒対応頂けないでしょうか。 -- じゅん (2015-12-19 18:39:53)
- じゅんさん、画像パス等は合っているのでしょうか? -- 管理人 (2015-12-26 18:24:19)
- a -- a (2017-07-15 01:15:41)
- VisualStudio2015で勉強しているのですが。やはりバージョンの違いで動かないなどありますか -- 名無しさん (2019-06-10 12:18:50)
- Cyberdeliaで作成した.xデータを表示すると90°回転します。どのあたりを見たらいいのでしょぷか? よろしくお願いいたします -- サヌジー (2020-07-16 20:06:10)
- libjpeg.libの作り方が分かりません。。。 -- 名無し (2021-03-31 20:41:18)
- C++/CLIで画面遷移しています。画面毎に動画を映しているのですが遷移を繰り返すとスタックオーバーフローで停止してしまいます。改善方法がありますでしょうか。 -- asa (2022-07-11 19:11:49)
- 点や線や円とかをを描画するプログラムまで行ったのですが文字や画像を表示させようとするとエラーが起きます。何故でしょうか。 -- 名無しさん (2022-10-01 17:10:33)
- font->DrawStringW(10,120,L"こんにちは OpenGLの世界!!"); ここの120の後のLがエラーを起こしています -- 名無しさん (2022-10-01 17:13:10)
- Visual Studio2015で勉強している名無しさん、当サイトのプログラムはVisual Studio2012かVisual Studio2022で作成しています。 バージョン違いで動かないというのはC/C++の規格が変わったり、OSが32ビットから64ビットになりWin32apiからWin64apiへの変化等で起きます。 -- 管理人 (2023-10-22 21:14:27)
- サヌジーさん、再びキーフレームのページでも触れていますが、Cyberdeliaは、合成行列タイプの アニメーションデータは階層構造が正しく生成できないようです。 -- 管理人 (2023-10-22 22:05:44)
- libjpeg.libの作り方がわからない名無しさん、暇ができたらページを作ります。 -- 管理人 (2023-10-22 22:07:14)
- asaさん、C++/CLIで画面遷移という状況がどういう状況かわかりませんが、おそらく動画のメモリを解放していないのではないでしょうか? -- 管理人 (2023-10-22 22:16:41)
- 文字や画像を表示させようとするとエラーが起きる名無しさん、『困った時は』のページに解決策を書いておきました。 -- 管理人 (2023-10-22 22:21:47)
#comment
----
2023-10-22T22:21:47+09:00
1697980907
-
メニューを表示する(64ビット)
https://w.atwiki.jp/opengl/pages/331.html
<p>FreeGlut のウインドウハンドルを取得してウインドウプロシージャを置き換えると<br />
win64api のメニューが使えます。<br />
一応、32ビットと64ビットの両方に対応するプログラムにしておきました。</p>
<p><img alt="menu" src="https://img.atwiki.jp/opengl/attach/331/935/menu.png" style="width:655px;height:525px;" /></p>
<p><span style="color:rgb(42,42,42);font-family:arial, helvetica, '繝偵Λ繧ョ繝手ァ偵ざ Pro W3', 'Hiragino Kaku Gothic Pro', Osaka, '繝。繧、繝ェ繧ェ', Meiryo, 'MS P繧エ繧キ繝け', clean, sans-serif;font-size:12.16px;">
resource.h</span></p>
<table border="1" cellpadding="1" cellspacing="1" style="width:600px;">
<tbody>
<tr>
<td>#pragma once<br />
#define IDR_MENU1 100<br />
#define ID_EXIT 101<br />
#define ID_TEST 102<br />
#define ID_A 103<br />
#define ID_B 104<br />
#define ID_Menu 105<br />
#define ID_Whats 106<br />
#define ID_Help 107</td>
</tr>
</tbody>
</table>
<p><span style="color:rgb(42,42,42);font-family:arial, helvetica, '繝偵Λ繧ョ繝手ァ偵ざ Pro W3', 'Hiragino Kaku Gothic Pro', Osaka, '繝。繧、繝ェ繧ェ', Meiryo, 'MS P繧エ繧キ繝け', clean, sans-serif;font-size:12.16px;">
menu.rc</span></p>
<table border="1" cellpadding="1" cellspacing="1" style="width:600px;">
<tbody>
<tr>
<td>
<p>#include "resource.h"</p>
<p>IDR_MENU1 MENU<br />
BEGIN<br />
POPUP "File"<br />
BEGIN<br />
MENUITEM "Exit", ID_EXIT<br />
END<br />
POPUP "Test"<br />
BEGIN<br />
MENUITEM "てすつ", ID_TEST<br />
END<br />
POPUP "Option"<br />
BEGIN<br />
MENUITEM "A", ID_A<br />
MENUITEM "B", ID_B<br />
MENUITEM "めにゅ~", ID_Menu<br />
MENUITEM "whats?", ID_Whats<br />
END<br />
MENUITEM "ヘルプ", ID_Help<br />
END</p>
</td>
</tr>
</tbody>
</table>
<p>main.cpp</p>
<table border="1" cellpadding="1" cellspacing="1" style="width:600px;">
<tbody>
<tr>
<td>
<p>#pragma comment(linker, "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")</p>
<p>#include <GL/freeglut/freeglut.h><br />
#include "resource.h"</p>
<p>//FreeGlutのウインドウプロシージャを置き換える為の変数<br />
WNDPROC WndProc = NULL; //元のウィンドウプロシージャ<br />
HWND hWnd2 = NULL; //ウィンドウハンドル<br />
HMENU hMenu = NULL; //メニュー</p>
<p>//Windowのサイズ<br />
int width = 640;<br />
int height = 480;</p>
<p>//回転用<br />
float anglex = 0.0f;<br />
//白<br />
GLfloat white[] = { 1.0, 1.0, 1.0, 1.0 };</p>
<p>//置き換えた後のプロシージャ<br />
LRESULT CALLBACK WndProc2(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{<br />
switch (msg) {<br />
case WM_SIZE:<br />
return 0;<br />
case WM_COMMAND:<br />
switch (LOWORD(wParam)) {<br />
case ID_EXIT:<br />
PostQuitMessage(0);<br />
}<br />
return 0;<br />
case WM_DESTROY:<br />
exit(0);<br />
break;<br />
default:<br />
if (WndProc) {<br />
return CallWindowProc(WndProc, hWnd, msg, wParam, lParam);<br />
}<br />
else {<br />
return DefWindowProc(hWnd, msg, wParam, lParam);<br />
}<br />
}<br />
}</p>
<p>//ウィンドウの検索<br />
BOOL CALLBACK enumWindowsProc(HWND hWnd, LPARAM lParam) {<br />
HANDLE hModule = (__int64*)GetWindowLongPtr(hWnd, GWLP_HINSTANCE);<br />
if (GetModuleHandle(NULL) == hModule) {<br />
wchar_t ClassName[256];<br />
GetClassNameW(hWnd, ClassName, sizeof(ClassName) /
sizeof(ClassName[0]));<br />
if (wcsncmp(ClassName, (wchar_t*)L"FREEGLUT", wcslen(ClassName)) == 0)
{<br />
hWnd2 = hWnd;<br />
return FALSE;<br />
}<br />
}<br />
return TRUE;<br />
}</p>
<p>void display(void) {<br />
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);<br />
glViewport(0, 0, width, height);<br />
glMatrixMode(GL_PROJECTION);<br />
glLoadIdentity();</p>
<p> gluPerspective(30.0, (double)width / (double)height, 1.0, 1000.0);<br />
glMatrixMode(GL_MODELVIEW);<br />
glLoadIdentity();</p>
<p> gluLookAt(150.0, 150.0, -150.0,<br />
0.0, 0.0, 0.0,<br />
0.0, 1.0, 0.0);</p>
<p> glMaterialfv(GL_FRONT, GL_DIFFUSE, white);<br />
//回転<br />
glRotatef(anglex, 1.0f, 0.0f, 0.0f);//X軸を回転<br />
glutSolidSphere(40.0, 16, 16);</p>
<p> glutSwapBuffers();<br />
}<br />
void idle(void) {<br />
anglex += 2.0f;<br />
Sleep(1);<br />
glutPostRedisplay();<br />
}<br />
void Init() {<br />
glClearColor(0.3f, 0.3f, 0.3f, 1.0f);<br />
glEnable(GL_DEPTH_TEST);<br />
//ワイヤーフレーム<br />
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);<br />
}<br />
int main(int argc, char* argv[]) {<br />
glutInit(&argc, argv);<br />
glutInitWindowPosition(100, 100);<br />
glutInitWindowSize(width, height);<br />
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);<br />
glutCreateWindow("メニュー表示");<br />
//FreeGlutのウインドウハンドルとウインドウプロシージャを置き換える<br />
EnumWindows(enumWindowsProc, 0);<br />
if (hWnd2) {<br />
WndProc = (WNDPROC)GetWindowLongW(hWnd2, GWLP_WNDPROC);<br />
SetWindowLong(hWnd2, GWLP_WNDPROC, (LRESULT)WndProc2);<br />
}<br />
else {<br />
return false;<br />
}<br />
hMenu = LoadMenu(GetModuleHandle(NULL), MAKEINTRESOURCE(IDR_MENU1));<br />
if (hMenu) {<br />
SetMenu(hWnd2, hMenu);<br />
}<br />
else {<br />
return false;<br />
}<br />
glutDisplayFunc(display);<br />
glutIdleFunc(idle);<br />
Init();<br />
glutMainLoop();<br />
return 0;<br />
}</p>
</td>
</tr>
</tbody>
</table>
<p> </p>
2023-10-09T23:14:13+09:00
1696860853
-
困った時は
https://w.atwiki.jp/opengl/pages/187.html
**当サイトのプログラムが正常に動作しない場合
>まずは OpenGL とグラフィックスカードのドライバを最新のものにして下さい。
>それでも解決しない場合はコメント板にて連絡を下さい。
**コンソール画面を消す
> #pragma comment(linker, "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
>以前のVisual Studio 2012辺りまでは、このプラグマでコンソール画面を消す事ができました。
>もちろん今でも可能なのですが、現在のVisual Studio 2022ではデフォルトでプロジェクトの
>プロパティ、リンカーのシステムのサブシステムの項目が『コンソール (/SUBSYSTEM:CONSOLE)』
>になってしまっています。
>これでは最初からプラグマコメントが入力されているので除去できません。
>そこで、この項目を『設定なし』に変更してしまいましょう。
>これで以前と同じように当サイトのプログラムが動作します。
**(ntdll.dll)で例外がスローされました。のエラーが出る
>時々デバッグ実行すると、このエラーが出る事があります。
>&image(ntdll.png)
>これはntdll.dllが色々なインストーラーで上書きされて修正されていないバージョンのntdll.dllに
>なっているために起きるようです。
>https://www.exefiles.com/ja/dll/ntdll-dll/
>こちらのページに修正方法が書かれています。が、上手く直りませんでした。
>対処方法としては、コンソール画面を消すか、デバッグなしで開始をすればこのエラーは出ません。
**C++/CLIが無い
>Visual Studio 2022をインストールする時にC++/CLI自体はインストールされません。
>C++/CLIは.NET Frameworkが無いと動作しません。
>Windowsの 『スタート』メニューを選択して、『Visual Studio installer』を検索して『Visual Studio installer』を選択します。
>インストールされているVisual Studioのバージョンの横にある『変更』ボタンを押します。
>&ref(CLI_1.png,,width=640,height=320,title=CLI1)
>『個別のコンポーネント』タブを選択します。
>&ref(CLI_2.png,,width=640,height=320,title=CLI2)
>『コンパイラー、ビルドツール、およびランタイム』まで下にスクロールし、『v143 ビルドツールのC++/CLI サポート(最新)』を選択します。
>&ref(CLI_3.png,,width=640,height=320,title=CLI3)
>『変更』ボタンを押すと必要なファイルがダウンロードされて、Visual Studioが更新されます。
>これでC++/CLIが使えるようになりました。
**構文エラー:__RPC__out_xcount_part が出る
>SDKのパスが追加されていないので
>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include
>を、プロジェクトのIncludeのディレクトリに追加するとコンパイルが通ります。
**GDI+を使ったプログラムでエラーが大量に出る
>objbase.h を最初にインクルードしないと
>エラーが大量に出る模様です。
**固定機能編:文字列描画のソースコードで C2664 'void GLFONT::DrawStringW(int,int,wchar_t *,...)':
**引数 3 を 'const wchar_t [18]' から 'wchar_t *' へ変換できません。のエラーが出る
>これは、C++では文字列リテラルの型はconst wchar[]で、これを実引数に使用するとconst wcharに変換され、
>関数の引数がwcharだと互換性がないというものらしいです。
>
>解決策1
>メニュー プロジェクト プロパティ [C/C++]→[すべてのオプション]→[その他のオプション]に
>/Zc:strictStrings-
>と記入して下さい。
>そのまま動きます。
>これは文字列リテラル型の変換の無効化のオプションです。
>メニュー プロジェクト プロパティ [C/C++]→[コマンドライン]→[追加のオプション]に記入しても動きます。
>
>解決策2
>81行目の
>font->DrawStringW(10,120,L"こんにちは OpenGLの世界!!");
>を
>font->DrawStringW(10,120,(wchar_t*)L"こんにちは OpenGLの世界!!");
>に変えます。
>
>91行目の
>font = new GLFONT(L"MS明朝", 24);
>を
>font = new GLFONT((wchar_t*)L"MS明朝", 24);
>に変えます。
>これで動きます。
>型キャストです。
*GUI編 :Win32API のプログラムが軒並み動かない。。。
>これに関しては Win64API とWin32API で違う部分があるからです。
>32ビットと64ビット両方に互換性のあるコードを作るための構文も新たに新設されました。
>少しずつ64ビット版のプログラムも出して行きます。
**Visual Studio 2015 にIDE(統合開発環境)が無い
>Visual Studio 2013 まではIDEが付いていました。
>でも、Visual Studio 2015 にはありません。。。
>X64(64bit)の開発に慣れてもらうためなのか、コマンドラインの使い方を覚えてもらうためなのかはわかりませんが。。。
>と、言ってもコマンドプロンプト(ターミナル)を使ってコンパイルとかしていると面倒くさいです。
>やはりGUIがバッチリなIDEでプログラミングしたいですね。
>という訳で、フリーの統合開発環境、 Eclipse(エクリプス)で Visual C++ をコンパイルできるようにします。
>
>Visual Studio のダウンロードページに以前のバージョンの Visual Studio があるので、2015 を選択します。
>ダウンロードの All Downloads を選択すると非表示になっていた Visual Studio Community 2015 が現れますが、
>Not available(利用不可)となっています。
>利用不可なのでは無く完全にありません。他の C# や Visual Basic にはあるようですが。。。
>
>要るのかどうかわかりませんが、Visual Studio 2015 Shell(Isolated) の Japanese の DVD を選択して Download します。
>&ref(https://img.atwiki.jp/opengl/attach/187/730/visual%20studio%202015_1.png,,width=640,height=320,title=visual studio 2015_1)
>
>ダウンロードしたファイルを右クリックしてマウントします。
>今では DVD の ISO イメージを Windows 標準機能で仮想ドライブにする事ができます。
>開くボタンを押して仮想 DVD ドライブの vs_isoshell.exe を実行してインストールします。
>
>続いて、Visual C++ Build Tools for Visual Studio 2015 の Japanese の X64 の DVD を選択して Download します。
>先ほどと同じように、ダウンロードした ISO イメージをマウントして開き、VisualCppBuildTools_Full を実行してインストールします。
>&ref(https://img.atwiki.jp/opengl/attach/187/731/visual%20studio%202015_2.png,,width=640,height=240,title=visual studio 2015_2)
>
>今度は、Visual C++ Build Tools for Visual Studio 2015 の Japanese の X86 の DVD を選択して Download します。
>また同じように、ダウンロードした ISO イメージをマウントして開き、VisualCppBuildTools_Full を実行してインストールします。
>&ref(https://img.atwiki.jp/opengl/attach/187/732/visual%20studio%202015_3.png,,width=640,height=240,title=visual studio 2015_3)
>
>ここまで出来たら、仮想 DVD ドライブが増えているのでエクスプローラーの PC のデバイスとドライブにある仮想 DVD ドライブを
>右クリックして取り出しを選択します。
>すると仮想 DVD ドライブがアンマウントされて無くなりましたね?
>同様にすべての仮想 DVD ドライブを取り出して無くします。
>
>Eclipse 2023
>https://mergedoc.osdn.jp/
>
>上記サイトから Eclipse 2023(最新)をダウンロードしてインストールします。
>&ref(https://img.atwiki.jp/opengl/attach/187/740/eclipse_2023_1.png,,width=640,height=320)
>
>C/C++ の Windows X64 版の Eclipse をダウンロードしてインストールします。
>&ref(https://img.atwiki.jp/opengl/attach/187/734/eclipse_2023_2.png,,width=640,height640)
>
>初回はワークスペースの設定が出ますが、そのまま設定して起動します。
>メニューのヘルプの新規ソフトウェアのインストールを選択します。
>&ref(https://img.atwiki.jp/opengl/attach/187/741/eclipse_2023_3.png,,width=320,height=320)
>
>すべての使用可能なサイト を選択し、プログラミング言語のプルダウンをクリックして
>C/C++ Visual C++ サポート(実験用) を選択して次へボタンを押します。
>&ref(https://img.atwiki.jp/opengl/attach/187/742/eclipse_2023_4.png,,width=640,height=640)
>
>C/C++ Visual C++ Support(experimental) をインストールします。
>次へボタンを押してください。
>&ref(https://img.atwiki.jp/opengl/attach/187/743/eclipse_2023_5.png,,width=640,height=320)
>
>と、ここで Just JRE for IDE Packages のバージョンが低いので修復インストールが必要です。
>次へボタンを押してください。
>&ref(https://img.atwiki.jp/opengl/attach/187/744/eclipse_2023_6.png,,width=640,height=320)
>
>また次へボタンを押して、ソフトウェアの使用条件に同意して完了ボタンを押します。
>&ref(https://img.atwiki.jp/opengl/attach/187/745/eclipse_2023_7.png,,width=640,height=320)
>
>画面下部のステータスバーにインストール状況が表示されます。
>&ref(https://img.atwiki.jp/opengl/attach/187/746/inst.png,,width=480,height=120)
>
>インストールが終わると IDE の再起動が要求されるので再起動します。
>&ref(https://img.atwiki.jp/opengl/attach/187/747/inst_2.png,,width=640,height=240)
>
>ここまで出来たらパス(環境変数)を設定します。
>
>Visual C++ 2015 x64 Native Build Tools Command Prompt が Visual C++ 2015 のコンパイラです。(64bit)
>
>だいたい、次のパスに Visual C++ 2015 x64 Native Build Tools Command Prompt.exe があると思います。
>C:\Program Files (x86)\Microsoft Visual C++ Build Tools\
>
>Visual C++ 2015 x64 Native Build Tools Command Prompt.exe をダブルクリックして起動します。
>&image(visual c++2015_1.png)
>次のコマンドを入力して各環境変数を取得します。
>|echo %LIB%|
>|echo %INCLUDE%|
>|where cl|
>|where link|
>&image(visual c++2015_2.png)
>それぞれの項目をマウスでクリックしながら移動するとドラッグできるので範囲コピーします。
>マウスドラッグで選択範囲ができたら CtrL + C でコピーできます。
>&image(visual c++2015_3.png)
>Eclipse を起動してメニューのファイル、新規、プロジェクトの順で選択します。
>&image(visual c++2015_4.png)
>C/C++ の C/C++ プロジェクトを選択して次へボタンを押します。
>&image(visual c++2015_5.png)
>ALL の C++ 管理ビルドを選択して次へボタンを押します。
>&image(visual c++2015_6.png)
>プロジェクト名を適当に付けて空のプロジェクト、Microsoft Visual C++にして次へ、完了ボタンを押します。
>&image(visual c++2015_7.png)
>メニューのプロジェクト、プロパティーを選択します。
>&image(visual c++2015_8.png)
>C/C++ ビルドを展開して環境をクリック、追加ボタンを押します。
>&image(visual c++2015_9.png)
>名前は LIB で値に先ほどのLIBの値をコピー&ペーストします。
>&image(visual c++2015_10.png)
>&image(visual c++2015_11.png)
>OKボタンを押したらまた追加ボタンを押して、今度は名前にINCLUDEと入力して
>値の所に先ほどのINCLUDEの値をコピー&ペーストします。
>&image(visual c++2015_12.png)
>&image(visual c++2015_13.png)
>&image(visual c++2015_14.png)
>適用ボタンを押します。
>&image(visual c++2015_15.png)
>次はC/C++ビルドの設定をクリックしてツール設定をクリックします。
>&image(visual c++2015_16.png)
>Cコンパイラー(cl)のコマンドの所に先ほどのwhere clの値をコピー&ペーストします。
>&image(visual c++2015_17.png)
>&image(visual c++2015_18.png)
>Linker(link)をクリックして
>&image(visual c++2015_19.png)
>コマンドの所に先ほどのwhere linkの値をコピー&ペーストします。
>&image(visual c++2015_20.png)
>&image(visual c++2015_21.png)
>適用して閉じるボタンを押します。
>
>これでパスの設定が終わりました。
>あとはソースファイルとかを追加したりしてビルドすれば実行ファイルが作れます。
**グラフィックスカードに関して
>グラフィックスカードは2023年9月現在、NVIDIA GeForceシリーズとATI RADEONシリーズ、
>Intel Arcシリーズが一般向けに販売されています。
>
>プログラミングやゲームの用途にも依りますが、2023年現在はNVIDIA GeForce GTX1660 の
>性能が最低ラインかな?と思います。
>
>https://www.4gamer.net/games/022/G002210/20190411142/
>
>こちらの記事にもありますが GeForce RTX でしか使えなかったリアルタイムレイトレーシングに
>GeForce 425.31 Driver を入れる事で Geforce GTX でもリアルタイムレイトレーシングが
>できるようになりました。
>
>当サイト管理人の推奨環境は NVIDIA GeForce RTX 2060 Super 以上です。
>
>以下は旧記事
>&s(){グラフィックスカードは2013年3月現在、NVIDIA GeForceシリーズと}
>&s(){ATI RADEONシリーズが一般向けに販売されていますが、プログラミング用途で}
>&s(){使用するのであれば NVIDIA GeForce をおススメします。}
>
>&s(){というのは、GeForceで作ったプログラムがRADEONで正常に表示されないという}
>&s(){ケースがチラホラあるからです。}
>
>&s(){というのも、NVIDIAドライバはDirectX、OpenGLの規格外のプログラミング実装していても}
>&s(){大抵は普通に動いてくれるのに対し、ATI RADEONドライバはDirectX、OpenGLの規格に}
>&s(){厳密に準拠しすぎていて、少しでも規格から外れると正常に動作しないという感じに}
>&s(){なっているからです。}
>&s(){最終的にデバッグするにはATI RADEONで動作テストするのが良いかもしれませんが。}
>
>&s(){また、プログラミングやゲームの用途にも依りますが NVIDIA GeForce GTX660 の}
>&s(){性能があれば十分で、それ以上は財布の中身と相談すれば良いでしょう。}
**パソコン向けとワークステーション向けのグラフィックスカード
>グラフィックスカードには一般向けに NVIDIA Geforce と ATI Radeon が
>ありますが 3DCG、CAD向けに NVIDIA Quadro と ATI Firepro があります。
>
>Geforce と Radeon は DirectX に最適化されていてゲームや動画再生など
>一般的な使用に適しています。
>対して、Quadro と Firepro は OpenGL に最適化されていて高額な3DCGソフト等で
>数百~数千万ポリゴンのシーンを快適に編集できたりします。
>
>当サイトは『OpenGLプログラミングメモ』ですが、OpenGL に最適化されている
>Quadro や Firepro を使えば良いのでしょうか?
>
>そうではありません。
>Quadro や Firepro はゲームなどの一般的な用途では逆に Geforce や Radeon
>よりも遅くなってしまいます。
>得意分野がまるで違うという事です。
>
>CAD や 3DCG作成で使用されるワークステーションでは Quadro や Firepro 。
>ゲーム、プログラミングなどの一般的な用途のパソコンでは Geforce か Radeon
>を使いましょう。
&youtube(https://www.youtube.com/watch?v=2W7H6OV1Pno){425,350}
----
2023-10-09T22:46:08+09:00
1696859168