トップページ > 記事閲覧
デフォルト状態でSetRenderTargetToShaderにて取れる画面情報について
名前:名無三 日時: 2023/08/25 00:33

SSAOを作成いただいた際、SetRenderTargetToShader(1,)で取れるのは法線マップ描画と伺っておりましたが、2以降では何か情報は取れますでしょうか?
メンテ

Page: 1 |

Re: デフォルト状態でSetRenderTargetToShaderにて取れる画面情報について ( No.1 )
名前:管理人 日時:2023/08/25 23:11

いえ、2以降には何も出力していません 0 が色 1 が法線 となっています
メンテ
Re: デフォルト状態でSetRenderTargetToShaderにて取れる画面情報について ( No.2 )
名前:名無三 日時:2023/08/27 02:05

色と法線であること承知しました。 それでは2点お願いできればと思うのですが、 drive.google.com/file/d/1K0XPlD0dKEEXNnmuO0cZM6pZb7QZNJJk/view?usp=sharing ・こちらの画像のように現状ではMV1のモデル表示のみにて法線を取る形となっているようです。 可能であれば他の描画についても法線が適用されるようになりますと幸いです。 もしよろしければこちらだけでもご検討いただけますと幸いです DrawPolygonIndexed3D_UseVertexBuffer DrawCapsule3D ・深度、スペキュラ等の出力を他の番号にてお願いできればと思うのですがいかがでしょうか?
メンテ
Re: デフォルト状態でSetRenderTargetToShaderにて取れる画面情報について ( No.3 )
名前:管理人 日時:2023/08/27 05:11

> ・こちらの画像のように現状ではMV1のモデル表示のみにて法線を取る形となっているようです。 > 可能であれば他の描画についても法線が適用されるようになりますと幸いです。 >  > もしよろしければこちらだけでもご検討いただけますと幸いです > DrawPolygonIndexed3D_UseVertexBuffer > DrawCapsule3D 法線を出力する機能を実装した当時のスレッドがこちら↓ですが https://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=view&no=5095 SetUsePixelLighting( TRUE ) ; を事前に実行して頂ければ DrawPolygonIndexed3D_UseVertexBuffer などでも法線が描画されるようになると思います m(_ _)m > ・深度、スペキュラ等の出力を他の番号にてお願いできればと思うのですがいかがでしょうか? 出力情報が増えると処理負荷が高くなってしまうので、無闇に出力は増やすのは避けたいところですが… 具体的な用途はありますでしょうか? あと、『等』とのことですが、他にもご希望の出力はありますでしょうか?
メンテ
Re: デフォルト状態でSetRenderTargetToShaderにて取れる画面情報について ( No.4 )
名前:名無三 日時:2023/08/27 12:55

すいません、ピクセンライティングの方確認いたします。 用途としましては、ポストプロセスの実装を目的としております。 SSRと深度ベースのDoFについて取り組もうと考えており、 ・SSRには法線とスペキュラが ・DoFには深度が あればと思います。 こちらでは深度とスペキュラがあれば良いかと考えているのですが、可能であれば、UnityのGバッファで出力されている ・(Diffuse colors) ・Specular color ・(World space normal) ・Emission + (Ambient + Reflections + Lightmaps) ・Depth + Stencil 上記が網羅されていれば、他ポストプロセスエフェクト(HDR等?)を実装する方がおられた場合に便利かと思います。
メンテ
Re: デフォルト状態でSetRenderTargetToShaderにて取れる画面情報について ( No.5 )
名前:名無三 日時:2023/08/27 21:48

確認したところ既にSetUsePixelLighting(TRUE)でしたね… 他の部分を確認してみます、一応現状のプロジェクトの方と、確認している部分をを添付いたします drive.google.com/file/d/1gwXwWHoJ1RSpnSWfWicEg_KP8eBKQu0l/view?usp=sharing こちらvisual studio 2017でビルドしております。注意点としてdebugでのビルドが現状できません。 SSAOを有効化する方法は、FPS_0\WW1\Project\data\Setting.txtのSSAOをfalse->trueにして起動です。 画像の場面への遷移はタイトルからそのままスペースorPS4パッドのXボタンを押してください。 DxLib_VC\DX_VC\DXLib_ref\DXLib_ref.cppにて初期化のあとにSetUsePixelLighting(TRUE)を行っております。 DXLib_ref_100_PostPass.cppのSSAO_Drawラムダ式にてSSAOのためにノーマルマップを取得しております。 FPS_0\WW1\Project\source\MainScene\BackGround\BackGroundSub.cppのGrass::ImplクラスのDraw関数にてDrawPolygonIndexed3D_UseVertexBufferの描画が行われます。
メンテ
Re: デフォルト状態でSetRenderTargetToShaderにて取れる画面情報について ( No.6 )
名前:管理人 日時:2023/08/28 03:20

> 確認したところ既にSetUsePixelLighting(TRUE)でしたね… すみません、有効になっているライトがディレクショナルライトのみの場合は SetUsePixelLighting( FALSE )と同じ状態での描画となっていました 有効になっているライトがディレクショナルライトのみの場合でも SetUsePixelLighting( TRUE )の設定で描画が行われるようにしましたので、 よろしければこちらをお試しください 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 11.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 // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい) > こちらでは深度とスペキュラがあれば良いかと考えているのですが、可能であれば、UnityのGバッファで出力されている > ・(Diffuse colors) > ・Specular color > ・(World space normal) > ・Emission + (Ambient + Reflections + Lightmaps) > ・Depth + Stencil > 上記が網羅されていれば、他ポストプロセスエフェクト(HDR等?)を実装する方がおられた場合に便利かと思います。 現時点でDXライブラリが出力している法線は World space ではなく View space なので、仕様を変更するか 処理を変更しないと難しそうです… ひとまずは名無三さんのご希望される要素だけを追加する方向で… (・・; 深度についてですが、こちらは 0.0 〜 1.0 になった値( Depth Buffer( Z Buffer ) に書き込まれる値 )を レンダーターゲットに出力した方が良いでしょうか? それとも変換前の純粋なカメラからの距離をレンダーターゲットに出力した方が良いでしょうか? スペキュラについてですが、こちらはライティングの計算の中で算出される 『マテリアルのスペキュラカラーに乗算される値( R・G・B )』 をそのままレンダーターゲットに出力すれば良いでしょうか?
メンテ
Re: デフォルト状態でSetRenderTargetToShaderにて取れる画面情報について ( No.7 )
名前:名無三 日時:2023/08/28 19:52

ありがとうございます、草の法線が描画されていることを確認しました! 深度に関しましては、後から距離を演算すれば良いかと思いますので0.0〜1.0で大丈夫です。 スペキュラに関しましては、こちらのRefraction Maskの欄にあるグレースケールでマテリアルの反射具合を取得している画像の形を想定しております。 lettier.github.io/3d-game-shaders-for-beginners/screen-space-refraction.html
メンテ
Re: デフォルト状態でSetRenderTargetToShaderにて取れる画面情報について ( No.8 )
名前:管理人 日時:2023/08/29 02:10

> 深度に関しましては、後から距離を演算すれば良いかと思いますので0.0〜1.0で大丈夫です。 すみません、改めて考えた所、0.0〜1.0の値を元の距離に戻すには 元の距離 = 1.0f / ( -1.0f * テクスチャから読み出した深度値 * ( Far - Near ) / ( Far * Near ) + 1.0f / Near ) という計算をしなければならず、この式を知らない方には正しい距離を算出できない といったデメリットがありますので、やはりカメラからの距離をそのまま出力しようと思うのですが 問題ありませんでしょうか? ( テクスチャフォーマットを必ず float型にしなければならないという面がありますが… ) > スペキュラに関しましては、こちらのRefraction Maskの欄にあるグレースケールでマテリアルの反射具合を取得している画像の形を想定しております。 > lettier.github.io/3d-game-shaders-for-beginners/screen-space-refraction.html 反射具合はライトのスペキュラカラーによっては R と G と B で異なりますので、グレースケール( 1チャンネル )で 表現すると汎用性が下がってしまうので、3チャンネル出力する形にしようと思いますが 1チャンネルに抑えた方が良いといった点はありますでしょうか?
メンテ
Re: デフォルト状態でSetRenderTargetToShaderにて取れる画面情報について ( No.9 )
名前:名無三 日時:2023/08/29 21:00

承知しました。距離をそのまま/RGB全て出す、で問題ありません
メンテ
Re: デフォルト状態でSetRenderTargetToShaderにて取れる画面情報について ( No.10 )
名前:管理人 日時:2023/08/30 04:36

了解です 距離とスペキュラカラーを出力する変更を加えてみましたので、よろしければダウンロードしてください 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 11.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 // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい) レンダーターゲットの各出力は以下のようになっています 0 RGBA:通常の描画出力 1 RGB:法線( ビュー空間 ) 2 R:カメラからの距離 G:スペキュラカラーの輝度 3 RGB:スペキュラカラーRGB レンダーターゲット2 の出力を 1チャンネルにしてみたところ上手く出力が行われなかったので 4チャンネル出力に変更して、GBA の 3チャンネルが余ったので G にスペキュラカラーの輝度を出力 する形にしました なので、出力2さえあれば名無三さんのご希望の情報は得られると思います よろしければお試しください m(_ _)m
メンテ
Re: デフォルト状態でSetRenderTargetToShaderにて取れる画面情報について ( No.11 )
名前:名無三 日時:2023/08/30 09:47

ありがとうございます!試してみます!
メンテ
Re: デフォルト状態でSetRenderTargetToShaderにて取れる画面情報について ( No.12 )
名前:名無三 日時:2023/09/02 00:19

SSR完成しました!ありがとうございます! drive.google.com/file/d/1ryI4qAOtCsIRyxOXxsXzb5bo3lqJ5ZYl/view?usp=sharing ただすいません、スペキュラに関してなのですが、今回出力したSSRの反射をどれだけ反映するかを決定するためのものですので、 可能であればモデル表面の反射光xスペキュラマップをそのまま出すようなものを追加いただけますと幸いです…
メンテ
Re: デフォルト状態でSetRenderTargetToShaderにて取れる画面情報について ( No.13 )
名前:管理人 日時:2023/09/02 00:38

おぉ、SSR凄いですね…! > 可能であればモデル表面の反射光xスペキュラマップをそのまま出すようなものを追加いただけますと幸いです… 了解です 『モデル表面の反射光xスペキュラマップ』 ↑ こちらの『モデル表面の反射光』というのはモデルのマテリアルの反射光( Specularカラー )という認識で良いでしょうか?
メンテ
Re: デフォルト状態でSetRenderTargetToShaderにて取れる画面情報について ( No.14 )
名前:名無三 日時:2023/09/02 11:23

はい、その認識です。 (以下、一応認識すり合わせのため…) 例えば窓は半分反射し、光沢のある金属や鏡はすべて反射するといった形を想定しております。 MV1ModelViewerのマテリアル→材質→反射光→スペキュラマップで適用されている画像も反映されていると幸いです
メンテ
Re: デフォルト状態でSetRenderTargetToShaderにて取れる画面情報について ( No.15 )
名前:管理人 日時:2023/09/02 20:48

ご返答ありがとうございます なんとなくライティング計算を行ったスペキュラの出力は不要だと思いましたので、 0 RGBA:通常の描画出力 1 RGB:法線( ビュー空間 ) 2 R:カメラからの距離 G:スペキュラマップ×スペキュラカラー に変更してみました よろしければお試しください 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 11.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 // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: デフォルト状態でSetRenderTargetToShaderにて取れる画面情報について ( No.16 )
名前:名無三(解決) 日時:2023/09/03 05:45

本当にありがとうございます、組み込みました! drive.google.com/file/d/1HUHKpqqA4aSPLDTOEvnahH69i1hpcreg/view?usp=sharing
メンテ

Page: 1 |

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

   クッキー保存