トップページ⇒tech
217コメント58KB

【nVIDIA】  Cg  【シェーディング】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
nVIDIA社のシェーディング言語「Cg Tool Kit」について語るスレです。

・関連サイト
http://developer.nvidia.com/view.asp?IO=cg_toolkit
http://www.cgshaders.org
0083デフォルトの名無しさんNGNG
http://www.t-pot.com/
こっちはVC++でガンガッテおられる。
おまえらも見習え。
0084デフォルトの名無しさんNGNG
GeForce4MXはシェーダーついてないのでエミュレーションです。
糞遅いのは当り前。

0085デフォルトの名無しさんNGNG
>>82 の資料見ただけの素人でスマンが、
vp20はnv30でなくても使えるポイ。
これは「シェーダ」には入らないの?
漏れが把握してるのは
http://www.eastcom.ne.jp/~manabiya/senda/senda1.html
はシェーダに入らないってコトだけ・・・
0086デフォルトの名無しさんNGNG
面白そうだな。
0087デフォルトの名無しさんNGNG
Cg言語をFXで試した人いる? いい感じ?
0088デフォルトの名無しさんNGNG
肉がちょちょぎれましたが、ちょちょぎれてもよろしいでしょうか?
0089デフォルトの名無しさんNGNG
>>87
エミュじゃなくてFXでCg試してぇ。
・・・って板違いか。スマヌソン。
0090デフォルトの名無しさんNGNG
NVIDIA Cg Compiler Release 1.0 浸かってるが、
>>83 のソースは定数とかの名前が、tookit付属のサンプルと違ってるな。
Release 1.0で、変わったの?
面倒くせぇはなしだな。
009180NGNG
>>84
調べてみたよ。
http://www.cgshaders.org/articles/interview_nvidia-jul2002.php
MX4は頂点シェーダのみ対応(vs1.1)か。
シェーダはついてるけど、んなもん使えねーよ。ってことでいいよな。
0092デフォルトの名無しさんNGNG
Glideに最適化された素敵なコンパイラだ。
0093デフォルトの名無しさんNGNG
>>91
つーか、DXSDK入れたんだろ?
わざわざwebを探さなくても
DirectX Caps Viewerで見れば一目瞭然じゃん。
0094デフォルトの名無しさんNGNG
>>93
おお。助かったよ。こんなもんあるって知らぬかった。
nVIDIAのエミュドライバの有効/無効でどう変わるか調べてみるYO。
009594NGNG
>>93
>>94
nv30エミュドライバはD3Dには効かないみたいだな。
D3D Device Types ->HAL ->Caps あたり。

OpenGLの方はtoglinfoで見るとGL_EXTENSIONSがどばーって増えるな。ま当然か。
おっとスレ違いだなスマソ
0096デフォルトの名無しさんNGNG
まー、今じゃ1マソで買えるカードに載ってるからな。>GeForce4MX
むしろVertexShader1.1とかDotProduct3が付いてるだけでも喜ぶべきかと。
009794NGNG
>>96
スマン。漏れの派\50,00で狩ったx4,64MBのヤスモンだった。
以前の問題だな。
0098デフォルトの名無しさんNGNG
OpenGLでCgに関するページハケーン。
http://f3.aaacafe.ne.jp/~gsyoku/index.php?%5B%5BArticleOpenGLCg%5D%5D
0099デフォルトの名無しさんNGNG
1万で買えるFX5200で試してみようか
0100デフォルトの名無しさんNGNG
ためしてみてくれ。
0101デフォルトの名無しさんNGNG
FXで試したけど、マジ良いわ。
0102デフォルトの名無しさんNGNG
>>101
デモがすらすら動くってこと?
0103山崎渉NGNG
(^^)
0104デフォルトの名無しさんNGNG
Cg最高あげ。

32bit精度を重視した決断に拍手
0105デフォルトの名無しさんNGNG
なんでnVidiaてぼっこぼこに叩かれてるの?
どのニュースサイトみても終了のゴングがなってるけど。
0106デフォルトの名無しさんNGNG
↑ 叩いてるのはゲーヲタだけ。
CG屋にしてみると、良いよ
0107デフォルトの名無しさんNGNG
>>106
3D系のゲーヲタよりも2D系の方が叩いてる気がする。
0108デフォルトの名無しさんNGNG
NV35の発表で、ますます盛り上がりを見せるCg。

0109デフォルトの名無しさんNGNG
なんかATIに負け続けで駄目駄目だな。
5800は無かったことになってるし。
とりあえずRADEON買ってくるかな。
0110山崎渉NGNG
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0111デフォルトの名無しさんNGNG
肉がちょちょぎれましたが、ちょちょぎれてもよろしいでしょうか?
0112デフォルトの名無しさんNGNG
次スレ立てるときは使ってくだちい。

【シェー!!】 Cg 2nd vertex【ディング】
その1 http://pc2.2ch.net/test/read.cgi/tech/1028292336/
0113デフォルトの名無しさんNGNG
面白そうだな。
0114山崎 渉NGNG

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0115デフォルトの名無しさんNGNG
来月のCマガに記事が出るみたいよ
0116デフォルトの名無しさんNGNG
↑ マジ感謝
0117_NGNG
http://homepage.mac.com/hiroyuki44/
0118デフォルトの名無しさんNGNG
「The Cg Tutorial」本日発売!!
http://www.gogo3d.com/cg-tutorial.html
買わんけど。
0119デフォルトの名無しさんNGNG
>119
買ってから気付いたけど、高いじゃねーか

t-potの記事を読んでも理解が苦しい人にしか向かないような気が
HLSL専門の本がないから高くても買うしかないな
0120山崎 渉NGNG
(^^)
0121山崎 渉NGNG
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
0122デフォルトの名無しさんNGNG
>>118
その本ってCg+OpenGLなの?
0123デフォルトの名無しさんNGNG
使う予定なのでアゲ
0124デフォルトの名無しさんNGNG
HLSLもここですか?
0125デフォルトの名無しさんNGNG
VC+MFC+D3D+Cgをやりたいわけだが,参考サイト少ないな.
+Cgの部分でサンプルコードと格闘中.
おとなしくHLSLに収まるか,それともGL+Cgに切り替えるか悩ん�j
0126デフォルトの名無しさんNGNG
>>125
MFCをやるより「猫でもわかるプログラミング」っていうサイトいって
Win32APIを直接叩いたほうが100倍ぐらい応用が利く。
Win32APIは覚えるのにそんなに時間はかからない。
0127デフォルトの名無しさんNGNG
>>125
CgとHLSLって同じ物でしょ?
0128125NGNG
>>127
HLSLはCgのサブセット的な位置づけ.
Cgのマニュアル読む限りでは,HLSLには色々と制約がありそう.
0129デフォルトの名無しさんNGNG
Real-Time Shader Programming 日本語版
って本が出る(でた?)みたいなんだけど、これってどう?

目次を見る限りではたいした情報は載ってなさそうなんだけど、かったかたいませんか?
0130デフォルトの名無しさんNGNG
>126

125がほしい参考サイトってのはcgの部分ではないのか?
0131デフォルトの名無しさんNGNG
俺はHLSL使ってるけど、インライン展開が結構強力なんじゃないかなとかオモタ。
0132125NGNG

Cgでも実装はできたが,HLSLのほうが
呼び出し側のコードがシンプルだったのでこちらに決定しますた.

早速今月のCG WORLD掲載のサンプルを使ってみたがなかなかよいね.
ただ,
float4 testPS(PS_INPUT IN)
{
...
return diffClr + specClr;
}
みたいなコードが,ps_2_0では動くのに,ps_1_1ではエラーになるのはなぜ?
...
float4 resultClr = diffClr + specClr;
return resultClr;
}
と変えても同様でした.誰か理由をご存知ですか?

>>131
詳細きぼん
0133デフォルトの名無しさんNGNG
skinnedmesh.fxなんかをみるインライン展開っぽいコードがあるけど、違うのかなぁ?

0134デフォルトの名無しさんNGNG
Tiny君の後ろ髪がピンピン2本変な動きするのは、プログラム的には正常だったんだ・・・
跡で直さなきゃーとか思いながら組んでた
0135デフォルトの名無しさんNGNG
Cgいじってる人積んでるグラフィックカードどこのですか?
買おうと思ってるのですが5200でも十分ですかね?
0136デフォルトの名無しさんNGNG
age
0137デフォルトの名無しさんNGNG
つーかシェーダって何ですか?
0138デフォルトの名無しさんNGNG
test
0139デフォルトの名無しさんNGNG
>125

CgとHLSLの共通化は可能。
(っていうか、触れ込みでは完全に同一の言語 ^^ だし。)

float4x4 matWVP : WorldViewProjection; //Dx
float4x4 matWVP : WorldViewProjectionT; //Cg

こんな感じで特定の環境のみで読ませたい行末にコメントを入れ
Cgのマトリクスは転置したものを利用するようにしてやると、
シェーダのかなりの部分のコードを共通に書ける。

その他、レンダーステートの指定などで、片方の環境でしか通ら
ないものとかあるが、それもコメントで対応。

基本的書き方の形式はMicrosoftのHLSLサンプルのように
technique と pass を指定する書き方にして、そこからのシェーダ
呼び出しは Cg風に書いてる。

雛形は、nVidiaのSDKに入っている拡張子 *.fx のファイルが参考
になった。これとDirectXのSDKにある *.fx ファイルとを比較すると
共通化の道筋が見える。
0140デフォルトの名無しさんNGNG
Ver1.2 age

ってほんとに寂れてるな…
0141デフォルトの名無しさんNGNG
MacOSX対応 & OOP対応
G5標準のRadeon9600でもちゃんと動いた。最高だね。
0142デフォルトの名無しさんNGNG
>>129
やめておけ

DirectX 9.0がβ版時代に書かれてる本でカバーしてるのが
アセンブラのみで後半はただのシェーダアセンブラのリファレンス。

原著は読んだが、今読むもんじゃない。
0143デフォルトの名無しさんNGNG
理由無きage
0144デフォルトの名無しさんNGNG
使う予定なのでage
0145デフォルトの名無しさんNGNG
なんか良く理解してない人間が多いね。

DirectX : Microsoft社のマルチメディア用API群
HLSL : DirectXのシェーダー制御(GPU制御)を、今までのアセンブル風の物からC言語ライクに使えるようにした物
Cg : nVidia社のシェーダー制御(GPU制御)言語、HLSLと互換性がある

基本だが、HLSLやCg単体では機能しない。
CやC++とWinAPIやDirectXを使ったアプリのシェーダー部分(GPU制御)にHLSLやCgを使うんだよ。
でだ、HLSLってのは結局コンパイルされてアセンブリを吐いてるんだよ。そこで吐かれたコードが
m4x4 oPos, v0, c0
だったとしよう。これはoPosレジスタにv0〜v3レジスタで表す行列とc0〜c3レジスタで表す行列の積を格納する
しかし、m4x4(これはマクロだが)命令はshader2.0以降しかない。それ以下で同じ動きをするコードは
dp4 oPos.x, v0, c0
dp4 oPos.y, v0, c1
dp4 oPos.z, v0, c2
dp4 oPos.w, v0, c3
こうなる。これは2.0以前のVerでも動く。
つまり各社がうたってる簡単に出来るって事以上を求めるなら
普通にシェーダアセンブラ程度の理解は必須になってくる。
0146デフォルトの名無しさんNGNG
失礼、記述ミスでした。
dp4 oPos.x, v0, c0
dp4 oPos.y, v1, c1
dp4 oPos.z, v2, c2
dp4 oPos.w, v3, c3
0147デフォルトの名無しさんNGNG
>>145
漏れもちゃんと理解していないクチなので質問。
HLSLでシェーダバージョンを「1.x」に指定しておいて、
FXファイルを動的にコンパイルしても、例に挙げたようなコードを吐くの?

まぁ個人的に楽しんでるだけなので、バージョンの違いなんか気にしてないのが本音。
0148デフォルトの名無しさんNGNG


。  。。              CG言語はぬるぽ
         。ρ。       ううっ!出るっ!!
         ρ         ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
         mドピュッ
        C|.| /⌒⌒⌒ヽ/~ ̄ ̄ ̄ ̄ヽ
      /⌒ヽ⌒ヽ___   |  ∴ヽ  3  )
     ./  _  ゝ___)(9     (` ´) )←>>1-1000
    /  丿ヽ___,.───|彡ヽ ―◎-◎-|
    _/ )          (   Y ̄ ̄ ̄ ̄)
   (__/           \____/

0149デフォルトの名無しさんNGNG
あげ
0150デフォルトの名無しさんNGNG
age
0151デフォルトの名無しさんNGNG
6800を手に入れたがDX9もCgFXもバージョンあがんねぇ
0152デフォルトの名無しさんNGNG
0153デフォルトの名無しさん05/01/19 22:22:46
cgはnVidiaのGPUを装備してないと、使えない言語なの?
0154デフォルトの名無しさん05/01/23 00:04:31
1.3 age
0155デフォルトの名無しさん05/03/13 23:06:26
しぇー
0156デフォルトの名無しさん05/03/13 23:09:56
PS3のシェーディングはCg。
まあ、GPUがnVidiaだから当然といったら当然だが。
0157デフォルトの名無しさん05/03/18 15:51:06
GPUを使ったwavelet変換プログラムを
アジアのどっかの国の人が作ってた気がする
だれか知らない?
0158デフォルトの名無しさん05/03/18 22:56:22
>>157
さあ
0159デフォルトの名無しさん05/03/19 00:54:51
しかし、CgってのはPS3だけで他はOpenGL標準のGLSLだろう。
そろそろOpenGL2.0対応のドライバが出てきたからOpenGL使いが
動き出すころだな。
0160デフォルトの名無しさん05/03/19 01:40:00
PS3の開発環境みてたらFPSを作らせたいとしか思えんのだが
0161デフォルトの名無しさん05/03/19 12:28:35
CgはATIのカードでも動くの?
0162デフォルトの名無しさん05/03/20 02:11:04
PCでOpenGL使うならGLSLなのにPS3がCgのせいでどうするか困る。
OpenGL捨ててDirectXかWGFでHLSLにすっかなぁ。
テクスチャ圧縮とかも豊富だし。
0163デフォルトの名無しさん05/03/20 15:16:18
あげ
0164デフォルトの名無しさん2005/03/22(火) 00:15:54
スレの廃れっぷりをみると、あまり使われてないのか?
0165デフォルトの名無しさん2005/03/22(火) 17:24:25
OpenGLだけで十分なんじゃないの?
0166デフォルトの名無しさん2005/03/25(金) 14:13:32
realtime raytracerすげえな
age
0167デフォルトの名無しさん2005/04/27(水) 17:48:40
やっぱGLSLなのか?
age
0168デフォルトの名無しさん2005/04/27(水) 17:49:27
上がってなかった
0169デフォルトの名無しさん2005/05/05(木) 18:09:41
nVIDIAのSDKに入ってるOceanはすごい。一見の価値あり。
ttp://developer.nvidia.com/dev_content/fxcomposer/images/OceanWaves.jpg
これがヌルヌル動くとは。といってもこんなもんどうせnVIDIAの香具師しか書けないんだろう。
0170デフォルトの名無しさん2005/05/14(土) 20:33:17
質問です。
http://www.amazon.co.jp/exec/obidos/ASIN/4939007553/qid%3D1116070284/250-1942253-9035450
この本って、どうですか?
OpenGL + Cgなプログラムを書きたいのですが、もしかしてDirectXでの利用メインでしょうか?
あと、関数リファレンス的につかえる部分はありますか?
0171デフォルトの名無しさん2005/05/14(土) 20:37:39
Cgって終わっちまったのかなぁ
0172デフォルトの名無しさん2005/05/14(土) 20:48:30
PS3次第
0173デフォルトの名無しさん2005/05/14(土) 20:52:21
CgもHLSLもGLSLも同じ。
0174デフォルトの名無しさん2005/05/18(水) 02:07:13
ヘタレで申し訳ない。
Cg使ってみたいんだけど、どなたかFX COMPOSER日本語の解説をやってるサイト・PDFを知りませんか?
英語全く読めないんで・・・。
0175デフォルトの名無しさん2005/05/18(水) 02:23:27
英語が読めないのに、CgやFX COMPOSERといった単語をどうやって捉えているのだろうか。
まあ辞書片手に英語の解説を当たった方がいいよ。
情報量が違うし、この先も英語とおつきあいするんだし。
あなたが訳してWebにすればみんなが幸せになるし。
0176デフォルトの名無しさん2005/05/18(水) 02:44:42
>>175
やっぱり長い目で見ると英語で読めるようにしとかないと辛いですよね。
中学〜今(大学2年)までずーっと英語習ってるのに、全く身に付かないので既に諦めてました。
けど、嫌でも使わないといけなくなるしなぁ・・・
0177デフォルトの名無しさん2005/05/18(水) 05:03:31
>>176
使えないのは今まで使う必要がなかったからです。
必要があればしぶしぶ読む→ちょっと読めるようになって楽に→スパイラル
というわけで日本語の資料が少ないわけですよ。
0178デフォルトの名無しさん2005/05/18(水) 13:45:43
FX Composerって英語読めないと分からないか?
www.shader.jpに少しだけ解説がある
0179デフォルトの名無しさん2005/05/18(水) 16:27:46
ちょっと待て
何か勘違いしてないか?
FX COMPOSERって、Cg用じゃなくて、HLSL用だぞ
もしOpenGLでの利用を考えてるなら絶望的。

01801792005/05/18(水) 16:33:37
追記
殆ど互換性はあるから、大抵の場合プロファイルをDirectXと言う事にしておいて、開発終了後にOpenGL用に少し書き直せばOKかと・・・
FX Composerもver2.0からCg対応のはず。
0181デフォルトの名無しさん2005/05/18(水) 16:55:03
日本のPS3のデモより>>169の方が優れている
0182デフォルトの名無しさん2005/05/18(水) 17:59:06
もっとすごいのを作ってみせるので、>>169がヌルヌル動くハードを下さい。
■ このスレッドは過去ログ倉庫に格納されています