問題タブ [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.
iphone - Retina ディスプレイ用の CoreGraphics
次のコードを使用して、読み込んだ画像に対していくつかの操作を実行していますが、Retina ディスプレイ上にあると表示がぼやけることがわかりました
これを変更して Retina 対応にする方法を教えてください。
よろしくお願いいたします。
最高、DV
opengl - GPU シェーダーでのピクセル スケーリング アルゴリズムの問題
そのため、スーパー ファミコンのような古き良きエミュレーター用のピクセル シェーダーに取り組んでいます。HQnx、2xSaI などの古典的なアルゴリズムがあり、それらは間違いなく CPU 上で実行するように作成されており、画面にブリットする前に正確に 2 倍のサイズにスケーリングされます。
GPU フラグメント シェーダーに移ると、これらのアルゴリズムは基本的に無料で実行できます。私は OpenGL と Cg/GLSL を使用していますが、この質問は Direct3D/HLSL コーダーにも当てはまります。
主な問題は、これらのアルゴリズムが何らかのアルゴリズムを使用して隣接するピクセルとブレンドして色を決定することです。しかし、この概念はシェーダー言語では非常に難しいと感じました。通常、フラグメント シェーダーを使用すると、浮動小数点のテクスチャ座標を取得できます。これを使用してテクスチャ ルックアップを実行できます。通常は、GL_LINEAR をテクスチャ フィルタとして使用します。ほとんどのピクセル シェーダーは GL_NEAREST を使用し、スムージング自体を行います。
たとえば、正確な隣接ピクセルを見つけたい場合に問題が発生します。いくつかの実装を見てきましたが、画面にアーティファクトが発生することがあります。おそらく、発生する浮動小数点の不正確さが原因です。2 のべき乗サイズのテクスチャを使用すると、ほとんどのアーティファクトが単純に消えることがわかりました。これは、浮動小数点の不正確さが発生しているという私の信念をさらに強めるものです。問題を示す Cg のサンプル フラグメント シェーダーを次に示します。
別のピクセルではなく、期待するピクセルからカラー データを取得できることを確認する方法はありますか? この問題は、2 つのピクセルの間にある座標からピクセルをクエリする可能性があるために発生すると考えられます (それが理にかなっている場合)。私が見落としているこれらのシェーダー言語に組み込み関数があることを願っています。
shader - 頂点データをフラグメントシェーダーに渡すことがD3Dで失敗するのに、OpenGLでは失敗するのはなぜですか?
パフォーマンスを向上させるために、事前に計算された値を頂点シェーダーからフラグメントシェーダーに渡すことになっているCgシェーダーを使用していますが、OpenGLのみがデータを正しく受信できるようです。D3Dでフラグメントシェーダーに渡すことができる唯一の変数はTEXCOORD0セマンティックのようですが、これは6〜7個の異なるfloat4パラメーターを渡す必要があるため悪いです。TEXUNIT0にあるテクスチャを1つだけ使用します。
コードは次のようになります。
このコードが失敗する理由はありますか?構造体のすべての変数をTEXCOORD1から5のセマンティクスにバインドしようとしましたが、D3Dでは失敗します。ただし、OpenGLでは正常に動作します。
opengl - Ogre3Dcgフラグメントシェーダーの「関数'フロア'はこのプロファイルでサポートされていません」の解決策
「Ogre3D1.7ビギナーズガイド」という本を読んでいます。cgフラグメントシェーダーを作成しましたが、「関数'floor'はこのプロファイルでサポートされていません」という不平を言いました。
フラグメントシェーダーの定義は次のとおりです。
実装はここにあります:
render - FX Composer で描画順序を制御できますか?
Nvidia FX Composer を使用して、半透明の CgFX シェーダーを作成しています。私のレンダー ビューでは、シーンの後ろにあるオブジェクトがシェーディングされたオブジェクトの上に描画されていることを期待してください。
これが私のテクニックです:
DepthMask をオンにすると、背面のオブジェクトが完全にマスクされ、透明性の目的が損なわれます。オブジェクトが前後に描かれていないようです。それを確認する方法はありますか?また、FX Composer のレンダラーが項目を画面に描画する順序を制御できますか?
c - CGとopenGLで均一な1Dテクスチャパラメータを使用してエラーを取得する
openglとcgを使用してシェーダーを作成する基本的なボリュームレンダラーを作成しようとしています。伝達関数を1次元テクスチャに配置し、フラグメントシェーダーの依存テクスチャルックアップで使用しています。私の問題は、その1Dテクスチャに対応するパラメータを有効にしようとするとopenGLエラーが発生することです。
私のコードはかなり乱雑です。現在は、基本的に「リアルタイムボリュームレンダリング」と「CGユーザーズマニュアル」から抜粋したコードのマッシュアップです。
cファイル:
フラグメントシェーダー(fvr_fragment.cg):
実行すると、プログラムは以下を出力します。
アドホックな印刷デバッグのおかげで私が見つけたエラーの原因となる行は次のとおりです。
何か案は?
directx - CG: ピクセルごとのライティングの何が問題になっていますか?
Unity と CG で基本的な n-dot-l ライティングを実行しようとしています。
私の理解では、カメラでオブジェクトを見る場所によって照明が変わるべきではありません。しかし、私の状況ではそうです。
このコードには何が欠けていますか?
モデルビュー マトリックスでもライトの位置を変換する必要がありますか?
ありがとう!
opengl - デバッグおよびテスト .cg ファイル用のプログラム
手作りの Cg ファイルがいくつかあります。私は Cg の初心者なので、形状の素材として .cg ファイルをロードできる既存のツールを使用したいと考えています。このタスクに適したツールはどれですか?
opengl - OpenGL:変換後に特定のポイントの座標を取得するにはどうすればよいですか?
(250,125、-20)にポイントがあるとします。次の変換の後、
そのポイントの現在の座標の値を取得するにはどうすればよいですか?行列をベクトルに乗算するためのサブルーチンを作成する必要がありますか?組み込みのソリューションはありますか?
opengl - 互換性のために、GLSLシェーダーのいくつかの異なるバージョンを作成するよりも良い方法はありますか?
私はOpenGLで遊び始めていますが、傾向がそれらから離れているように見えるので、固定機能をできるだけ避けたいと思います。ただし、私のグラフィックカードは古く、OpenGL2.1までしかサポートしていません。GLSL 1.20.8のシェーダーを作成し、OpenGL3.0およびOpenGL4.0カードで問題なく実行する方法はありますか?おそらく、バージョンを指定できるopenglコンテキストを要求するときに何かがありますか?