OpenGLプログラミングメモ内検索 / 「OFF」で検索した結果
-
スポットライト
...替え void OFF();//シェーダー解除 ~GLSL(); }; void GLSL ReadShaderCompile(GLuint Shader, const char *File){ FILE *fp; char *buf; GLsizei size, len; GLint compiled; fopen_s( fp,File, rb ); if(!fp) printf( ファイルを開くことができません %s\n , File); fseek(fp, 0, SEEK_END); size = ftell(fp); buf = (GLchar *)malloc(size); if (buf == NULL) { printf( メモリが確保できませんでし...
-
異方性フィルタリング
...スペースキーでON/OFFを切り替えます。 ファイル main.cpp lodepng.cpp lodepng.h maptip.png main.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #pragma comment(lib, glew32.lib ) #include GL/glew.h #include GL/freeglut/freeglut.h #include stdio.h #include string #include lodepng.h using namespace std; #define WIDTH 640 #define HEIGHT 480 bool flag = false; GLuint Tex[1]; s...
-
頂点シェーダー
...替え void OFF();//シェーダー解除 ~GLSL(); }; void GLSL ReadShaderCompile(GLuint Shader, const char *File){ FILE *fp; char *buf; GLsizei size, len; GLint compiled; fopen_s( fp,File, rb ); if(!fp) printf( ファイルを開くことができません %s\n , File); fseek(fp, 0, SEEK_END); size = ftell(fp); buf = (GLchar *)malloc(size); if (buf == NULL) { printf( メモリが確保できませんでし...
-
フラグメントシェーダー
...替え void OFF();//シェーダー解除 ~GLSL(); }; void GLSL ReadShaderCompile(GLuint Shader, const char *File){ FILE *fp; char *buf; GLsizei size, len; GLint compiled; fopen_s( fp,File, rb ); if(!fp) printf( ファイルを開くことができません %s\n , File); fseek(fp, 0, SEEK_END); size = ftell(fp); buf = (GLchar *)malloc(size); if (buf == NULL) { printf( メモリが確保できませんでし...
-
Bullet:セットアップ
...ibファイルの生成(OFFだとDemoのみ) “USE_DX11″はD3DX11を使用しているのでOFF [Generate]ボタンでVS2012プロジェクト生成 作成された BULLET_PHYSICS.sln を開いて INSTALL プロジェクトだけを Debug と Release でビルドします。 その際、エラーが出ますが、一応libが作成されているので良しとします。 Demos フォルダにデモが作成されているので色々試してみましょう。
-
拡散照明
...替え void OFF();//シェーダー解除 ~GLSL(); }; void GLSL ReadShaderCompile(GLuint Shader, const char *File){ FILE *fp; char *buf; GLsizei size, len; GLint compiled; fopen_s( fp,File, rb ); if(!fp) printf( ファイルを開くことができません %s\n , File); fseek(fp, 0, SEEK_END); size = ftell(fp); buf = (GLchar *)malloc(size); if (buf == NULL) { printf( メモリが確保できませんでし...
-
鏡面反射
...替え void OFF();//シェーダー解除 ~GLSL(); }; void GLSL ReadShaderCompile(GLuint Shader, const char *File){ FILE *fp; char *buf; GLsizei size, len; GLint compiled; fopen_s( fp,File, rb ); if(!fp) printf( ファイルを開くことができません %s\n , File); fseek(fp, 0, SEEK_END); size = ftell(fp); buf = (GLchar *)malloc(size); if (buf == NULL) { printf( メモリが確保できませんでし...
-
GLSLとの変数のやり取り
...替え void OFF();//シェーダー解除 ~GLSL(); }; void GLSL ReadShaderCompile(GLuint Shader, const char *File){ FILE *fp; char *buf; GLsizei size, len; GLint compiled; fopen_s( fp,File, rb ); if(!fp) printf( ファイルを開くことができません %s\n , File); fseek(fp, 0, SEEK_END); size = ftell(fp); buf = (GLchar *)malloc(size); if (buf == NULL) { printf( メモリが確保できませんでし...
-
環境光
...替え void OFF();//シェーダー解除 ~GLSL(); }; void GLSL ReadShaderCompile(GLuint Shader, const char *File){ FILE *fp; char *buf; GLsizei size, len; GLint compiled; fopen_s( fp,File, rb ); if(!fp) printf( ファイルを開くことができません %s\n , File); fseek(fp, 0, SEEK_END); size = ftell(fp); buf = (GLchar *)malloc(size); if (buf == NULL) { printf( メモリが確保できませんでし...
-
三角波の生成
三角波を作成します。 #include stdio.h #include stdlib.h #include string.h #define FileName triangle.wav //例 全長:秒 100 1サイクル:μ秒 20000 #define Cycle 5000 //1サイクル [u sec] #define Length 50 //全長 [sec] #define Max 20000 //max 32768.0f // defines #define STR_RIFF RIFF #define STR_WAVE WAVE #define STR_fmt fmt #define STR_data data #define WAV_MONAURAL 1 #define WAV_STEREO...
-
隠面消去
...今回は、これをON/OFFするプログラムを作りました。 最初に黄色のポリゴンが描画されて次に紫のポリゴンが描画されます。 デプスバッファが有効な時は後から描画された紫のポリゴンがきちんと隠れています。 デプスバッファが無効な時は描画の順番通りに描画されます。 右の画像は紫のポリゴンが奥にあるにもかかわらず手前の黄色のポリゴンを覆っています。 ファイル main.cpp main.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #include GL/freeglut/freeglut.h #define WIDTH 320 #define HEIGHT 240 //黄色 GLfloat yerrow[] = { 1.0f, 1.0f, 0.0f, 1.0f }; //紫 ...
-
ノコギリ波の生成
ノコギリ波を作成します。 #include stdio.h #include stdlib.h #include string.h #define FileName sawtooth.wav //例 全長:秒 100 1サイクル:μ秒 20000 #define Cycle 5000 //1サイクル [u sec] #define Length 50 //全長 [sec] #define Max 20000 //max 32768.0f // defines #define STR_RIFF RIFF #define STR_WAVE WAVE #define STR_fmt fmt #define STR_data data #define WAV_MONAURAL 1 #define WAV_STER...
-
方形波の生成
方形波を作成します。 http //www.rikakoubou.com/oshiro.htmlこちらの『オシロくん』というソフトで波形を表示させてみました。 #include stdio.h #include stdlib.h #include string.h #define FileName square.wav //例 全長:秒 100 1サイクル:μ秒 20000 #define Cycle 5000 //1サイクル [u sec] #define Length 50 //全長 [sec] #define Max 10000 #define Min -10000 // defines #define STR_RIFF RIFF #define STR_WAVE WAVE #define STR_fmt fmt #d...
-
サイン波の生成
サイン波を作成します。 #include stdio.h #include stdlib.h #include string.h #include math.h #define PAI 3.141592653589793 #define FileName sin.wav //例 全長:秒 100 1サイクル:μ秒 20000 #define Cycle 5000 //1サイクル [u sec] #define Length 50 //全長 [sec] #define Max 15000 //max 32768.0f // defines #define STR_RIFF RIFF #define STR_WAVE WAVE #define STR_fmt fmt #define STR_data data ...
-
簡易シャドウイング
...替え void OFF();//シェーダー解除 ~GLSL(); }; void GLSL ReadShaderCompile(GLuint Shader, const char *File){ FILE *fp; char *buf; GLsizei size, len; GLint compiled; fopen_s( fp,File, rb ); if(!fp) printf( ファイルを開くことができません %s\n , File); fseek(fp, 0, SEEK_END); size = ftell(fp); buf = (GLchar *)malloc(size); if (buf == NULL) { printf( メモリが確保できませんでし...
-
左右のチャンネルを操作
ステレオ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...
-
再生速度の変更
データはそのままでサンプリングレートをいじるだけで 再生スピードを変えます。 #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...
-
モノラル化
ステレオ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 ...
-
ボーンオフセット行列
以下は SkinWeights チャンクですが、最後の方にある matrixOffset は ボーンオフセット行列と呼ばれます。 SkinWeights { Joint_2 ; //transformNodeName ボーン名 32; //nWeights ボーンの影響を受ける頂点の数 0, // ↓ vertexIndices ボーンの影響を受ける頂点のインデックス ・ ・ ・ 0.001631, // ↓ weights ボーンの影響を受ける各頂点の重み ・ ・ ・ 1.000000,0.000000,-0.000000,0.000000, // ↓ matrixOffset 0.000000,1.000000,-0.000000,0.000000, //メッシュの頂点をボーン空間に変換する行列 -0.000...
-
サンプリングビット変換
サンプリングビット数を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 ファイルからボーカルを除去します。 #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ファイルの一部分を抜き出します。 #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...
-
ボリュームの変換
ボリュームを変えます。 最大値、最小値を超えた場合は音が割れてしまうので なるべく範囲内のボリュームにした方が良いです。 今回はサイン波の生成で作成した.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 #...
-
距離減衰
...替え void OFF();//シェーダー解除 ~GLSL(); }; void GLSL ReadShaderCompile(GLuint Shader, const char *File){ FILE *fp; char *buf; GLsizei size, len; GLint compiled; fopen_s( fp,File, rb ); if(!fp) printf( ファイルを開くことができません %s\n , File); fseek(fp, 0, SEEK_END); size = ftell(fp); buf = (GLchar *)malloc(size); if (buf == NULL) { printf( メモリが確保できませんでし...
-
フォグ
...替え void OFF();//シェーダー解除 ~GLSL(); }; void GLSL ReadShaderCompile(GLuint Shader, const char *File){ FILE *fp; char *buf; GLsizei size, len; GLint compiled; fopen_s( fp,File, rb ); if(!fp) printf( ファイルを開くことができません %s\n , File); fseek(fp, 0, SEEK_END); size = ftell(fp); buf = (GLchar *)malloc(size); if (buf == NULL) { printf( メモリが確保できませんでし...
-
左右バランスの変更
音を左右に振ります。 #include stdio.h #include stdlib.h #include string.h #include algorithm using namespace std; #define INFileName sin.wav #define OUTFileName balance.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_MONAURAL 1 #define WAV_STERE...
-
sin波状にボリューム変換
sin波状にボリュームを変化させます。 #include stdio.h #include stdlib.h #include string.h #include algorithm using namespace std; #define INFileName in.wav #define OUTFileName sinamp.wav #define PAI 3.141592653589793 #define Length 0.01 // defines #define STR_RIFF RIFF #define STR_WAVE WAVE #define STR_fmt fmt #define STR_data data #define WAV_MONAURAL 1 #define WA...
-
床面反射
...替え void OFF();//シェーダー解除 ~GLSL(); }; void GLSL ReadShaderCompile(GLuint Shader, const char *File){ FILE *fp; char *buf; GLsizei size, len; GLint compiled; fopen_s( fp,File, rb ); if(!fp) printf( ファイルを開くことができません %s\n , File); fseek(fp, 0, SEEK_END); size = ftell(fp); buf = (GLchar *)malloc(size); if (buf == NULL) { printf( メモリが確保できませんでし...
-
GLSL:テクスチャマッピング
...替え void OFF();//シェーダー解除 ~GLSL(); }; void GLSL ReadShaderCompile(GLuint Shader, const char *File){ FILE *fp; char *buf; GLsizei size, len; GLint compiled; fopen_s( fp,File, rb ); if(!fp) printf( ファイルを開くことができません %s\n , File); fseek(fp, 0, SEEK_END); size = ftell(fp); buf = (GLchar *)malloc(size); if (buf == NULL) { printf( メモリが確保できませんでし...
-
MESH VIEW(メッシュビューア)
...示をメニューで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年...
-
環境マッピング
...替え void OFF();//シェーダー解除 ~GLSL(); }; void GLSL ReadShaderCompile(GLuint Shader, const char *File){ FILE *fp; char *buf; GLsizei size, len; GLint compiled; fopen_s( fp,File, rb ); if(!fp) printf( ファイルを開くことができません %s\n , File); fseek(fp, 0, SEEK_END); size = ftell(fp); buf = (GLchar *)malloc(size); if (buf == NULL) { printf( メモリが確保できませんでし...
-
色の反転
...0); glsl.OFF(); glutSwapBuffers(); } void idle(void) { glutPostRedisplay(); } void TexCreate(int NO,char* FileName){ glGenTextures(1, texName[NO]); texture[NO] = new TEXTURE(FileName); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); //テクスチャオブジェクトの作成 glBindTexture(GL_TEXTURE_2D, texName[NO]); //テクスチャの指定 glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,texture[NO]- Width,texture[NO]- Height,0,GL_RGB...
-
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...
-
投影マッピング
...替え void OFF();//シェーダー解除 ~GLSL(); }; void GLSL ReadShaderCompile(GLuint Shader, const char *File){ FILE *fp; char *buf; GLsizei size, len; GLint compiled; fopen_s( fp,File, rb ); if(!fp) printf( ファイルを開くことができません %s\n , File); fseek(fp, 0, SEEK_END); size = ftell(fp); buf = (GLchar *)malloc(size); if (buf == NULL) { printf( メモリが確保できませんでし...
-
オフスクリーンレンダリング
...替え void OFF();//シェーダー解除 ~GLSL(); }; void GLSL ReadShaderCompile(GLuint Shader, const char *File){ FILE *fp; char *buf; GLsizei size, len; GLint compiled; fopen_s( fp,File, rb ); if(!fp) printf( ファイルを開くことができません %s\n , File); fseek(fp, 0, SEEK_END); size = ftell(fp); buf = (GLchar *)malloc(size); if (buf == NULL) { printf( メモリが確保できませんでし...
-
GLSL:マルチテクスチャ
...替え void OFF();//シェーダー解除 ~GLSL(); }; void GLSL ReadShaderCompile(GLuint Shader, const char *File){ FILE *fp; char *buf; GLsizei size, len; GLint compiled; fopen_s( fp,File, rb ); if(!fp) printf( ファイルを開くことができません %s\n , File); fseek(fp, 0, SEEK_END); size = ftell(fp); buf = (GLchar *)malloc(size); if (buf == NULL) { printf( メモリが確保できませんでし...
-
シャドウマッピング
...替え void OFF();//シェーダー解除 ~GLSL(); }; void GLSL ReadShaderCompile(GLuint Shader, const char *File){ FILE *fp; char *buf; GLsizei size, len; GLint compiled; fopen_s( fp,File, rb ); if(!fp) printf( ファイルを開くことができません %s\n , File); fseek(fp, 0, SEEK_END); size = ftell(fp); buf = (GLchar *)malloc(size); if (buf == NULL) { printf( メモリが確保できませんでし...
-
ソフトシャドウ
...替え void OFF();//シェーダー解除 ~GLSL(); }; void GLSL ReadShaderCompile(GLuint Shader, const char *File){ FILE *fp; char *buf; GLsizei size, len; GLint compiled; fopen_s( fp,File, rb ); if(!fp) printf( ファイルを開くことができません %s\n , File); fseek(fp, 0, SEEK_END); size = ftell(fp); buf = (GLchar *)malloc(size); if (buf == NULL) { printf( メモリが確保できませんでし...
-
固定機能:スポットライト
...L_SPOT_CUTOFF, 30.0f ); glLightf( GL_LIGHT0, GL_SPOT_EXPONENT, 10.0f ); //マテリアルの設定 glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, orange); //回転 glRotatef(anglex,1.0f,0.0f,0.0f);//X軸を回転 glCallList(ListID); glutSwapBuffers(); } void idle(void) { anglex+=0.2f; Sleep(1); glutPostRedisplay(); } void Init(){ glClearColor(0.3f, 0.3f, 0.3f, 1.0f); glEnable(GL_DEPTH_TEST); glEnable(GL_...
-
.FBXを読み込んでみる1(解析編)
.FBX を読み込んで表示できると便利です。 .FBX は Autodesk 社の製品の中間ファイルフォーマットです。 3ds Max , Maya , MotionBuilder , Mudbox , Softimage 間のデータを 受け渡す時のために作られました。 その後、Lightwave 3D や CINEMA 4D や Shade でも使えるようになりました。 FBXはバージョンによってファイルの内容が違います。 一般的に使用するには FBX SDK を使うのが良いです。 解析編という事で一応中身を見ておきます。 例によってメタセコイアを使います。http //horsetail.sakura.ne.jp/index.html こちらのサイトに FBXエクスポーター というプラグインがあるのでインストールします。 そしてメタセコイアで立方体を作って四角形面を三角形面にし、FBX...
-
.wav再生(DirectSound)
DirectSound で .wav を再生します。 これまでと同様にウインドウハンドルを取得すれば freeglut と DirectSound を組み合わせて使用できます。 #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #pragma comment(lib, winmm.lib ) #pragma comment(lib, dsound.lib ) #include GL/freeglut/freeglut.h #include mmsystem.h #include dsound.h #include stdio.h #define SAFE_RELEASE(p) {if(p){(p)- Release();(p)=NULL;}}//安全に解放する #define Fi...
-
リッチテキストエディットコントロールを表示する
リッチテキストエディットです。 頑張れば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の階層メッシュアニメーションを読み込んでみる2
それでは、実際に階層構造を作って表示してみる事にします。 今回はアニメーションはせずに、ただ単にモデルを表示するだけです。 2分木構造を再帰関数を使ってデータ処理をする場合、return で戻る先を きちんと把握していないとおかしなデータ構造になってしまいます。 再帰関数というのは一つずつネストを深めて行きます。 なので、return すると1階層戻るのではなく 1 NODE 戻ります。 以下の図で説明すると Frame5 から1階層戻る時は 1回の return で 1階層戻りますが、Frame4 から 1階層戻る時は 1回目の return で Frame3 に戻り、2回目の return でFrame2 に戻り、3回目の return で Frame1 に戻って、やっと1階層戻る事になります。 PNG.h #pragma once #include lodepng.h //...
-
VBO(テクスチャ付)
テクスチャも含めてVBOで描画します。 ファイル main.cpp lodepng.cpp lodepng.h PNG.h sample.png main.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #pragma comment(lib, glew32.lib ) #include gl/glew.h #include GL/freeglut/freeglut.h #include PNG.h #define WIDTH 320 #define HEIGHT 240 GLuint VboId[4];//4つ分 float angle=0.0f; GLuint texID; TEXTURE *texture; //頂点データ 3面を4頂点で作成する 1頂点はx...
-
.Xを読み込んでみる3(読み込み編)
では実際にXファイルを読み込んでみます。 今回は読み込み編という事で3角ポリゴンのみです。http //www.geocities.co.jp/Playtown-Spade/7188/こちらのデータを使わせて頂いています。 事前にメタセコイアで3角ポリゴンに変換してテクスチャを PNG 形式に変換しています。 Xファイルのテンプレートを除去しないと読み込みできません。 PNG.h #include lodepng.h //テクスチャクラス class TEXTURE{ protected LodePNG_Decoder decoder;//デコーダ unsigned char* buffer;//バッファ size_t buffersize, imagesize;//サイズ public TEXTURE(); TEXTURE(const char* FileName)...
-
VBO
VBOです。 頂点配列はPC本体のRAM(メモリ)にデータを置いておいて、 描画する時にビデオカードにデータを転送し、それを使って描画していました。 データの少ない物を描画する分には問題ありませんがポリゴン数の多いモデルを 大量に描画したりする時に一々毎回データを転送していてはかなりの無駄が 生じています。 そこで描画を高速化する為にビデオカードのRAMに予めデータを置いておき PC本体から毎回データを転送しなくても良いようにするのがVBOです。 今回のプログラムは頂点配列の解説で使ったプログラムをVBOにしています。 ファイル main.cpp main.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #pragma comment(lib, glew32.lib ) #inclu...
-
.Xを読み込んでみる4(表示編)
前回の読み込み編ではテンプレート無しで3角ポリゴンの Xファイルしか 読み込めませんでしたが、今回はテンプレートを読み飛ばし、3角と4角ポリゴンの 両方の Xファイルを読み込めるようにしました。 Xファイルは作成するソフトによって癖がありますので全ての3Dアプリが作る Xファイルに 対応する事はできません。とりあえずメタセコイアが作る Xファイルに対応しています。 PNG.h #include lodepng.h //テクスチャクラス class TEXTURE{ protected LodePNG_Decoder decoder;//デコーダ unsigned char* buffer;//バッファ size_t buffersize, imagesize;//サイズ public TEXTURE(); TEXTURE(const char* FileName);...
-
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 ...
-
ファイルを開くコモンダイアログ
オープンファイルダイアログです。 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 名...
-
ファイル保存のコモンダイアログ
名前を付けて保存のダイアログを表示します。 ちなみに、ファイル保存の処理をプログラムしないと実際には保存されません。 あしからず。。。 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 ...
-
@wiki全体から「OFF」で調べる
更新順にページ一覧表示
|
作成順にページ一覧表示
|
ページ名順にページ一覧表示
|
wiki内検索