トップページ > 記事閲覧
高度な3D表現を簡単に使う方法
名前:カビゴン 日時: 2021/01/25 16:01

こんにちは。いつも便利にDXライブラリを使用させていただいております。 今度、いくつかの高度な3DCG表現をゲームに組み込みたいのですが、 そういった機能を簡単に扱えるような関数をライブラリに追加、 もしくは有効なシェーダープログラムを使った例などをご教示していただけませんか。 ○水の表現 ・スクリーンスペース・リフレクションを用いた鏡面反射(ttps://dxlib.xsrv.jp/program/dxprogram_FresnelReflection.html に書いてある方法では正しく描画されていないため) ・水面、水中の透明な(=水底の)ゆらぎ ・透明な波紋 ○空間の歪み ・陽炎のように奥の画像を歪ませる方法 ○チンダル現象、ミー散乱、ゴッドレイ、ライトシャフト ・光源が画面外にあっても有効な方法 ○SSAO などです。 よろしくおねがいします。
メンテ

Page: 1 |

Re: 高度な3D表現を簡単に使う方法 ( No.1 )
名前:管理人 日時:2021/01/26 00:02

すみません、ご要望のエフェクトは長期間グラフィック関係のプログラムから離れている私には 少し難易度が高いので、申し訳ありませんが3Dグラフィックスの表現に優れている UnrealEngine4 や Unity のご使用をご検討ください m(_ _;m
メンテ
Re: 高度な3D表現を簡単に使う方法 ( No.2 )
名前:カビゴン(解決) 日時:2021/01/26 10:47

管理人様でも難しかったのですね、こちらこそ無茶を言ってすみませんでしたm(_ _;m というのも、DXライブラリで完成したゲームをCS機向けに売れないかパブリッシャーさんに相談したところ、 派手なアクションゲームとかだとそういったケレン味のある画が無いと取り扱うのは難しい、と言われてしまったので。。 例に挙げていただいたゲームエンジンを検討してみます。ありがとうございました。
メンテ
Re: 高度な3D表現を簡単に使う方法 ( No.3 )
名前:名無三 日時:2021/01/26 16:34

空間の歪みについてですが、 DoFの要領で遠景中間近景を別画面で描画し、 dixq.net/forum/viewtopic.php?t=12523 これで奥の画像を歪ませて見るのはいかがでしょう
メンテ
Re: 高度な3D表現を簡単に使う方法 ( No.4 )
名前:管理人 日時:2021/01/26 21:18

なんと、もう完成しているのですか…! (・・;; 完成品を UnrealEngine4 や Unity に移植となると、恐らくほぼリメイクに近いくらいの手間が掛かってしまうと思います 折角DXライブラリを使用して頂いたのに申し訳ないので、少し頑張ってみようかと思うのですが 挙げていただいた効果の機能を全部追加しようとすると1ヶ月以上掛かってしまうかもしれません パブリッシャーさんにご相談されているとのことですが、期限などはありますでしょうか? > 名無三さん 空間の歪みは挙げていただいた方法で実装できそうですね (・・;
メンテ
Re: 高度な3D表現を簡単に使う方法 ( No.5 )
名前:kanamaru 日時:2021/01/26 22:07

にわか知識なんで返信しようか悩んだんですけど、役に立てば。 なお、間違っているかもしれません。(まちがっていると言うよりそこまでしなくてもいいの方がありえそうですが) 水面はパーリンノイズというのを使うと実装できると思います。 水中はわかんないですけど同じくパーリンノイズでもしかしたらできるかもしれません。 パーリンノイズはシェーダーで実装できます。 チンダル現象とかは多分レイトレーシング?とか言うやつを使うんでしょうか?
メンテ
Re: 高度な3D表現を簡単に使う方法 ( No.6 )
名前:カビゴン 日時:2021/01/27 00:17

> 名無三様 ご教示ありがとうございます。 > 管理人様 お忙しい中、おおごとにしていまい、すみません。期限などは特にありません。 ご対応いただけたら嬉しいですが、自分でも無茶な注文(アセットとして販売されているレベルの要素)だとも思っていますので、 無理をしてお身体など壊さぬようご自愛いただければと思います。 > kanamaru様 ご提案ありがとうございます。
メンテ
Re: 高度な3D表現を簡単に使う方法 ( No.7 )
名前:管理人 日時:2021/01/27 00:39

> カビゴンさん 期限は特に無いとのことで、了解しました ところで、CS機となるとPCと異なり性能的に制限が結構ありますので、幾つかご質問させてください 1.想定しているCS機に Nintendo Switch は含まれていますでしょうか? 2.ご製作されたゲームは 30FPSでもプレイに支障が無いゲーム内容でしょうか? 3.ご製作されたゲームは、表示は3Dで、ゲーム内容は横スクロールや見下ろし視点の2Dゲーム、という形態でしょうか?  それとも「ダークソウル」のような3D空間を自由に移動して、カメラも自由に操作できる形態の3Dゲームでしょうか? 挙げていただいたエフェクトは重いものが多いので、Switch を想定されていて、 且つ60FPSが必須となりますと、SSAOやライトシャフトは難しいかもしれません > kanamaruさん ご情報ありがとうございます > チンダル現象とかは多分レイトレーシング?とか言うやつを使うんでしょうか? レイトレーシングは使用しなくても実装できます
メンテ
Re: 高度な3D表現を簡単に使う方法 ( No.8 )
名前:カビゴン 日時:2021/01/27 19:37

> 管理人様 > 1.想定しているCS機に Nintendo Switch は含まれていますでしょうか? はい。 > 2.ご製作されたゲームは 30FPSでもプレイに支障が無いゲーム内容でしょうか? 個人的には60FPSで軽い方がゲームとしては良いと思っていたのですが、売れる売れないの判断ですと 30FPSに落ちても画がキレイな方が良いということだと思いますので、それに合わせるよう調整するつもりです。 > 3.ご製作されたゲームは、表示は3Dで、ゲーム内容は横スクロールや見下ろし視点の2Dゲーム、という形態でしょうか? >  それとも「ダークソウル」のような3D空間を自由に移動して、カメラも自由に操作できる形態の3Dゲームでしょうか? 後者です。
メンテ
Re: 高度な3D表現を簡単に使う方法 ( No.9 )
名前:管理人 日時:2021/01/27 23:51

ご返答ありがとうございます なるほど…見た目重視で3D空間を自由に移動できるタイプで、Nintendo Switch となりますと、 処理が重くなる局面では 30FPSを下回ることも発生しそうですね…( ゼルダ BotW も 30FPSを下回る 場面が結構あるので ) ともあれ、まずは重さなどは気にせず PC 上で動作するサンプルを一つづつ作成していこうと思いますので 少しお時間をください m(_ _)m
メンテ
Re: 高度な3D表現を簡単に使う方法 ( No.10 )
名前:カビゴン 日時:2021/01/28 05:36

> 管理人様 他の作業をしながらお待ちしております。よろしくおねがいいたしますm(_ _)m
メンテ
Re: 高度な3D表現を簡単に使う方法 ( No.11 )
名前:わひこ 日時:2021/01/28 16:19

PC 上で動作するサンプル期待しています、よろしくお願いいたします。
メンテ
Re: 高度な3D表現を簡単に使う方法 ( No.12 )
名前:管理人 日時:2021/05/02 03:26

大変お待たせしてしまっていて申し訳ありません なかなか作業時間を確保できず、漸く SSAO の実装ができましたので、 よろしければこちらをダウンロードしてください m(_ _;m https://dxlib.xsrv.jp/temp/SSAOTest.zip SSAOTest.zip の中に SSAOTest.exe がありますので、実行して頂ければ SSAO のサンプルを実行することが出来ます zipファイルの中にある SSAOTest.cpp をコンパイルするには、こちらの SSAO の機能が追加された暫定最新版のDXライブラリを使用する 必要がありますので、よろしければこちらもダウンロードしてください 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 // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい) ただ、SSAO に挑戦してみて分かったのですが、実装にはそれなりに時間が 掛かる上に、私の実力では最近のゲームのレベルの各種表現を実装する ( 且つ Switch でも動作するほどの軽処理負荷で )のはかなり厳しそうです… ( 年単位で3Dレンダリングの技術について勉強して実践して…を行えば 何れ可能にはなると思いますが、それでは時間が掛かり過ぎます… ) なので、大変申し上げにくいのですが、やはり UnrealEngine4 や Unity などの 挙げて頂いた3D表現が現時点で使用可能なゲームエンジンを使用して頂ければと思います 約3ヶ月お時間を頂いた上の結論がこのようなもので本当に申し訳ありません m(_ _;m
メンテ
Re: 高度な3D表現を簡単に使う方法 ( No.13 )
名前:名無三 日時:2021/05/02 14:31

横からすいません、SSAOの実現素晴らしく存じます。お疲れ様です。 さっそく自身のプロジェクトに紐づけてみました。おそらくSSAOは聞いているものと思われる のですが、どうやらDrawPolygonIndexed3D_UseVertexBufferで描画したものについて 法線バッファの方に反映されていないように感じます。 もしよろしければ確認お願いします。 drive.google.com/file/d/1O84i_oKLNLHULVDrk92Jf3oF8rf8Xa_H/view?usp=sharing ↑DrawPolygonIndexed3D_UseVertexBufferで描画した草の法線が反映されず裏の壁のものが映る様子です
メンテ
Re: 高度な3D表現を簡単に使う方法 ( No.14 )
名前:管理人 日時:2021/05/03 21:31

法線バッファへの書き込みは MV1DrawModel での描画にしか対応していませんでしたので、 MV1DrawModel 以外の3D描画でも対応してみました 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 // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい) ただ、MV1DrawModel のときと同様に DrawPolygon を行う前に SetUsePixelLighting( TRUE ) ; を実行してピクセル単位のライティングを ON にしておく必要がありますのでご注意ください m(_ _)m ( ピクセルシェーダーでのライティング処理用の法線をレンダーターゲット1に書き込んでいるので )
メンテ
Re: 高度な3D表現を簡単に使う方法 ( No.15 )
名前:名無三 日時:2021/05/04 16:30

法線確認できました!ありがとうございます!
メンテ

Page: 1 |

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

   クッキー保存