修正
Geforce GTX670のドライバをGeForce 334.89 WHQL driversに更新したところ以前のエントリで紹介したRise of FlightのHelix Modの動作がおかしくなりました。
マウスカーソルやメニューの一部などが奥行きが適用されたりされなかったりを一秒間に数回切り替わるようになってしまいました。
ShaderOverride\VertexShaders内のファイルを出し入れして調べてみたところD24C0281.txtで変更が行われている項目の表示がおかしくなっていました。
D24C0281.txtの中を覗いてみたところ前半で座標の取得を行って、後半の
if_eq r14.x, c220.w
texldl r1, c220.z, s0// retrieve values from stereo texture
mul r1.x, r1.x, -c220.x// multiplicity Separation * c220.x
add r3.x, r3.x, -r1.x// correct output vertex position
endif
mov o0, r3 // mov from temprary register to output
mov o3, v1 // ocolor<0,1,2,3>
mov o4, v2 // ofactor<0,1,2,3>
が座標の適用を行っています。
適用されるされないなどの条件分岐がおこりえるのはif文のあるこの部分だけですのでここを色々弄ってみたところ、if文をコメントアウトした
//if_eq r14.x, c220.w
texldl r1, c220.z, s0// retrieve values from stereo texture
mul r1.x, r1.x, -c220.x// multiplicity Separation * c220.x
add r3.x, r3.x, -r1.x// correct output vertex position
//endif
mov o0, r3 // mov from temprary register to output
mov o3, v1 // ocolor<0,1,2,3>
mov o4, v2 // ofactor<0,1,2,3>
で正常に表示されるようになりました。
普通に考えたらありえない修正ではあるのですが、if文の中と外で変更が適用される項目に重複がないのと、同じ方が作られてるIL-2 Sturmovik: Battle of Stalingrad用のHelix Modではif文を使わず変更をまとめて適用しているので、元々if文は必要なかったのかもしれません。
| 固定リンク
「パソコン・インターネット」カテゴリの記事
- HOSAS(2022.12.04)
- 左手デバイス(2022.07.02)
- 120Hz(2019.11.30)
- VR(2018.06.24)
- Vertex Shader(2014.11.03)
「Rise of Flight」カテゴリの記事
この記事へのコメントは終了しました。
コメント
helix_modですが上カーソルを押した50%深度ですとアイコン表示が合いません。
左カーソルを押した最小深度では問題がないのですがどのようにすればよいでしょうか。
投稿: coco | 2015年3月18日 (水) 17時39分
以前のアップデートでグラフィックの強化がされた関係で、このHelix Modが作成された時とシェーダの割り当てが変わっています。
本文中でもリンクしていますが以前のエントリ
http://blog.torime.jp/2012/12/post-26a9.html
にて解説していますが、シェーダファイルの名前の変更をする必要がありますのでそれを試してみてください。
投稿: とりめのシーフ | 2015年3月27日 (金) 19時58分
返信ありがとうございます。Helix mod ダウンロード(JGMSEでないほう)→bin_game・dataそれぞれのフォルダを
rise of flight フォルダに貼り付け→ShaderOverride\VertexShaders内のファイル名変更→D24C0281.txt内を
変更 ...うまくいきません。
念のためos再インストールいたしましたたが改善が見られませんでした。
win7 64bit gtz780ti nvidiaバージョン347.88です。nvidiaのコントロールパネル側は触っておりません。
ご指導いただけると助かります。
投稿: coco | 2015年4月 1日 (水) 01時02分
こちらで現在使用しているファイルを外して、再度ダウンロードしたものを配置してファイル名変更と内容の修正を行いましたが、問題なく奥行きの適用ができています。
ファイルの拡張子を表示しない設定になっているようでしたら、拡張子を表示するようにしてファイル名がD24C0281.txt.txtのような二重拡張子になっていないか確認してみてください。
また表示が崩れたり戻ったりを繰り返しているようでしたら、D24C0281.txtの修正が巧くできていない可能性があります。
if_eq r14.x, c220.wやendifの前の//は半角のスラッシュが2つです。
//はその行のそこから後ろをコメント化して無効にするコマンドですのでその行をまるごと削除してもかまいません。
それと他のDirectXの描画に介入するソフトが動作しているとHelix Modの効果が無効になることもあります。
自分の環境ではGeforceのDriverのバージョンによってはShadowPlayが有効になっているとHelix Modが無効になったことがあります。
現在使用している347.88ではテストしてみたところShadowPlayを有効にしても大丈夫でしたが。
投稿: とりめのシーフ | 2015年4月 1日 (水) 19時28分
重ねてありがとうございます。何かこちらに手落ちがあるようです。
参考にさせていただき、見直してみます。
投稿: coco | 2015年4月 2日 (木) 00時03分
成功しました
原因はrof本体のインストール先を \C 以外のドライブに入れていまして
\C \Program Files(x86)へインストールをしましたところ作動確認できました。
ありがとうございます
投稿: coco | 2015年4月 5日 (日) 09時58分