トップページ > 記事閲覧
D3D11_TEXTURE_ADDRESS_MODEの変更
名前:猫の湯飲み 日時: 2024/08/27 22:00

現在ハイトマップからポリゴンを生成して地形を描画したいと考えています ですがDrawPolygon32bitIndexed3DToShaderで描画する際に、uvの値が1を超えると、単色で塗りつぶされてしまいます。 D3D11_TEXTURE_ADDRESS_MODEを変更する関数はありますでしょうか? お手数おかけしますがよろしくお願いします
メンテ

Page: 1 |

Re: D3D11_TEXTURE_ADDRESS_MODEの変更 ( No.1 )
名前:管理人 日時:2024/08/28 00:32

はい、SetTextureAddressMode という関数で変更することが出来ます // テクスチャアドレスモードを設定する // Mode : アドレスモード // DX_TEXADDRESS_WRAP // DX_TEXADDRESS_MIRROR // DX_TEXADDRESS_CLAMP // DX_TEXADDRESS_BORDER int SetTextureAddressMode( int Mode ) ; よろしければお使いください m(_ _)m ( 尚、デフォルトでは DX_TEXADDRESS_CLAMP となっています )
メンテ
Re: D3D11_TEXTURE_ADDRESS_MODEの変更 ( No.2 )
名前:猫の湯飲み 日時:2024/08/28 22:08

無事テクスチャが表示出来るようになりました。 ありがとうございました。 一つ質問なのですが、 DrawPolygon32bitIndexed3DToShaderで描画する際、 マルチレンダーターゲットを使用するにはSetRenderTargetToShader以外の設定が必要が必要でしょうか? 以下のコードで通常の描画は出来るのですが、SV_TARGET1に出力した深度が描画されず、悩んでおります <描画部分>-------------------------------------- SetRenderTargetToShader(1, DepthBufferGraphHandle); SetUsePixelLighting(TRUE); //// Zバッファを使用する //SetUseZBufferFlag(TRUE); //// Zバッファに書き込みも行う //SetWriteZBufferFlag(TRUE); // 使用する頂点シェーダーのセット SetUseVertexShader(vshandle); // 使用するピクセルシェーダーをセット SetUsePixelShader(pshandle); // 使用するテクスチャを0番にセット SetUseTextureToShader(0, texhandle); // 使用する法線マップを1番にセット SetUseTextureToShader(1, normalhandle); SetUseTextureToShader(2, tonehandle); SetTextureAddressMode(DX_TEXADDRESS_WRAP); DrawPolygon32bitIndexed3DToShader(vex.data(), vex.size(), index.data(), polygonNum); SetTextureAddressMode(DX_TEXADDRESS_CLAMP); SetUseVertexShader(-1); SetUsePixelShader(-1); SetUseTextureToShader(0, -1); SetUseTextureToShader(1, -1); SetUseTextureToShader(2, -1); SetRenderTargetToShader(1, -1); SetUsePixelLighting(FALSE); DrawRotaGraph3(0, 0, 0, 0, 0.1f, 0.1f, 0.0, DepthBufferGraphHandle, false); <頂点シェーダー> // 頂点シェーダーの入力 struct VS_INPUT { float3 Position : POSITION0 ; // 座標( ローカル空間 ) float4 SubPosition : POSITION1 ; // 補助座標 float3 Normal : NORMAL ; // 法線 float3 Tangent : TANGENT ; // 接線 float3 Binormal : BINORMAL ; // 従法線 float4 Diffuse : COLOR0 ; // ディフューズカラー float4 Specular : COLOR1 ; // スペキュラカラー float2 TexCoords0 : TEXCOORD0 ; // テクスチャ座標0 float2 TexCoords1 : TEXCOORD1 ; // テクスチャ座標1 } ; // 頂点シェーダーの出力 struct VS_OUTPUT { float2 TexCoords0 : TEXCOORD0 ; // テクスチャ座標 float3 VPosition : TEXCOORD1 ; // 座標( ビュー空間 ) float3 VTan : TEXCOORD2 ; // 接線( ビュー空間 ) float3 VBin : TEXCOORD3 ; // 従法線( ビュー空間 ) float3 VNormal : TEXCOORD4 ; // 法線( ビュー空間 ) float4 ViewPosition : TEXCOORD5; // 座標( ビュー空間 ) float4 Position : SV_POSITION ; // 座標( プロジェクション空間 ) } ; // 基本パラメータ struct DX_D3D11_VS_CONST_BUFFER_BASE { float4 AntiViewportMatrix[ 4 ] ; // アンチビューポート行列 float4 ProjectionMatrix[ 4 ] ; // ビュー → プロジェクション行列 float4 ViewMatrix[ 3 ] ; // ワールド → ビュー行列 float4 LocalWorldMatrix[ 3 ] ; // ローカル → ワールド行列 float4 ToonOutLineSize ; // トゥーンの輪郭線の大きさ float DiffuseSource ; // ディフューズカラー( 0.0f:マテリアル 1.0f:頂点 ) float SpecularSource ; // スペキュラカラー( 0.0f:マテリアル 1.0f:頂点 ) float MulSpecularColor ; // スペキュラカラー値に乗算する値( スペキュラ無効処理で使用 ) float Padding ; } ; // その他の行列 struct DX_D3D11_VS_CONST_BUFFER_OTHERMATRIX { float4 ShadowMapLightViewProjectionMatrix[ 3 ][ 4 ] ; // シャドウマップ用のライトビュー行列とライト射影行列を乗算したもの float4 TextureMatrix[ 3 ][ 2 ] ; // テクスチャ座標操作用行列 } ; // 基本パラメータ cbuffer cbD3D11_CONST_BUFFER_VS_BASE : register( b1 ) { DX_D3D11_VS_CONST_BUFFER_BASE g_Base ; } ; // その他の行列 cbuffer cbD3D11_CONST_BUFFER_VS_OTHERMATRIX : register( b2 ) { DX_D3D11_VS_CONST_BUFFER_OTHERMATRIX g_OtherMatrix ; } ; // main関数 VS_OUTPUT main( VS_INPUT VSInput ) { VS_OUTPUT VSOutput ; float4 lLocalPosition ; float4 lWorldPosition ; float4 lViewPosition ; float3 lWorldNrm ; float3 lWorldTan ; float3 lWorldBin ; float3 lViewNrm ; float3 lViewTan ; float3 lViewBin ; // 頂点座標変換 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++( 開始 ) // ローカル座標のセット lLocalPosition.xyz = VSInput.Position ; lLocalPosition.w = 1.0f ; // ローカル座標をワールド座標に変換 lWorldPosition.x = dot( lLocalPosition, g_Base.LocalWorldMatrix[ 0 ] ) ; lWorldPosition.y = dot( lLocalPosition, g_Base.LocalWorldMatrix[ 1 ] ) ; lWorldPosition.z = dot( lLocalPosition, g_Base.LocalWorldMatrix[ 2 ] ) ; lWorldPosition.w = 1.0f ; // ワールド座標をビュー座標に変換 lViewPosition.x = dot( lWorldPosition, g_Base.ViewMatrix[ 0 ] ) ; lViewPosition.y = dot( lWorldPosition, g_Base.ViewMatrix[ 1 ] ) ; lViewPosition.z = dot( lWorldPosition, g_Base.ViewMatrix[ 2 ] ) ; lViewPosition.w = 1.0f ; // ビュー座標を射影座標に変換 VSOutput.Position.x = dot( lViewPosition, g_Base.ProjectionMatrix[ 0 ] ) ; VSOutput.Position.y = dot( lViewPosition, g_Base.ProjectionMatrix[ 1 ] ) ; VSOutput.Position.z = dot( lViewPosition, g_Base.ProjectionMatrix[ 2 ] ) ; VSOutput.Position.w = dot( lViewPosition, g_Base.ProjectionMatrix[ 3 ] ) ; // 頂点座標変換 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++( 終了 ) // 法線をビュー空間の角度に変換 =====================================================( 開始 ) // 従法線、接線、法線をビューベクトルに変換 lWorldTan.x = dot( VSInput.Tangent, g_Base.LocalWorldMatrix[ 0 ].xyz ) ; lWorldTan.y = dot( VSInput.Tangent, g_Base.LocalWorldMatrix[ 1 ].xyz ) ; lWorldTan.z = dot( VSInput.Tangent, g_Base.LocalWorldMatrix[ 2 ].xyz ) ; lWorldBin.x = dot( VSInput.Binormal, g_Base.LocalWorldMatrix[ 0 ].xyz ) ; lWorldBin.y = dot( VSInput.Binormal, g_Base.LocalWorldMatrix[ 1 ].xyz ) ; lWorldBin.z = dot( VSInput.Binormal, g_Base.LocalWorldMatrix[ 2 ].xyz ) ; lWorldNrm.x = dot( VSInput.Normal, g_Base.LocalWorldMatrix[ 0 ].xyz ) ; lWorldNrm.y = dot( VSInput.Normal, g_Base.LocalWorldMatrix[ 1 ].xyz ) ; lWorldNrm.z = dot( VSInput.Normal, g_Base.LocalWorldMatrix[ 2 ].xyz ) ; lViewTan.x = dot( lWorldTan, g_Base.ViewMatrix[ 0 ].xyz ) ; lViewTan.y = dot( lWorldTan, g_Base.ViewMatrix[ 1 ].xyz ) ; lViewTan.z = dot( lWorldTan, g_Base.ViewMatrix[ 2 ].xyz ) ; lViewBin.x = dot( lWorldBin, g_Base.ViewMatrix[ 0 ].xyz ) ; lViewBin.y = dot( lWorldBin, g_Base.ViewMatrix[ 1 ].xyz ) ; lViewBin.z = dot( lWorldBin, g_Base.ViewMatrix[ 2 ].xyz ) ; lViewNrm.x = dot( lWorldNrm, g_Base.ViewMatrix[ 0 ].xyz ) ; lViewNrm.y = dot( lWorldNrm, g_Base.ViewMatrix[ 1 ].xyz ) ; lViewNrm.z = dot( lWorldNrm, g_Base.ViewMatrix[ 2 ].xyz ) ; // 法線をビュー空間の角度に変換 =====================================================( 終了 ) // 出力パラメータセット ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++( 開始 ) // テクスチャ座標変換行列による変換を行った結果のテクスチャ座標をセット VSOutput.TexCoords0 = VSInput.TexCoords0; // 頂点座標を保存 VSOutput.VPosition = lViewPosition.xyz ; // 接線を保存 VSOutput.VTan = lViewTan ; // 従法線を保存 VSOutput.VBin = lViewBin ; // 法線を保存 VSOutput.VNormal = lViewNrm ; // 出力パラメータセット ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++( 終了 ) // 出力パラメータを返す return VSOutput ; } <ピクセルシェーダー> // ピクセルシェーダーの入力 struct PS_INPUT { float2 TexCoords0 : TEXCOORD0; // テクスチャ座標 float3 VPosition : TEXCOORD1; // 座標( ビュー空間 ) float3 VTan : TEXCOORD2; // 接線( ビュー空間 ) float3 VBin : TEXCOORD3; // 従法線( ビュー空間 ) float3 VNormal : TEXCOORD4; // 法線( ビュー空間 ) float4 ViewPosition : TEXCOORD5; // 座標( ビュー空間 ) float4 Position : SV_POSITION; // 座標( プロジェクション空間 ) }; // ピクセルシェーダーの出力 struct PS_OUTPUT { float4 Color0 : SV_TARGET0; // 色 float4 Depth : SV_TARGET1; // 深度 }; // マテリアルパラメータ struct DX_D3D11_CONST_MATERIAL { float4 Diffuse; // ディフューズカラー float4 Specular; // スペキュラカラー float4 Ambient_Emissive; // マテリアルエミッシブカラー + マテリアルアンビエントカラー * グローバルアンビエントカラー float Power; // スペキュラの強さ float TypeParam0; // マテリアルタイプパラメータ0 float TypeParam1; // マテリアルタイプパラメータ1 float TypeParam2; // マテリアルタイプパラメータ2 }; // フォグパラメータ struct DX_D3D11_VS_CONST_FOG { float LinearAdd; // フォグ用パラメータ end / ( end - start ) float LinearDiv; // フォグ用パラメータ -1 / ( end - start ) float Density; // フォグ用パラメータ density float E; // フォグ用パラメータ 自然対数の低 float4 Color; // カラー }; // ライトパラメータ struct DX_D3D11_CONST_LIGHT { int Type; // ライトタイプ( DX_LIGHTTYPE_POINT など ) int3 Padding1; // パディング1 float3 Position; // 座標( ビュー空間 ) float RangePow2; // 有効距離の2乗 float3 Direction; // 方向( ビュー空間 ) float FallOff; // スポットライト用FallOff float3 Diffuse; // ディフューズカラー float SpotParam0; // スポットライト用パラメータ0( cos( Phi / 2.0f ) ) float3 Specular; // スペキュラカラー float SpotParam1; // スポットライト用パラメータ1( 1.0f / ( cos( Theta / 2.0f ) - cos( Phi / 2.0f ) ) ) float4 Ambient; // アンビエントカラーとマテリアルのアンビエントカラーを乗算したもの float Attenuation0; // 距離による減衰処理用パラメータ0 float Attenuation1; // 距離による減衰処理用パラメータ1 float Attenuation2; // 距離による減衰処理用パラメータ2 float Padding2; // パディング2 }; // ピクセルシェーダー・頂点シェーダー共通パラメータ struct DX_D3D11_CONST_BUFFER_COMMON { DX_D3D11_CONST_LIGHT Light[6]; // ライトパラメータ DX_D3D11_CONST_MATERIAL Material; // マテリアルパラメータ DX_D3D11_VS_CONST_FOG Fog; // フォグパラメータ }; // 定数バッファピクセルシェーダー基本パラメータ struct DX_D3D11_PS_CONST_BUFFER_BASE { float4 FactorColor; // アルファ値等 float MulAlphaColor; // カラーにアルファ値を乗算するかどうか( 0.0f:乗算しない 1.0f:乗算する ) float AlphaTestRef; // アルファテストで使用する比較値 float2 Padding1; int AlphaTestCmpMode; // アルファテスト比較モード( DX_CMP_NEVER など ) int3 Padding2; float4 IgnoreTextureColor; // テクスチャカラー無視処理用カラー }; // 頂点シェーダー・ピクセルシェーダー共通パラメータ cbuffer cbD3D11_CONST_BUFFER_COMMON : register(b0) { DX_D3D11_CONST_BUFFER_COMMON g_Common; }; // 基本パラメータ cbuffer cbD3D11_CONST_BUFFER_PS_BASE : register(b1) { DX_D3D11_PS_CONST_BUFFER_BASE g_Base; }; SamplerState g_DiffuseMapSampler : register(s0); // ディフューズマップサンプラ Texture2D g_DiffuseMapTexture : register(t0); // ディフューズマップテクスチャ SamplerState g_NormalMapSampler : register(s1); // 法線マップサンプラ Texture2D g_NormalMapTexture : register(t1); // 法線マップテクスチャ SamplerState g_ToneSampler : register(s2); // トーンテクスチャ Texture2D g_ToneTexture : register(t2); // トーンテクスチャ float3 AdjustToPastel(float3 color) { float avg = (color.r + color.g + color.b) / 3.0f; return lerp(float3(avg, avg, avg), color, 0.5f); } // main関数 PS_OUTPUT main(PS_INPUT PSInput) { PS_OUTPUT PSOutput; float4 TextureDiffuseColor; float3 V_to_Eye; float3 Normal; float3 VNrm; float3 VTan; float3 VBin; float3 TotalDiffuse; float3 TotalSpecular; float3 SpecularColor; float3 TempF3; float Temp; float3 lLightTemp; float3 lLightDir; float DiffuseAngleGen; float4 ToonColor; // 接線・従法線・法線を正規化 VNrm = normalize(PSInput.VNormal); VTan = normalize(PSInput.VTan); VBin = normalize(PSInput.VBin); // 頂点座標から視点へのベクトルを接底空間に投影した後正規化して保存 TempF3.x = dot(VTan, -PSInput.VPosition.xyz); TempF3.y = dot(VBin, -PSInput.VPosition.xyz); TempF3.z = dot(VNrm, -PSInput.VPosition.xyz); V_to_Eye = normalize(TempF3); // 法線の 0〜1 の値を -1.0〜1.0 に変換する Normal = (g_NormalMapTexture.Sample(g_NormalMapSampler, PSInput.TexCoords0.xy).rgb - float3(0.5f, 0.5f, 0.5f)) * 2.0f; // ディフューズカラーとスペキュラカラーの蓄積値を初期化 TotalDiffuse = float3(0.0f, 0.0f, 0.0f); TotalSpecular = float3(0.0f, 0.0f, 0.0f); // ディレクショナルライトの処理 +++++++++++++++++++++++++++++++++++++++++++++++++++++( 開始 ) // ライト方向ベクトルの計算 TempF3 = g_Common.Light[0].Direction; // ライトのベクトルを接地空間に変換 lLightDir.x = dot(VTan, TempF3); lLightDir.y = dot(VBin, TempF3); lLightDir.z = dot(VNrm, TempF3); // ディフューズ色計算 // DiffuseAngleGen = ディフューズ角度減衰率計算 DiffuseAngleGen = saturate(dot(Normal, -lLightDir)); // ディフューズ角度のクランプ DiffuseAngleGen = max(DiffuseAngleGen, 0.1f); // 小さすぎる角度を抑制 // ディフューズカラー蓄積値 += ライトのディフューズカラー * マテリアルのディフューズカラー * ディフューズカラー角度減衰率 + ライトのアンビエントカラーとマテリアルのアンビエントカラーを乗算したもの TotalDiffuse += g_Common.Light[0].Diffuse * g_Common.Material.Diffuse.xyz * DiffuseAngleGen + g_Common.Light[0].Ambient.xyz; // スペキュラカラー計算 // ハーフベクトルの計算 TempF3 = normalize(V_to_Eye - lLightDir); // Temp = pow( max( 0.0f, N * H ), g_Common.Material.Power ) Temp = pow(max(0.0f, dot(Normal, TempF3)), g_Common.Material.Power); // スペキュラカラー蓄積値 += Temp * ライトのスペキュラカラー TotalSpecular += Temp * g_Common.Light[0].Specular; // ディレクショナルライトの処理 +++++++++++++++++++++++++++++++++++++++++++++++++++++( 終了 ) // 出力カラー計算 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++( 開始 ) // TotalDiffuse = ライトディフューズカラー蓄積値 + ( マテリアルのアンビエントカラーとグローバルアンビエントカラーを乗算したものとマテリアルエミッシブカラーを加算したもの ) TotalDiffuse += g_Common.Material.Ambient_Emissive.xyz; //ToonColor = g_ToneTexture.Sample(g_ToneSampler, float2(DiffuseAngleGen, 0.0f)); ToonColor = g_ToneTexture.Sample(g_ToneSampler, float2(max(DiffuseAngleGen, 0.1f), 0.0f)); // SpecularColor = ライトのスペキュラカラー蓄積値 * マテリアルのスペキュラカラー SpecularColor = TotalSpecular * g_Common.Material.Specular.xyz; SpecularColor *= 0.3f;//明るさの調整 // 出力カラー = TotalDiffuse * テクスチャカラー + SpecularColor TextureDiffuseColor = g_DiffuseMapTexture.Sample(g_DiffuseMapSampler, PSInput.TexCoords0); //PSOutput.Color0.rgb = TextureDiffuseColor.rgb * TotalDiffuse + SpecularColor; PSOutput.Color0.rgb = TextureDiffuseColor.rgb * ToonColor.rgb + SpecularColor; // アルファ値 = テクスチャアルファ * マテリアルのディフューズアルファ * 不透明度 PSOutput.Color0.a = TextureDiffuseColor.a * g_Common.Material.Diffuse.a * g_Base.FactorColor.a; //PSOutput.Color0.a = 1.0f; // 出力カラー計算 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++( 終了 ) //PSOutput.Color0 = TextureDiffuseColor; PSOutput.Depth = 0.0f; PSOutput.Depth.r = PSInput.ViewPosition.z; PSOutput.Depth.a = 1.0f; // 出力パラメータを返す return PSOutput; } お忙しいところ恐れ入りますが、ご回答いただけますと幸いです。
メンテ
Re: D3D11_TEXTURE_ADDRESS_MODEの変更 ( No.3 )
名前:管理人 日時:2024/08/30 00:39

> マルチレンダーターゲットを使用するにはSetRenderTargetToShader以外の設定が必要が必要でしょうか? いえ、SetRenderTargetToShader 以外の設定はありません > 以下のコードで通常の描画は出来るのですが、SV_TARGET1に出力した深度が描画されず、悩んでおります DepthBufferGraphHandle はどのように作成されたグラフィックハンドルでしょうか? 通常の MakeScreen で作成されるグラフィックハンドルは float型でいう所の 0.0f から 1.0f までの範囲の 値しか記憶できませんので、PSOutput.Depth.r = PSInput.ViewPosition.z; ←こちらで代入されている 値が 0.0f 以下なら 0.0f に、1.0f 以上なら 1.0f にクランプされてしまいます ビュー空間の z は 0.0f から 1.0f の範囲に収まる値ではないので、全部のピクセルの r が 1.0f( 整数値では 255 ) や 0.0f( 整数値では 0 )になってしまっているのではないかと思います SetDrawValidFloatTypeGraphCreateFlag( TRUE ) ; SetCreateGraphChannelBitDepth( 32 ) ; SetCreateDrawValidGraphChannelNum( 4 ) ; int DepthBufferGraphHandle = MakeScreen( 640, 480, FALSE ) ; ↑ こちらのように MakeScreen の前に SetDrawValidFloatTypeGraphCreateFlag( TRUE ); で浮動小数点型の ピクセルフォーマットにする設定と SetCreateGraphChannelBitDepth( 32 ); で C言語の float型と同じ 32bit の浮動小数点型のピクセルフォーマットにする設定と SetCreateDrawValidGraphChannelNum( 4 ); で r, g, b, a の 4チャンネルあるピクセルフォーマットにする設定を行うことで C言語の float型と同じ範囲の 値を 4つ記憶できるグラフィックハンドルとなりますので、よろしければお試しください m(_ _)m また、 DrawRotaGraph3(0, 0, 0, 0, 0.1f, 0.1f, 0.0, DepthBufferGraphHandle, false); ←こちらのコードで 深度を描画したグラフィックハンドルを描画されていますが、描画時は 0.0f 以下の値は全て 0 として、 1.0f 以上の値は全て 255 として描画されますので もし DrawRotaGraph3 で深度値が書き込まれているかを確認されたい場合は PSOutput.Depth.r = PSInput.ViewPosition.z / 1000.0f; ↑ このように何らかの値で代入する値を除算して PSOutput.Depth.r に代入される値が 0.0f 〜 1.0f の範囲に 収まるようにする必要があります
メンテ
Re: D3D11_TEXTURE_ADDRESS_MODEの変更 ( No.4 )
名前:猫の湯飲み 日時:2024/08/30 21:59

お忙しい中ご返信ありがとうございます シェーダーを PSOutput.Depth.r = PSInput.ViewPosition.z / 1000.0f; に変更し、 SetDrawValidFloatTypeGraphCreateFlag(TRUE); SetCreateDrawValidGraphChannelNum(4); SetCreateGraphColorBitDepth(32); // 影用深度記録画像の作成 DepthBufferGraphHandle = MakeScreen(4096, 4096, FALSE); で作成したグラフィックハンドルに描画してもSetBackgroundColorで設定した色以外何も描画されない状態です。 またシェーダーを PSOutput.Depth.r = 1.0f; PSOutput.Depth.g = 0.0f; PSOutput.Depth.b = 0.0f; PSOutput.Depth.a = 1.0f; の用に変更しても、同様にSetBackgroundColorで設定した色以外何も描画されない状態です。
メンテ
Re: D3D11_TEXTURE_ADDRESS_MODEの変更 ( No.5 )
名前:管理人 日時:2024/08/31 00:07

グラフィックハンドルは関係ありませんでしたか… 以前作成したマルチレンダーターゲットを使用するテストプログラムを現在のバージョンで 実行ファイルをビルドし直してこちらにアップしました https://dxlib.xsrv.jp/temp/MRTColorTestD3D11.zip 中にある MRTColorTest.exe を実行すると画面上半分に青色になった DxChara.x が、 画面下半分に緑色になった DxChara.x が描画されます こちらの緑色の方が SetRenderTargetToShader を使用して指定した2つ目の描画先の 描画結果となっています C++ のソースは MRTColorTest.cpp、 頂点シェーダーのソースは MRTColorTestVS.fx ピクセルシェーダーのソースは MRTColorTestPS.fx となっていますので、猫の湯飲みさんが作成された処理と何か違う点が無いか ご確認になってみてください m(_ _)m
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存