Shade3D 公式

Screen Effectプラグインのwindow8環境での動作について

先日PCを買い替えて、OSが以前はwindow7だったのからwindow8.1になったのですが、ft-labさんがマーケットプレイスで公開されているScreen Effectプラグインが、ウインドウは表示できても、左下のglslシェーダー一覧の所に何も表示されない、みたいな事になってしまいました。

glslシェーダーを収録しているpresetフォルダは、以前と同じように、このプラグインのマニュアル通り、ユーザーのドキュメントフォルダのshade15のpluginフォルダ内にpresetフォルダごとコピーしています。
以前のPCと同じようにpresetフォルダを指定の位置へコピーしたのですが、何故かwindow8.1環境では各glslシェーダーが認識されず一覧に表示されないようです。

使用しているGPUはgeforce960で、ドライバーはnvidia公式ドライバーの最新版を使用しています。
open GLを使用するshadeやその他の色々なソフトでopen GLの動作が正常に行われているのは確認しました。

「window8.1環境でも正常にこのプラグインのglslシェーダーが読み込まれている」という方いらっしゃるでしょうか?
window8.1の場合は、glslシェーダーが認識されるために、何かソフトを別途インストールする必要があるのでしょうかね?

「ドキュメントフォルダのshade15のpluginsフォルダ内」に、ScreenEffectsフォルダを入れる、になりますがこれで動きますでしょうか?

[plugins]
  [ScreenEffects]
    [preset]
        xxx.glsl

の構成になります。
こちらはWin10ですが、動作してます(Win 8.xとOSの差があまりなければ同じ挙動かなと)。
この箇所はGPUに関係のない箇所で、単純に所定の位置にファイルが存在するかフォルダ内検索してるだけですので、関連するとすればOS部分だけとなりそうです。

ft-labさん、コメントありがとうございます。

すいません、最初の説明が間違っていました。

フォルダ構成自体はpluginsフォルダ内に、ScreenEffectsフォルダとその中身(presetフォルダと、その中のglslシェーダー)を入れています。

screeneffectプラグインのウインドウは開くのですが、何故かglslシェーダーが一覧に表示されないのです。

メインマシンはshade15.2で、サブマシンはshade14で試してみましたが、どちらのOSもwindows8.1で、glslシェーダーが認識されないようです。

確認ありがとうございます。
ご報告内容ですと、フォルダの格納は問題ないですね。
OSの違いが濃厚ですので、といっても原因箇所が思い浮かばないので、いくつかPythonスクリプトで確認お願いするかもしれません(SDKの呼び出しか、私の実装かのどちらで呼び出せてないか判断)。
お手数をおかけしますが、まずは私の環境でアタリをつけて調査してみます。

dadada66さん

2点、確認お願いしてよろしいでしょうか。


[1]. スクリプトウィンドウを出して、以下を実行
print xshade.shade().user_shade_doc_path

これの結果のパスに"\plugins"を加算したところに追加プラグインや「ScreenEffects」フォルダを配置している場合は、Shade 3DのプラグインSDKでの呼び出しは問題なしです。

[2]. Win8へのログインユーザ名が全角で指定している

[1]のスクリプトを実行したパスで
"C:\Users\ユーザー名\Documents\Shade 3D ver.15"となっている場合、
ユーザー名が日本語かの確認。

今のところ、[2]番目のユーザー名に全角を使っている件が原因のような気がしてます。
私の実装もこのあたりは不安ポイントですので、チェックしてみます。

コメントありがとうございます。

1の方はスクリプトを実行しましたが、表示されたパスとScreenEffectsフォルダを配置しているパスに問題は無いようです。

2については、ご指摘のように、メインマシンもサブマシンもユーザー名は日本語になっています。

ありがとうございます。
おそらくそれが原因ですので、Screen Effectsプラグイン側を直すようにします。
しばらくお時間くださいませ。

遅くなりましたが、Screen Effectsプラグイン ver.1.0.1をマーケットプレイスに申請しました。
以下の修正点/追加点があります。

  • Screen Effectsウィンドウで、環境設定のベースの色を変えるとテキスト色が白にならなかった問題を修正
  • Windows環境で日本語ユーザ名でログインしている場合に、GLSLがScreen Effectsウィンドウの一覧に表示されない問題を修正
  • Windows環境で、日本語のGLSLファイル名が読み込めない問題を修正
  • GLSL Shaderで「name_ja」と指定すると表示名を日本語指定できるようにした
  • GLSL Shaderに カメラの焦点距離/フォーカス値を渡すようにした (float se_cameraZoom, float se_cameraFocus)
  • GLSL Shaderに float se_randomFloatData[512] の0.0 - 1.0のランダム数値配列を渡すようにした

公開されるまでは少し時間がかかるかもしれませんが、公開され次第こちらで記載するようにします。

ft-labさん、日本語ユーザー名でログインの場合の問題について対応していただきありがとうございます。
マーケットプレイスでの1.01のリリース開始楽しみにしています。

申し訳ないです。
クラッシュ問題が別途ありましたので、その問題も今回の修正で直すことにしました。
再び私の手元で修正いれてから再度申請しますので、もうしばらくお待ちくださいませ。

screen effectプラグインの新しいバージョンのリリースありがとうございます。

先ほどリリースされたばかりのバージョン1.02をインストールしたら、ログイン名が日本語ユーザーの環境でも無事シェーダー一覧が表示されるようになりました。

ただ、bloomとssao、vignetteについては、私の環境ではシェーダーを追加するとshadeがそのまま落ちたり、メッセージ欄に以下のメッセージが出てしまって機能しないようです。

boom使用時
preset/bloom.glsl : glCreateShader(GL_VERTEX_SHADER) failed. [error : 0]

SSAO使用時
preset/ssao.glsl : glCreateShader(GL_VERTEX_SHADER) failed. [error : 0]

vignette使用時
preset/vignette.glsl : glCreateShader(GL_VERTEX_SHADER) failed. [error : 0]

OSはwindows8.1、VGAカードはnvidia のgeforceGTX960、shadeのバージョンは15.2です。
VGAのドライバーは最新の365.10を使用しています。

一部のglslシェーダーが機能しない原因は何が考えられるでしょうか?

大変遅くなりましたが、Screen Effectsプラグイン ver.1.0.2が公開されました。

https://shade3d.jp/store/marketplace/ft-lab/screeneffects/info.html

変更点は、同ページのサポートにも書いていますが、2バージョン分になります。
本スレッドのご指摘の問題も修正しました。

[2016/05/01] ver 1.0.2

  • シーンが開かれていない状態でScreen Effectsウィンドウのボタンを押すと、クラッシュする問題を修正
  • Shader処理に失敗した場合、動作が不安定になる問題を修正

[2016/04/10] ver 1.0.1

  • Screen Effectsウィンドウで、環境設定のベースの色を変えるとテキスト色が白にならなかった問題を修正
  • Windows環境で日本語ユーザ名でログインしている場合に、GLSLがScreen Effectsウィンドウの一覧に表示されない問題を修正
  • Windows環境で、日本語のGLSLファイル名が読み込めない問題を修正
  • GLSL Shaderで「name_ja」と指定すると表示名を日本語指定できるようにした
  • GLSL Shaderに カメラの焦点距離/フォーカス値を渡すようにした (float se_cameraZoom, float se_cameraFocus)
  • GLSL Shaderに float se_randomFloatData[512] の0.0 - 1.0のランダム数値配列を渡すようにした

あ、入れ替わりでした(^_^;
早速の確認ありがとうございます。

glslファイルも入れ替えていただけると、日本語/英語の表示をできるようになります。

GTX960だと、同梱のShaderは問題ないかと思います。
特に複雑なことは書いてないですので、もっと低スペックのGTX550Tiで動作確認済みです。GTX 970でも確認済みです。

Shaderで失敗しているということは、glslソースが認識できてないということになりますね。
これは、GLSLの書き方が悪かったりした場合に起きるエラーになります。

再度Shaderを再読み込みしたりすると読み込める場合と失敗する場合に分かれますでしょうか?
(成功する場合と失敗する場合がある?もしくは必ず失敗する?)

数点確認です、Shade 3Dは32bitsモードで起動しているか64bitsモードで起動しているか、を書いていただければ幸いです。
また、Shade 3DはWinではDirectXモードとOpenGLモードがありますが、どちらで起動してますでしょうか?

64bits + DirectXモードの起動がお勧めになってます。

サブマシンの方でも動作検証したら、そちらの方では全てのシェーダーがきちんと機能するようです。
サブマシンの方は、OSはwindow8.1の64ビット版。
shadeのバージョンは14、VGAは搭載していないCPU内蔵のintel HDでグラフィックを描画しています。
このサブマシンの方もログインユーザー名が日本語ですが、今回のバージョンアップのおかげでshader一覧は正常に表示され使えるようになりました。

エラーが発生しているメインマシンの方ですが、OSは64ビット版なので、プラグインも64bit版をドキュメントフォルダのpluginフォルダに入れています。
各glsl shaderも今回のに新たに入れ替えました。

shadeのモードは64bitのdirectXモードです。
shaderの再読み込みボタンを押しても、特に再読み込みでは問題は起きないようですが、再読み込みしても前述の三つが機能しないのは同じです。

nvidiaのドライバーのバージョンによっては相性問題が発生しているのでしょうかね?

一応64bitのopenGLモードの方でもshadeを起動してテストしてみましたが、やはりこの三つのシェーダーが機能しないようです。

情報ありがとうございます。
書かれている内容だと環境は問題ないように見えますね、、、、。
GPUは相性が、というのはありますがGTX9番台はさすがに安定してる印象がありますが、何か引っかかる部分がないか思案してみることにします。
もうちょっとエラーチェック機能を強化したほうがよさげですね。

Shaderで動くのと動かないのがある、というのですとやっかいではあります。
ちなみにGLSLの構文エラーの場合はそのエラー箇所のメッセージが出ますので、
構文はあっているけど、バッファオーバーとか目に見えない箇所で問題が起きてる可能性もあります。

ご指摘の実行できないもののうち vignetteは小規模なShaderですので、
これを詰めながらとりあえずこれ試してほしい、というGLSLをお願いするかもしれません。
その際は、デバッグのお付き合いお願いいただければ幸いです。

たびたびすみません。
また動作検証してみたのですが、メインマシンの方でも正常(?)に機能させる方法が見つかりました。

一番最初にbloomかssao、vignetteのいずれかを追加すると先ほどのように機能しないのですが、先に機能する残りのshader(dofやfog,multiply_colorなど)のいずれかをまず追加してから、二つ目以後のshaderとしてbloomやssao、vignetteを追加すると、この三つのshaderもきちんと機能するようです。

サブマシンの方では、一つ目のshaderとしてbloom,ssao,vignetteのいずれかを追加しても問題なかったようですが、メインマシンの方ではまず先に他のshaderを追加してからこれらを追加するようにすればいいみたいです。

あと、一つ目に何かshaderを追加してから、ssao,bloom,vignetteのいずれかを追加してから、一つ目のshaderを削除しても機能するみたいです。

二つ目以後に追加する場合は、エラーメッセージも表示されないようです。

メインマシンの方でまた検証してみました。
どうも何もshaderが追加されてない状態でssaoかbloom,vignetteを追加すると、先ほどのエラーメッセージが表示されるとともに、パラメータースライダーが表示されず使えないようです。

・二つ目以後のshaderとして追加すれば、ssao,bloom,vignetteのいずれもきちんとスライダーが表示されて使える

・二つ目として追加した後に、一つ目のshaderを削除しても、ssao,bloom,vignetteはそのままきちんと使える

・ssao,bloom,vignetteを二つ目として追加した後に、shaderの矢印ボタンで一つ目にもっていっても使える
(逆に一つ目として追加したssao,bloom,vignetteは、矢印ボタンで二つ目にもっていっても使えないまま)

・一つ目のshaderとしてbloomを追加するとbloomは機能しないのですが、その状態でssaoを追加し、bloomは削除。そしてbloomを追加しなおすと、ssaoもbloomもどちらも使えるようになる。

みたいな感じです。
原因の特定につながれば幸いです。

詳しい調査ありがとうございます!
こちらではご指摘の手順でも動作してしまってるのですが、なんとなく場所を特定できそうな気がします。
順番が関係するとすると、GLSLのShader側ではなくて渡す情報の箇所かなと。
これであたりをつけて調べてみます。

丁寧な検証、ありがとうございました。