問題タブ [cg]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
opengl - 3D モデルのレンダリングとシェーダー
私は 3D モデルを持っています。レンダリング中にシェーダーを使用して、いくつかのパラメーターに基づいて頂点の色 (計算負荷の高いタスク) を計算しています。これらのパラメータは時間とともに変化します。したがって、基本的には、現在のパラメーターに基づいて頂点の色を計算し、以前にレンダリングされた頂点の色と合計する必要があります。500 万から 1000 万の頂点を持つモデルを扱います。誰かがこの問題を解決する方法を教えてください。
わかりにくい質問で申し訳ありません。私が直面している問題は、シェーダーから計算された以前の頂点の色をバックアップする方法です。オブジェクトを回転できるため、ブレンドを使用できません。基本的には、シェーダーから計算された頂点カラー情報を保存して、次のパスで使用するメカニズムが必要です。
opengl-es-2.0 - Cgプログラムを構成する正しい方法は何ですか?
このチュートリアルでは、明示的なOUT構造を使用します。例:
しかし、私のシェーダーの1つを見ると、明示的な入力/出力パラメーターがあります。
これでHLSL2GLSLを使用する際に問題が発生し、Cg形式が原因であるかどうか疑問に思いました(Cgスクリプトとしては正常に機能しますが)。「正しい」方法はありますか、それとも同じ目的のための2つの単純に異なる方法ですか?
opengl - CG から GLSL: f3texRECT に相当しますか?
CG プログラムを GLSL プログラムに変換しようとしています。
これまでに行ったことは正しいように見えますが、GLSL シェーダーは正しくない出力を出力します。不正な動作は、一連のテスト イメージによって定義されます。
私が調査している唯一の暗い点は、f3texRECT
私が翻訳した関数ですtexture
。ただし、に関するドキュメントが見つかりませんf3texRECT
。
誰かが光を当てることができますか?
graphics - 均一な配列 CG シェーダーへの非定数インデックス
この nVidia CG チュートリアル(および私自身の経験)によると、非定数インデックスを使用して CG シェーダーの均一な配列にアクセスすることは、非効率的であるかサポートされていません (多くの場合、サポートされていないようです)。
私の質問は; どうすればこの問題を回避できますか?
現在、頂点属性に格納されているインデックスを使用してアクセスする必要があるボーンの配列 (4x4 マトリックス) を渡す GPU スキニング シェーダーを作成しています (具体的には、コンポーネントが int にキャストされる float4 ベクトル)。明らかに、上記の制限のため、これは機能しません...おそらくこれを行うためのより良い方法がありませんか?
opengl - バイナリコンパイルされた効果ファイルを CG に保存/ロードする
私はNVidia CGに取り組んでいます。この行を使用してファイルから効果を作成した場合:
この効果 (basicEffect) をコンパイル済みの形式でバイナリ ファイルに保存する方法はありますか。後で効果を作成したい場合は、コンパイルされた効果ファイルをロードして、basicEffect に直接割り当てるだけです。
助けはありますか?
opengl - Pre-Pass Lighting OpenGL 実装アーティファクト
Deferred レンダラーも実装した後、修士論文プロジェクト用に OpenGL で Pre-Pass Lighting アルゴリズムを実装しています。Deferred レンダラーは完全に機能し、PPL の実装はこれに基づいています。アルゴリズムのライティング パスの後、非常に奇妙なアーティファクトが発生しました。シーン内のライトの影響を蓄積する L バッファに含まれるデータは正しいのですが、結果はジオメトリに関してわずかにずれているため、マテリアルパスのシーンに適用すると、結果がはっきりと見えます! (ここに画像を投稿することはできませんが、ここにそれを見るためのリンクがありますhttp://postimage.org/image/kxhlbnl9v/)
ライト マップ キューブは、ジオメトリからのオフセット (軸ごとに異なる) を使用して何らかの方法で計算されているようです。シェーダーと C++ コードを何度も確認しましたが、この問題の原因がわかりません。アイデアが不足しています。以下は、順番に呼び出されるアルゴリズムの 3 つのパスのコードです。コードは今のところ実験的なものなので、この段階では適切に設計されていないことはわかっています。また、すべての段階で使用するシェーダーを追加して、G バッファー、L バッファー、フレームバッファーに順番に書き込みます。
C++ コード:
NVIDIA CG シェーダー:
助言がありますか?
c++ - Ogre3d / コンポジター関連の問題
以下のコードが機能しない理由を理解しようとして一日中殺しました:
私はこの .compositor スクリプトを持っています:
.material スクリプト:
および .cg プログラム:
以下のステートメントを使用して、コンポジターを初期化します。
そして、私はまったく結果を見ません。私のシーンにはいくつかのライトと CG シェーダーがありますが、それらは完璧に機能します。また、すべてのリソースが適切に読み込まれ、リソース グループは必要なすべてのファイルを認識しますが、ログ ファイルに次の例外が記録されます。
AFAIK rt0 は、オーガによる「飛行中」の自動生成のため、リソースであってはなりません。何か不足していますか?
どんな助けでも大歓迎です!ありがとう!
c++ - cmakeプロジェクトでのCGランタイムリンカーエラー(g ++)
次のリンカーエラーが発生します:/ usr / bin / ld:-lCgが見つかりません/ usr / bin / ld:-lCgGLが見つかりません
ここでFindCg.cmakefromeを使用しています:http ://code.google.com/p/nvidia-texture-tools/source/browse/branches/2.0/cmake/FindCg.cmake?r = 452
次に、見つかったライブラリをtarget_link_librariesで追加します。
makeをVERBOSE=1(以下を参照)で実行すると、ライブラリの正しいパス(/usr/lib64/libCgGL.soおよび/usr/lib64/libCg.so)を通過するように見えます。
==========================================
編集:
以下の返信でFraserによって推測されたcmakeファイルのlink_directories行を削除した後、代わりにこの出力を取得します
unity3d - CG: 頂点シェーダーとフラグメントシェーダーの間で補間しない変数を指定する
GC
内部にシェーダーを書き込むために使用していますUnity3D
。
いくつかのパラメーターをシェーダーに渡すために頂点カラー属性を使用しています。これらは色の定義には使用されず、変更せずに頂点シェーダーからピクセル シェーダーに転送する必要があります。
これは、Unity3D から頂点シェーダーへの入力として取っている構造です。
これは、フラグメントへの入力として頂点シェーダーによって返される構造です。
パラメータを単にフラグメント シェーダに転送すると、もちろん補間されます。
v.color
補間されていないパラメータをフラグメントシェーダに渡したいです。これは可能ですか?はいの場合、どのように?
編集
ティムが指摘したように、頂点シェーダーからフラグメントに渡された場合、シェーダーは色を補間する以外に何もできないため、これは予想される動作です。私が達成しようとしていることをよりよく説明しようとします。色以外の種類の情報を保存するために、頂点ごとの色を使用しています。私がそれで何をしているのかについてのすべての詳細を言わずに、各色の頂点をidと見なすことができるとしましょう(同じ三角形の各頂点は同じ色になります。実際には同じメッシュの各頂点)。
そのため、他に方法がないため、カラー トリックを使用していくつかのパラメーターをマスクしました。この情報は、何らかの方法でフラグメント シェーダーで利用できる必要があります。頂点シェーダーの出力パラメーターとして渡す場合、色にエンコードされたこの情報はフラグメントに補間されて到着し、フラグメントは使用できなくなります。
この情報を変更せずにフラグメント シェーダーまで伝播する方法を探しています (グローバル変数などを使用することは可能でしょうか?そうであれば、どのようにすればよいでしょうか?)。
glsl - CG / GLSLピクセルあたりのカメラ距離を計算する方法は?
ピクセルシェーダーにピクセルあたりの実際のカメラ距離を出力したいと思います。つまり、結果は(精度とクランプのわずかな違いを除いて)ニア/ファークリッピングプレーンに依存しないはずです。
また、ニアプレーンの真ん中のピクセルは境界のピクセルよりもカメラに近いため、ニアプレーン上に正確にある(そしてそれに平行な)プレーンは均一な結果を出力しないはずです。
ピクセルシェーダーの各ピクセルの実際のカメラ距離を計算するにはどうすればよいですか?(実際のシェーダー言語は関係ありません)