トップページ > 記事閲覧
DX11での頂点テクスチャフェッチについて
名前:ねむのき 日時: 2023/05/31 11:07

DXLibのdirectX11バージョンで頂点シェーダーへテクチャは送れますか
メンテ

Page: 1 |

Re: DX11での頂点テクスチャフェッチについて ( No.1 )
名前:管理人 日時:2023/06/02 01:34

既存のバージョンでは DirectX11 を使用した場合頂点シェーダーでテクスチャを 読み込めるようになっていなかったので、読み込めるように処理を追加してみました よろしければこちらの処理追加バージョンをお使いください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい) また、こちらにテストで使用したプログラムなどを纏めた zip ファイルをアップしました https://dxlib.xsrv.jp/temp/VertexShaderTextureD3D11.zip zipファイルの中にある VertexTextureTest.exe を実行すると画面左下に色の着いた四角形が 描画されるのですが、四角系の四隅の色は頂点シェーダーでテクスチャ( 同フォルダ内にある Tex1.bmp )から 読み取った色となっています よろしければご覧ください m(_ _)m
メンテ
Re: DX11での頂点テクスチャフェッチについて ( No.2 )
名前:ねむのき 日時:2023/06/02 11:15

一緒送られてきたテストでは正しく実行されたのですが代わりにDrawPolygon2DToShader時にpixelシェーダにuv値の情報が送られなくなりました Logも念のため貼っときます 0:ChangeWindowMode実行 1:ウインドウモードフラグが立てられました 2:DXライブラリの初期化処理開始 3: システムの情報を出力します 3: DXライブラリ Ver3.24c 4: 論理プロセッサの数 : 12 4: OS Windows11 ( Build 22621 ) 104: 現時点のCPU動作速度:大体2.49GHz 104: MMX命令を使用します 104: SSE命令が使用可能です 104: SSE2命令が使用可能です 105: CPUベンダ:GenuineIntel 107: CPU名:Intel(R) Core(TM) i5-10500H CPU @ 2.50GHz 107: COMの初期化... 成功 112: 非同期読み込み処理の初期化...成功 113: ファイルアクセス処理の初期化...成功 114: メモリ総量:16205.80MB 空きメモリ領域:4602.61MB 114: タイマーの精度を検査します 114: 精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 114: パフォーマンスカウンターを使用します タイマー精度 : 10000.000000 KHz 115: 115: ソフトの二重起動検査... 二重起動はされていませんでした 116: ウインドウクラスを登録します... 登録に成功しました 116: ウインドウモード起動用のウインドウを作成します 117: ディスプレイ情報のセットアップ開始 117: モニターの数:1 ディスプレイデバイスの数:3 117: No.0 モニター名:\\.\DISPLAY1 1920x1080 32bit 60Hz 96x96dpi 128: ディスプレイ情報のセットアップ完了 128: ウインドウ矩形 ( 624, 249 )-( 1280, 768 ) 132: ウインドウの作成に成功しました 133: ウインドウを表示します 230: IMEを無効にしました 234: ウインドウスタイルをウインドウモード用に変更します... 完了 267: XInput DLL の読み込み中... 成功 270: DirectInput関係初期化処理 272: DirectInput8 の取得を試みます...成功 284: 引き続き初期化処理... 初期化成功 294: ジョイパッドの初期化... 295: XInput 対応コントローラーのチェックを開始します 295: XInput 対応コントローラー No.0 をチェック 295: XInput 対応コントローラー No.0 の接続は確認できませんでした 296: XInput 対応コントローラー No.1 をチェック 296: XInput 対応コントローラー No.1 の接続は確認できませんでした 296: XInput 対応コントローラー No.2 をチェック 296: XInput 対応コントローラー No.2 の接続は確認できませんでした 296: XInput 対応コントローラー No.3 をチェック 297: XInput 対応コントローラー No.3 の接続は確認できませんでした 297: XInput 対応コントローラーのチェック完了 297: DirectInput 対応ジョイパッドの列挙を開始します 304: DirectInput 対応ジョイパッドの列挙終了 304: ジョイパッドの初期化は正常に終了しました 304: マウスデバイスの初期化... 初期化成功 305: キーボードデバイスの初期化... 初期化成功 311: DirectInput 関連の初期化は正常に終了しました 314: WASAPI の初期化を行います 334: デバイス名 : スピーカー (Realtek(R) Audio) 431: デフォルト遅延時間 : 10.000 ms 431: 最小遅延時間 : 3.000 ms 432: 遅延時間 : 10.000 ms 432: チャンネル数   : 2 ch 432: 量子化ビット深度 : 32 bit 433: 有効ビット深度  : 32 bit 433: サンプリングレート : 48000 Hz 433: データ形式 : 浮動小数点型 528: 動作モード : 共有モード 528: WASAPI の初期化は正常に終了しました 534: d3d11.dll の読み込み.... 成功 540: dxgi.dll の読み込み.... 成功 540: API CreateDXGIFactory2 のアドレスを取得します.... 成功 541: IDXGIFactory2 を作成します.... 成功 559: API CreateDXGIFactory6 のアドレスを取得します.... 成功 560: IDXGIAdapter を列挙 563: Adapter No.0 Desc:NVIDIA GeForce RTX 3050 Ti Laptop GPU VRAM:3976MB 564: Output Device No.0 Name:\\.\DISPLAY1 ( 0, 0 )-( 1920, 1080 ) 565: Adapter No.1 Desc:Intel(R) UHD Graphics VRAM:128MB 565: Adapter No.2 Desc:Microsoft Basic Render Driver VRAM:0MB 566: API D3D11CreateDevice のアドレスを取得します.... 成功 567: IDXGIAdapter を取得します.... 成功 568: IDXGIAdapter1 を取得します.... 成功 568: IDXGIAdapter2 を取得します.... 成功 568: IDXGIAdapter3 を取得します.... 成功 569: IDXGIAdapter4 を取得します.... 成功 569: Direct3D 11 FeatureLevel 11_0 以上を対象とします 569: ID3D11Device オブジェクトを取得します.... 成功 738: IDXGIDevice1 を取得します.... 成功 739: IDXGIDevice1->SetMaximunFrameLatency( 1 ); を実行しました 739: [ウインドウモード 640x480 ( 640, 287 )-( 1280, 767 )] 740: IDXGISwapChain2 を作成します.... 成功 756: IDXGIFactory2->CreateSwapChainForHwnd の戻り値:0x00000000 757: IDXGIOutput を取得します.... 成功 757: Graphics Device:NVIDIA GeForce RTX 3050 Ti Laptop GPU 757: 画面のフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 757: 16bit Zバッファフォーマットは DXGI_FORMAT_D16_UNORM です 758: 24bit Zバッファフォーマットは DXGI_FORMAT_D24_UNORM_S8_UINT です 758: 32bit Zバッファフォーマットは DXGI_FORMAT_D32_FLOAT です 758: 16bit カラーフォーマットは DXGI_FORMAT_B5G6R5_UNORM です 759: 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です 759: アルファ付き 16bit カラーフォーマットは DXGI_FORMAT_B4G4R4A4_UNORM です 759: アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 760: アルファテスト用 16bit カラーフォーマットは DXGI_FORMAT_B5G5R5A1_UNORM です 760: アルファテスト用 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 760: DXT1テクスチャフォーマットは DXGI_FORMAT_BC1_UNORM です 761: DXT2テクスチャフォーマットは使えません 761: DXT3テクスチャフォーマットは DXGI_FORMAT_BC2_UNORM です 761: DXT4テクスチャフォーマットは使えません 761: DXT5テクスチャフォーマットは DXGI_FORMAT_BC3_UNORM です 762: BC7_UNORM テクスチャフォーマットは DXGI_FORMAT_BC7_UNORM です 762: BC7_UNORM_SRGB テクスチャフォーマットは DXGI_FORMAT_BC7_UNORM_SRGB です 762: ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です 763: ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です 763: ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です 764: 1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です 764: 1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です 765: 1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です 765: 1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です 765: 2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です 767: 2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です 768: 2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です 768: 2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です 768: 描画用 16bit カラーフォーマットは DXGI_FORMAT_B5G6R5_UNORM です 769: 描画用 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です 769: 描画用アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 769: 描画用 ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です 770: 描画用 ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です 770: 描画用 ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です 770: 描画用1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です 771: 描画用1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です 772: 描画用1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です 773: 描画用1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です 773: 描画用2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です 773: 描画用2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です 774: 描画用2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です 774: 描画用2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です 775: 使用する機能レベル:D3D_FEATURE_LEVEL_11_1 775: 同時にレンダリングできるバッファの数:8 776: 最大テクスチャサイズ 幅:16384 高さ:16384 777: 標準描画用の頂点バッファの作成.... 成功 779: シェーダーコード関係の初期化.... 成功 794: 各種シェーダー用定数バッファの作成.... 成功 795: 各種 ID3D11InputLayout の作成.... 成功 823: 画像の単純転送処理の初期化... 成功 824: 深度バッファを作成します.... 成功 828: フォントの初期化を行います 831: フォントの初期化は正常に終了しました 974: 文字コードバッファの初期化を行います... 完了しました 991:DXライブラリの初期化処理終了 3446:ウインドウを閉じようとしています 3457:ウインドウが破棄されようとしています 3457:ソフトを終了する準備が整いました 3477:フォントの初期化を行います 3478:フォントの初期化は正常に終了しました 3535:d3d11.dll の解放 1 3536:dxgi.dll の解放 1 3539:Direct3D11 のオブジェクト数を出力 3539:Direct3D11 のオブジェクト合計数 : 0 3540:DirectInput 関連の終了処理... 完了 3545:サウンド関連の終了処理... 完了 3550:ウィンドウ関連の終了処理... 完了 3621:COMを終了... 完了 3621: 3621:Alloc memory dump 3621: Total size:0(0.000kb) Alloc num:0 3622:
メンテ
Re: DX11での頂点テクスチャフェッチについて ( No.3 )
名前:管理人 日時:2023/06/02 23:56

すみません、DrawPolygon2DToShader のピクセルシェーダーの入力について つい最近こちらのスレッドのご指摘で修正された関係で変更となりました <pixelshaderのinput構造体のセマンティクスについて> https://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=view&no=5490 <修正前> struct PS_INPUT { float4 Position : SV_POSITION ; float4 Diffuse : COLOR0 ; float2 TexCoords0 : TEXCOORD0 ; float2 TexCoords1 : TEXCOORD1 ; }; <修正後> struct Input { float4 Position : SV_POSITION ; float4 Diffuse : COLOR0 ; float4 Specular : COLOR1 ; float2 TexCoords0 : TEXCOORD0 ; float2 TexCoords1 : TEXCOORD1 ; }; なので、DrawPolygon2DToShader の入力の構造体の定義を上記の<修正後>のものに 変更して頂ければ uv値も正常に取得できますので、よろしければお試しください m(_ _;m
メンテ
Re: DX11での頂点テクスチャフェッチについて ( No.4 )
名前:ねむのき 日時:2023/06/03 12:14

無事、UV値が取得できることが確認できました。 やりたいことができたのでこれで解決済みにします。
メンテ

Page: 1 |

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

   クッキー保存