DirectX9 プログラミングメモ内検索 / 「HLSL:フォン鏡面反射」で検索した結果

検索 :
  • HLSL:フォン鏡面反射
    よく磨きこまれた反射率の高い物体に光が当たると表面が光り輝いているように見えます。 俗に言うハイライトですが、それを表現するのがこのフォン鏡面反射(フォンスペキュラー)です。 HLSL.cpp #include d3dx9.h #include string #define WINDOW_WIDTH  640 //ウインドウの幅 #define WINDOW_HEIGHT  480 //ウインドウの高さ #define SAFE_RELEASE(x) if(x){x- Release();}  using namespace std; LPDIRECT3D9             g_pD3D       = NULL;//Direct3D9 LPDIRECT3DDEVICE9       g_pd3dDevice = NULL;//レンダリングデバイス LPD3DXEFF...
  • メニュー
    Menu トップページ コメント板 DXwrapper総合サイト チュートリアル 空のウインドウを表示する フルスクリーンとウインドウモードを切り替える マウスカーソルを消す 文字を描画する 2Dテクスチャを描画する カーソルキーの取得 MIDI,WAVEの再生 三角形を描画する 四角ポリゴンの描画とテクスチャ設定 行列変換 Xファイルの読み込みと表示 座標指定と複数メッシュの表示 カメラの回転 メッシュの拡大縮小 ズームイン・アウト 指定座標で円運動 ビルボード スキンメッシュアニメーション 頂点シェーダー ピクセルシェーダー HLSL HLSL 環境光 HLSL ランバート拡散照明 HLSL フォン鏡面反射 HLSL クック・トランス金属反射 HLSL カラーシフト 衝突判定 バウンディングスフィア 衝突判定 バウンディングボックスAABB 衝突判定 バウンディングスフィア...
  • HLSL:クック・トランス金属反射
    フォン鏡面反射はプラスチックのような材質を表現するのに適していました。 金属のような材質はクック・トランス金属反射を使います。 HLSL.cpp #include d3dx9.h #include string #define WINDOW_WIDTH  640 //ウインドウの幅 #define WINDOW_HEIGHT  480 //ウインドウの高さ #define SAFE_RELEASE(x) if(x){x- Release();}  #define vec3 D3DXVECTOR3 using namespace std; LPDIRECT3D9             g_pD3D       = NULL;//Direct3D9 LPDIRECT3DDEVICE9       g_pd3dDevice = NULL;//レンダリングデバイス LPD3DXEF...
  • HLSL:環境光
    HLSLで環境光(アンビエントライト)を設定します。環境光はライトの基本であり特別なケースを除き、 ほとんどのゲームやアプリで暗くなり過ぎる部分を緩和するために使用します。 HLSL.cpp #include d3dx9.h #include string #define WINDOW_WIDTH  640 //ウインドウの幅 #define WINDOW_HEIGHT  480 //ウインドウの高さ #define SAFE_RELEASE(x) if(x){x- Release();}  using namespace std; LPDIRECT3D9             g_pD3D       = NULL;//Direct3D9 LPDIRECT3DDEVICE9       g_pd3dDevice = NULL;//レンダリングデバイス LPD3DXEFFE...
  • HLSL
    シェーダーをアセンブラで書くと解かり辛いし再利用性も低くなってしまいます。 High Level Shader Language ( HLSL ) はC言語風で解りやすいシェーダー言語です。 他にもcg言語などがありますがWindowsではHLSLを使うのが一般的です。 HLSL.cpp #include d3dx9.h #define WINDOW_WIDTH  640 //ウインドウの幅 #define WINDOW_HEIGHT  480 //ウインドウの高さ #define SAFE_RELEASE(x) if(x){x- Release();} LPDIRECT3D9             g_pD3D       = NULL;//Direct3D9 LPDIRECT3DDEVICE9       g_pd3dDevice = NULL;//レンダリングデバイス LP...
  • HLSL:ランバート拡散照明
    環境光だけでは照明による色の変化がなく味気ない画像になってしまいます。 そこで物体に陰影を付ける処理がランバート拡散照明(ディフューズライト)です。 HLSL.cpp #include d3dx9.h #include string #define WINDOW_WIDTH  640 //ウインドウの幅 #define WINDOW_HEIGHT  480 //ウインドウの高さ #define SAFE_RELEASE(x) if(x){x- Release();}  using namespace std; LPDIRECT3D9             g_pD3D       = NULL;//Direct3D9 LPDIRECT3DDEVICE9       g_pd3dDevice = NULL;//レンダリングデバイス LPD3DXEFFECT     m_pEf...
  • HLSL:カラーシフト
    逆光で物体に光が遮られた時、光の入射角度によって色調がずれる現象を カラーシフトといいます。自然界ではオーロラが有名です。
  • ズームイン・アウト
    行列変換のチュートリアルでやったプロジェクショントランスフォームで 第2引数の視野角をいじるとズームイン・アウトに近い事ができます。 #include d3d9.h #include d3dx9.h #include dinput.h #define SAFE_RELEASE(p) {if(p){(p)- Release();(p)=NULL;}}//安全に解放する LPDIRECT3D9             g_pD3D       = NULL;//Direct3D9 LPDIRECT3DDEVICE9       g_pd3dDevice = NULL;//レンダリングデバイス LPD3DXFONT    g_pFont   = NULL;//フォント LPD3DXMESH    pMesh   = NULL;//メッシュ D3DMATERIAL9*   pMat...
  • Xファイルの読み込みと表示
    Xファイルを読み込んで表示します。( land.x ) このプログラムではアニメーション無しXファイルのみです。 ディレクショナルライトで1方向からライトで照らしています。 アンビエントライト(環境光)で暗くなり過ぎる部分を緩和します。 #include d3d9.h #include d3dx9.h #include dinput.h #define SAFE_RELEASE(p) {if(p){(p)- Release();(p)=NULL;}}//安全に解放する LPDIRECT3D9             g_pD3D       = NULL;//Direct3D9 LPDIRECT3DDEVICE9       g_pd3dDevice = NULL;//レンダリングデバイス LPD3DXFONT    g_pFont   = NULL;//フォント LPD3...
  • 座標指定と複数メッシュの表示
    タイル( tail.x )とボックス( box.x )を読み込んで表示します。 ボックスは一つのメッシュを座標を変えて複数あるように見せます。   #include d3d9.h #include d3dx9.h #include dinput.h #define SAFE_RELEASE(p) {if(p){(p)- Release();(p)=NULL;}}//安全に解放する LPDIRECT3D9             g_pD3D       = NULL;//Direct3D9 LPDIRECT3DDEVICE9       g_pd3dDevice = NULL;//レンダリングデバイス LPD3DXFONT    g_pFont   = NULL;//フォント LPD3DXMESH    pMesh   = NULL;//メッシュ D3DMATERIAL9* ...
  • メッシュの拡大縮小
    メッシュを拡大、縮小します。 #include d3d9.h #include d3dx9.h #include dinput.h #define SAFE_RELEASE(p) {if(p){(p)- Release();(p)=NULL;}}//安全に解放する LPDIRECT3D9             g_pD3D       = NULL;//Direct3D9 LPDIRECT3DDEVICE9       g_pd3dDevice = NULL;//レンダリングデバイス LPD3DXFONT    g_pFont   = NULL;//フォント LPD3DXMESH    pMesh   = NULL;//メッシュ D3DMATERIAL9*   pMaterials  = NULL;//マテリアル LPDIRECT3DTEXTURE9*  pTexture...
  • カメラの回転
    視点を回転行列で回転させます。 sinやcosなど三角関数を使っても回転はできますが非常に精度が低く誤差が大きいです。 3D座標で回転後の座標を求める場合は回転行列を使った方が良いです。 #include d3d9.h #include d3dx9.h #include dinput.h #define SAFE_RELEASE(p) {if(p){(p)- Release();(p)=NULL;}}//安全に解放する LPDIRECT3D9             g_pD3D       = NULL;//Direct3D9 LPDIRECT3DDEVICE9       g_pd3dDevice = NULL;//レンダリングデバイス LPD3DXFONT    g_pFont   = NULL;//フォント LPD3DXMESH    pMesh   = NULL;...
  • 指定座標で円運動
    指定した座標で円回転します。 #include d3d9.h #include d3dx9.h #define SAFE_RELEASE(p) {if(p){(p)- Release();(p)=NULL;}}//安全に解放する LPDIRECT3D9             g_pD3D       = NULL;//Direct3D9 LPDIRECT3DDEVICE9       g_pd3dDevice = NULL;//レンダリングデバイス LPD3DXFONT    g_pFont   = NULL; //フォント LPDIRECT3DVERTEXBUFFER9 g_pVB        = NULL;//頂点バッファ LPDIRECT3DTEXTURE9  pTexture = NULL; struct THING {   LPD3DXMESH pMesh;  D...
  • ビルボード
    ビルボード処理です。 主に樹木などポリゴン数が多く、背景であまり目立たない部分にあるケースの時に ポリゴン数を抑える目的で使われます。 #include d3d9.h #include d3dx9.h #define SAFE_RELEASE(p) {if(p){(p)- Release();(p)=NULL;}}//安全に解放する LPDIRECT3D9             g_pD3D       = NULL;//Direct3D9 LPDIRECT3DDEVICE9       g_pd3dDevice = NULL;//レンダリングデバイス LPD3DXFONT    g_pFont   = NULL; //フォント LPDIRECT3DVERTEXBUFFER9 g_pVB        = NULL;//頂点バッファ LPDIRECT3DTEXTURE9  p...
  • 文字を描画する
    文字列を描画します。   #include d3d9.h #include d3dx9.h #define SAFE_RELEASE(p) {if(p){(p)- Release();(p)=NULL;}}//安全に解放する LPDIRECT3D9             g_pD3D       = NULL;//Direct3D9 LPDIRECT3DDEVICE9       g_pd3dDevice = NULL;//レンダリングデバイス LPD3DXFONT    g_pFont   = NULL; //フォント   //Direct3D初期化 HRESULT InitD3D( HWND hWnd ) {     //Direct3Dを生成する  if(NULL==(g_pD3D=Direct3DCreate9(D3D_SDK_VERSION))){return E_F...
  • 三角形を描画する
    三角形を描画します。 なぜ三角形なのか?というのもDirectXの描画のほとんどは内部で三角ポリゴンを使っているからです。 全ての基本という事になります。 #include d3d9.h #include d3dx9.h #define SAFE_RELEASE(p) {if(p){(p)- Release();(p)=NULL;}}//安全に解放する LPDIRECT3D9             g_pD3D       = NULL;//Direct3D9 LPDIRECT3DDEVICE9       g_pd3dDevice = NULL;//レンダリングデバイス LPD3DXFONT    g_pFont   = NULL; //フォント LPDIRECT3DVERTEXBUFFER9 g_pVB        = NULL;//頂点バッファ //頂点構造体 str...
  • 行列変換
    三角ポリゴンを行列変換を使用してワールド座標からスクリーン座標に変換します。 ポリゴンの裏面処理を外して両面を見えるようにし、光源処理を外して暗くならないようにします。 #include d3d9.h #include d3dx9.h #define SAFE_RELEASE(p) {if(p){(p)- Release();(p)=NULL;}}//安全に解放する LPDIRECT3D9             g_pD3D       = NULL;//Direct3D9 LPDIRECT3DDEVICE9       g_pd3dDevice = NULL;//レンダリングデバイス LPD3DXFONT    g_pFont   = NULL; //フォント LPDIRECT3DVERTEXBUFFER9 g_pVB        = NULL;//頂点バッファ //頂点...
  • 2Dテクスチャを描画する
    2Dのテクスチャを描画します。 test.png を読み込み、描画しています。 #include d3d9.h #include d3dx9.h #define SAFE_RELEASE(p) {if(p){(p)- Release();(p)=NULL;}}//安全に解放する LPDIRECT3D9             g_pD3D       = NULL;//Direct3D9 LPDIRECT3DDEVICE9       g_pd3dDevice = NULL;//レンダリングデバイス LPD3DXFONT    g_pFont   = NULL;//フォント LPDIRECT3DTEXTURE9  pTexture  = NULL;//テクスチャ LPD3DXSPRITE   pSprite   = NULL;//スプライト //テキスト描画 void Tex...
  • MIDI,WAVEの再生
    DirectMusicを使用してMIDIまたはWAVEファイルを再生します #include d3dx9.h #include dmusici.h #define SAFE_RELEASE(p) {if(p){(p)- Release();(p)=NULL;}}//安全に解放する //#define FileName test.mid #define FileName test.wav LPDIRECT3D9             g_pD3D       = NULL;//Direct3D9 LPDIRECT3DDEVICE9       g_pd3dDevice = NULL;//レンダリングデバイス LPD3DXFONT    g_pFont   = NULL;//フォント // DirectMusicの変数 IDirectMusicPerformance8* ...
  • 四角ポリゴンの描画とテクスチャ設定
    三角形が描画できたなら三角形を二つ組み合わせて四角形も描画できますね。 そして、それにテクスチャ(wall.png)を貼り付けてみます。 #include d3d9.h #include d3dx9.h #define SAFE_RELEASE(p) {if(p){(p)- Release();(p)=NULL;}}//安全に解放する LPDIRECT3D9             g_pD3D       = NULL;//Direct3D9 LPDIRECT3DDEVICE9       g_pd3dDevice = NULL;//レンダリングデバイス LPD3DXFONT    g_pFont   = NULL; //フォント LPDIRECT3DVERTEXBUFFER9 g_pVB        = NULL;//頂点バッファ LPDIRECT3DTEXTURE9  ...
  • カーソルキーの取得
    DirectInputを使用してカーソルキーの取得をします。 test.png を読み込んでカーソルキーの入力に応じて移動させて表示します。 #include d3d9.h #include d3dx9.h #include dinput.h #define SAFE_RELEASE(p) {if(p){(p)- Release();(p)=NULL;}}//安全に解放する LPDIRECT3D9             g_pD3D       = NULL;//Direct3D9 LPDIRECT3DDEVICE9       g_pd3dDevice = NULL;//レンダリングデバイス LPD3DXFONT    g_pFont   = NULL;//フォント LPDIRECT3DTEXTURE9  pTexture  = NULL;//テクスチャ LPD3DX...
  • スキンメッシュアニメーション
    DirectXの最初の難関、スキンメッシュアニメーション。 学習方法は人それぞれですがSDKサンプルのSkinnedMesh.cppからヘルパーライブラリDXUTの関数を外していく 方向でソースファイルを短くすると解りやすいかも知れません。 SkinnedMesh.cpp //-------------------------------------------------------------------------------------- //スキンメッシュアニメーション //-------------------------------------------------------------------------------------- #include d3dx9.h #include SkinnedMesh.h LPDIRECT3D9           ...
  • ピクセルシェーダー
    頂点シェーダーの次はピクセルシェーダーです。 前回と同じく黄色の四角形を表示するプログラムですが、 頂点シェーダーによって赤色に、そしてピクセルシェーダーによって 最終的に白色に変換されて表示されます。 shader.cpp #include d3dx9.h #define WINDOW_WIDTH  640 //ウインドウの幅 #define WINDOW_HEIGHT  480 //ウインドウの高さ #define SAFE_RELEASE(x) if(x){x- Release();}  LPDIRECT3D9             g_pD3D       = NULL;//Direct3D9 LPDIRECT3DDEVICE9       g_pd3dDevice = NULL;//レンダリングデバイス //-------------------------------...
  • フルスクリーンとウインドウモードを切り替える
    Alt + Enter でウインドウモードとフルスクリーンを切り替えます。 //---------------------------------------------------------- // フルスクリーン切り替え ( Alt + Enter ) //-------------------------------------------------------------- #include windows.h #include d3dx9.h #include dxerr9.h #define RELEASE(x) if(x){x- Release();x=NULL;} HINSTANCE g_hInstance  = NULL; // インスタンス・ハンドル HWND  g_hWindow  = NULL; // ウインドウ・ハンドル HMENU  g_hMe...
  • 頂点シェーダー
    ビルボードまでは固定機能パイプラインでした。 スキンメッシュアニメーションからはシェーダープログラムになっています。 DirectX10からはシェーダープログラミングしかできないようになっています。 というワケでシェーダープログラミングにも入門しておきましょう。 いきなりシェーダープログラミングはハードルが高いのでDirectX9から学ぶのが最適です。 では何が違うのでしょう?シェーダー未使用とシェーダー使用の2つのプログラムを用意しました。 どちらも黄色の四角形を表示するプログラムですがシェーダー使用の方は頂点シェーダーによって 赤色に変わっています。   シェーダー未使用 NoShader.cpp #include d3dx9.h #define WINDOW_WIDTH  640 //ウインドウの幅 #define WINDOW_HEIGHT  480 //ウインドウの高さ ...
  • 空のウインドウを表示する
    取りあえず何もないウインドウを表示します。 何もないですがれっきとしたDirectXのプログラムです。   #include d3d9.h #define SAFE_RELEASE(p) {if(p){(p)- Release();(p)=NULL;}}//安全に解放する LPDIRECT3D9             g_pD3D       = NULL; // Direct3D9 LPDIRECT3DDEVICE9       g_pd3dDevice = NULL; // レンダリングデバイス //Direct3D初期化 HRESULT InitD3D( HWND hWnd ) {     //Direct3Dを生成する  if(NULL==(g_pD3D=Direct3DCreate9(D3D_SDK_VERSION))){return E_FAIL;}     //デバ...
  • マウスカーソルを消す
    マウスカーソルを消す //----------------------------------------------------------------------------- // マウスカーソルを消す //----------------------------------------------------------------------------- #include d3d9.h #pragma warning( disable 4996 ) #include strsafe.h #pragma warning( default 4996 ) #define WindowName  L Window1 #define Title   L DirectX9 サンプル マウスカーソルを消す LPDIRECT3D9             g_pD3D  ...
  • @wiki全体から「HLSL:フォン鏡面反射」で調べる

更新順にページ一覧表示 | 作成順にページ一覧表示 | ページ名順にページ一覧表示 | wiki内検索

ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。