2013-01-20 15 views
5

http://http.developer.nvidia.com/Cg/TessellationControlShader.htmlGLSLをCGで置き換えることは可能ですか?

私はCGに関するいくつかの質問があります。

CGはどのOpenGLバージョンをサポートしていますか?自分のサイトでは、彼らは

OpenGLの機能要件

私には少し奇妙に思えるのOpenGL 1.0

を述べます。私にとってこれは、CGでOpenGLのすべての機能を使用するには、少なくともOpenGL 1.0を用意する必要があることを意味します。だから、すべての新しいOpenGLの機能が不足していますか?

またコンピュートシェーダはジオメトリシェーダ、PixelShader、TessellationEvaluationShader、 VertexShader、FRAGMENTPROGRAM、GeometryProgram、 TessellationControlProgram、TessellationEvaluationProgram、

が欠けているように思わVERTEXPROGRAM

は、CGは現在、実行可能な代替案でありますGLSL 4.xを置き換えるには? GLSL 4.3で書くことができるCGにすべてのシェーダを書くことはできますか?

答えて

3

私はかなり確信しています。OpenGL-1.0はタイプミスです。 DirectX-11は、OpenGL-4.0の機能レベルです。数字の上ののすぐ下にどのようなキーがあるかを見てください。

実際、NVidia GPUはOpenGL-1.0ほど低いOpenGLプロファイルしかサポートしていませんでした。 OpenGL-1.0は20年前のものです。


CGは現在、GLSL 4.xを置き換えるために実行可能な代替ですか?

Cgを使用する理由はよく分かりませんが、共通のシェーダセットでOpenGLとDirectXの両方をサポートしたい場合は除きます。しかし、なぜAPI間の互換性が必要なのでしょうか?あなたが移植性を目指すなら、OpenGLはDirectXではっきりと勝ちます。

IMHO Cgを使用し続ける主な理由は、既にCgを使用している従来の製品を維持する必要がある場合です。 Cgは、OpenGLが高度なシェーディング言語を使用するよりずっと前に導入されたことを覚えておいてください。

GLSL 4.3で作成できるCGにすべてのシェーダーを書き込むことはできますか?

はい。

+0

になると思います。事は、WindowsのOpenGLドライバは、ほとんどが本当に悪いです。私は何度も開発で噛まれてしまったことです。 – fscan

+0

ありがとうdatenwolf。私は通常GLSLを使用しますが、私はunity3d(ゲームエンジン)を学び始めており、シェーダにcgを使用しています。ユニティはウィンドウの下でdirectxを使用し、他のすべてに対してはopenglを使用するため(Currenltyはopengl2.1のみをサポートしています)。私は初心者ですので、一度に1つの言語に集中したいので、GLSLを覚えることを心配せずにCGに習熟することができました。 (少なくとも現在は) –

+1

@fscan:Windows用のインテルGPUドライバは、IMHO subpar OpenGLの品質です。 NVidiaとAMD/ATIはともに、WindowsでまともなOpenGLの品質とパフォーマンスを提供します。もちろん、自分のWebサイトから取得したドライバをインストールする必要があります。 Windowsと一緒に出荷されるドライバには手が届かない。 – datenwolf

4

GLSL 4.xを置き換えるための現実的なCGはありますか? GLSL 4.3で書くことができるCGにすべてのシェーダを書くことはできますか?

いいえ、テッセレーションのようなOpenGL 4.xの機能は、Cg 3.1では公開されていますが、その他のものは公開されていません。Cgの3.1(およびそのOpenGLの名前)で

注目すべき欠けている機能は以下のとおりです。

  • コンピュートシェーダ
  • アトミックカウンター
  • シェーダ書き込み可能なストレージ・ブロック(シェーダ記憶ブロック)
  • シェーダ書き込み可能にテクスチャ(画像ロード/ストア)
  • ランタイムシェーダ関数選択(シェーダサブルーチン)

一般に、Cgは最新のOpenGLリリースの2〜3年遅れる傾向があります。

+1

物事が変わったおかしい。以前は、高級言語を使用してOpenGLのNVハードウェア上の最先端のシェーダハードウェア機能にアクセスする唯一の方法はCgでした(〜2002)。当時GLはCgの後ろに2〜3年遅れており、これがCgを使用する理由でした。アセンブリ言語のシェーダーを書くのは間違いありません。 –

4

Cg has been end-of-lifed by NVidia so it will not be developed going forward

のCg Toolkitは、積極的な開発やサポートの下、もはやレガシーNVIDIAツールキットではありません。 Cg 3.1は私たちの最後のリリースであり、開発者が引き続き利用できるようにしていますが、将来のハードウェア機能がサポートされない可能性があるため、新しい開発プロジェクトでの使用はお勧めしません。

は、だから、僕はそれが他のすべてのためのDirectXの窓のためのバックエンドとOpenGLを持ってするのは無理ではないことを追加したい、最良の答えは、いいえ、私は同意

関連する問題