DirectX11でテクスチャの色味がおかしくなる

現在DirectX11(DirectXTex)でテクスチャ(png画像)を表示させようとしているのですが、どうも色味がおかしく、原色以外の色が濃くなってます
イメージ説明
なにか参考になるような意見を頂ければありがたいです

ソースコード

全部上げるのは厳しいので関係ありそうなところを上げます。ほかに必要が場所があれば追加します

texture

//texture.h template<typename T> struct point{ T x,y; } struct texture { point<UINT> size; ComPtr<ID3D11Texture2D> p_texture; ComPtr<ID3D11SamplerState> p_samplerstate; ComPtr<ID3D11ShaderResourceView> p_shaderresource_view; bool create(const std::string& path, bool is_wic); void draw(const std::array<point<float>, 4>& pos); }; //texture.cpp bool texture::create(const std::string& path, bool is_wic) { auto hr = DirectX::CreateWICTextureFromFile(p_device.Get(), to_wstring(path).c_str(), (ID3D11Resource**)p_texture.GetAddressOf(), p_shaderresource_view.GetAddressOf()); if (FAILED(hr)) { log.error("テクスチャリソースを作成できませんでした。"); return false; } D3D11_TEXTURE2D_DESC desc; p_texture->GetDesc(&desc); size.x = desc.Width; size.y = desc.Height; return true; } void texture::draw(const std::array<point<float>, 4>& pos) { set_polygon_param(1.0f, 0.0f);//座標変換など draw_shader_resource(pos, p_shaderresource_view.Get()); }

shader:hlsl

struct VS_IN { float4 pos : POSITION0; float4 nor : NORMAL0; float2 tex : TEXCOORD0; }; struct VS_OUT { float4 pos : SV_POSITION; float2 tex : TEXCOORD0; }; cbuffer ConstantBuffer : register(b0) { matrix scale; matrix rotate; matrix transition; matrix world; matrix projection; } VS_OUT Main( VS_IN input ) { VS_OUT output; output.pos = mul(input.pos, world); output.pos = mul(input.pos, scale); output.pos = mul(input.pos, rotate); output.pos = mul(input.pos, transition); output.pos = mul(input.pos, projection); output.tex = input.tex; return output; } struct PS_IN { float4 pos : SV_POSITION; float2 tex : TEXCOORD0; }; Texture2D myTexture : register(t0); //テクスチャー SamplerState mySampler : register(s0); //サンプラー float4 Main( PS_IN input ) : SV_Target { return myTexture.Sample(mySampler, input.tex); }

試したこと

もともとサンプラーステートを渡していましたが、一応何も渡さずにやってみました。ただし変わりはありませんでした

補足情報(FW/ツールのバージョンなど)

windows 10
GPU:Radeon RX 550
VisualStudio2022
C++20
DirectXTexは2022/09/22昼時点で最新の、デスクトップアプリケーション用

コメントを投稿

0 コメント