トップページ > 記事閲覧
暫定最新版について
名前:Tir 日時: 2025/02/19 22:10

毎度お世話になっております。 DXライブラリを暫定最新版に変更した所一部テクスチャが赤く表示されてしまいます。 3.24dに戻すと正常に描画されますが、なにか変更があったのでしょうか? 3.24d=ttps://unfit.204504byse.info/20252184043.jpg 暫定最新版=ttps://unfit.204504byse.info/2025218446.jpg
メンテ

Page: 1 |

Re: 暫定最新版について ( No.1 )
名前:管理人 日時:2025/02/19 22:33

最近 Android や iOS 関連で ddsファイルの読み込みの処理を少し変更しましたが、 それ以外では特に画像に関する変更は行っていません 赤くなってしまっている箇所は ddsファイルを使用されているところでしょうか?
メンテ
Re: 暫定最新版について ( No.2 )
名前:Tir 日時:2025/02/19 22:50

はい、画像は全てDDSを使用しています
メンテ
Re: 暫定最新版について ( No.3 )
名前:Tir 日時:2025/02/20 18:29

こちらで色々試してみた結果法線マップシェーダーを使用して描画されている部分が赤くなってしまってしまっているようです。 シェーダー周りで変更がありましたでしょうか?
メンテ
Re: 暫定最新版について ( No.4 )
名前:管理人 日時:2025/02/21 01:42

ご返答ありがとうございます > こちらで色々試してみた結果法線マップシェーダーを使用して描画されている部分が赤くなってしまってしまっているようです。 > シェーダー周りで変更がありましたでしょうか? <3DモデルをDxLibModelViewerと同じ表現で描画したい> https://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=view&no=5689 ↑こちらのスレッドにありますように去年の10月に SetUsePixelLighting( TRUE ); でピクセル単位のライティングをした場合 且つ Direct3D 11 を使用していた場合、法線マップが正常に適用されていなかったので、正常に適用されるようにシェーダーを修正しました 今確認してみた限りでは現在も問題なく描画されるようです Tirさんの環境で赤くなってしまうモデルを描画時も、Direct3D 11 + SetUsePixelLighting( TRUE ); の条件でしょうか?
メンテ
Re: 暫定最新版について ( No.5 )
名前:Tir 日時:2025/02/21 04:33

Direct3D 11ですがSetUsePixelLightingはfalseです。 そもそも3DモデルというよりDrawPolygon3DToShaderを使用しています。 以下は使用しているディレクショナルライト+フォグの法線マップシェーダーです // 頂点シェーダーの入力 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 ; // 法線( ビュー空間 ) float Fog : TEXCOORD5 ; //フォグ float4 Diffuse : COLOR0;// ディフューズカラー float4 Specular : COLOR1;// スペキュラカラー float4 Position : SV_POSITION ; // 座標( プロジェクション空間 ) } ; // マテリアルパラメータ 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_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_COMMON : register( b0 ) { DX_D3D11_CONST_BUFFER_COMMON g_Common ; } ; // 基本パラメータ 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.Fog = lViewPosition.z * g_Common.Fog.LinearDiv + g_Common.Fog.LinearAdd ; // 頂点座標を保存 VSOutput.VPosition = lViewPosition.xyz ; // 接線を保存 VSOutput.VTan = lViewTan ; // 従法線を保存 VSOutput.VBin = lViewBin ; // 法線を保存 VSOutput.VNormal = lViewNrm ; //色情報をそのまま保存 VSOutput.Diffuse=VSInput.Diffuse; VSOutput.Specular=VSInput.Specular; // 出力パラメータセット ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++( 終了 ) // 出力パラメータを返す return VSOutput ; } // ピクセルシェーダーの入力 struct PS_INPUT { float2 TexCoords0 : TEXCOORD0 ; // テクスチャ座標 float3 VPosition : TEXCOORD1 ; // 座標( ビュー空間 ) float3 VTan : TEXCOORD2 ; // 接線( ビュー空間 ) float3 VBin : TEXCOORD3 ; // 従法線( ビュー空間 ) float3 VNormal : TEXCOORD4 ; // 法線( ビュー空間 ) float Fog : TEXCOORD5 ; // フォグパラメータ float4 Diffuse : COLOR0;// ディフューズカラー float4 Specular : COLOR1;// スペキュラカラー } ; // ピクセルシェーダーの出力 struct PS_OUTPUT { float4 Color0 : SV_TARGET0 ; // 色 } ; // マテリアルパラメータ 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 ; DX_D3D11_VS_CONST_FOG Fog ; // フォグパラメータ } ; // 基本パラメータ 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 ) { AddressU = WRAP; AddressV = WRAP; }; // 法線マップテクスチャ Texture2D g_NormalMapTexture : register( t1 ) ; // 法線マップテクスチャ // 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 ; // 接線・従法線・法線を正規化 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 ) ; //float2 d=0; //float2 size=1024; // 法線の 0~1 の値を -1.0~1.0 に変換する //Normal = ( g_NormalMapTexture.Sample( g_NormalMapSampler, PSInput.TexCoords0.xy-d/size ).rgb - float3( 0.5f, 0.5f, 0.5f ) ) * 2.0f ; 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 ) ) ; // ディフューズカラー蓄積値 += ライトのディフューズカラー * マテリアルのディフューズカラー * ディフューズカラー角度減衰率 + ライトのアンビエントカラーとマテリアルのアンビエントカラーを乗算したもの 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 ; // SpecularColor = ライトのスペキュラカラー蓄積値 * マテリアルのスペキュラカラー SpecularColor = TotalSpecular * g_Common.Material.Specular.xyz ; // 出力カラー = TotalDiffuse * テクスチャカラー + SpecularColor TextureDiffuseColor = g_DiffuseMapTexture.Sample( g_DiffuseMapSampler, PSInput.TexCoords0 ) ; PSOutput.Color0.rgb = TextureDiffuseColor.rgb * TotalDiffuse.rgb * PSInput.Diffuse.rgb+ PSInput.Specular.rgb + SpecularColor ; // フォグ効果 PSOutput.Color0.rgb = lerp( g_Common.Fog.Color.rgb, PSOutput.Color0.rgb, saturate( PSInput.Fog ) ); // アルファ値 = テクスチャアルファ * 不透明度 PSOutput.Color0.a =TextureDiffuseColor.a *PSInput.Diffuse.a+PSInput.Specular.a; // 出力カラー計算 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++( 終了 ) // 出力パラメータを返す return PSOutput ; }
メンテ
Re: 暫定最新版について ( No.6 )
名前:管理人 日時:2025/02/22 04:26

了解しました 去年の5月に高さフォグに対応しましたので、その変更が Tirさんのシェーダーには 含まれていないために C++ で用意された定数バッファと内容に不整合が発生して 正常に動作しなくなったのだと思います 暫定最新版では DX_D3D11_VS_CONST_FOG が以下のようになっています // フォグパラメータ struct DX_D3D11_VS_CONST_FOG { int Mode ; // フォグモード( DX_FOGMODE_LINEAR など ) int3 Padding1 ; // パディング1 float LinearAdd ; // フォグ用パラメータ end / ( end - start ) float LinearDiv ; // フォグ用パラメータ -1 / ( end - start ) float Density ; // フォグ用パラメータ density float DensityStart ; // フォグ用パラメータ density start float E ; // フォグ用パラメータ 自然対数の低 float3 Padding2 ; // パディング2 float4 Color ; // カラー } ; また、DX_D3D11_CONST_BUFFER_COMMON も高さフォグ用の変数が追加されています // ピクセルシェーダー・頂点シェーダー共通パラメータ struct DX_D3D11_CONST_BUFFER_COMMON { DX_D3D11_CONST_LIGHT Light[ 6 ] ; // ライトパラメータ DX_D3D11_CONST_MATERIAL Material ; // マテリアルパラメータ DX_D3D11_VS_CONST_FOG Fog ; // フォグパラメータ DX_D3D11_VS_CONST_FOG VerticalFog ; // 高さフォグパラメータ } ; 上記2つの構造体の定義を上記の通りに変更して頂ければ直ると思いますので、 よろしければお試しください m(_ _)m
メンテ
Re: 暫定最新版について ( No.7 )
名前:Tir 日時:2025/02/22 13:10

解答ありがとうございます。高さにもフォグを対応されたのですね。 変更を加えたところ背景は見えるようになりましたが、フォグが全体的に赤くなってしまっています 高さのフォグの設定を一通り変更したりしたのですが効果がありませんでした、他にも何か設定等が必要なのでしょうか? ttps://unfit.204504byse.info/2025222575.jpg ttps://unfit.204504byse.info/2025222854.jpg ttps://unfit.204504byse.info/20252225715.jpg
メンテ
Re: 暫定最新版について ( No.8 )
名前:管理人 日時:2025/02/23 00:28

struct DX_D3D11_VS_CONST_FOG の定義は VS となっていますが頂点シェーダーだけではなく ピクセルシェーダーでも使用されていますので、ピクセルシェーダーの DX_D3D11_VS_CONST_FOG の定義も struct DX_D3D11_VS_CONST_FOG { int Mode ; // フォグモード( DX_FOGMODE_LINEAR など ) int3 Padding1 ; // パディング1 float LinearAdd ; // フォグ用パラメータ end / ( end - start ) float LinearDiv ; // フォグ用パラメータ -1 / ( end - start ) float Density ; // フォグ用パラメータ density float DensityStart ; // フォグ用パラメータ density start float E ; // フォグ用パラメータ 自然対数の低 float3 Padding2 ; // パディング2 float4 Color ; // カラー } ; に変更して頂ければ赤くなる現象が直るのではないかと思います よろしければお試しください m(_ _)m
メンテ
Re: 暫定最新版について ( No.9 )
名前:Tir(解決) 日時:2025/02/23 00:37

ありがとうございます。無事に正常に描画されるようになりました
メンテ

Page: 1 |

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

   クッキー保存