168 :
デフォルトの名無しさん:2005/04/27(水) 17:49:27
上がってなかった
170 :
デフォルトの名無しさん:2005/05/14(土) 20:33:17
Cgって終わっちまったのかなぁ
PS3次第
CgもHLSLもGLSLも同じ。
174 :
デフォルトの名無しさん:2005/05/18(水) 02:07:13
ヘタレで申し訳ない。
Cg使ってみたいんだけど、どなたかFX COMPOSER日本語の解説をやってるサイト・PDFを知りませんか?
英語全く読めないんで・・・。
英語が読めないのに、CgやFX COMPOSERといった単語をどうやって捉えているのだろうか。
まあ辞書片手に英語の解説を当たった方がいいよ。
情報量が違うし、この先も英語とおつきあいするんだし。
あなたが訳してWebにすればみんなが幸せになるし。
>>175 やっぱり長い目で見ると英語で読めるようにしとかないと辛いですよね。
中学〜今(大学2年)までずーっと英語習ってるのに、全く身に付かないので既に諦めてました。
けど、嫌でも使わないといけなくなるしなぁ・・・
>>176 使えないのは今まで使う必要がなかったからです。
必要があればしぶしぶ読む→ちょっと読めるようになって楽に→スパイラル
というわけで日本語の資料が少ないわけですよ。
FX Composerって英語読めないと分からないか?
www.shader.jpに少しだけ解説がある
ちょっと待て
何か勘違いしてないか?
FX COMPOSERって、Cg用じゃなくて、HLSL用だぞ
もしOpenGLでの利用を考えてるなら絶望的。
180 :
179:2005/05/18(水) 16:33:37
追記
殆ど互換性はあるから、大抵の場合プロファイルをDirectXと言う事にしておいて、開発終了後にOpenGL用に少し書き直せばOKかと・・・
FX Composerもver2.0からCg対応のはず。
もっとすごいのを作ってみせるので、
>>169がヌルヌル動くハードを下さい。
183 :
デフォルトの名無しさん:2005/05/18(水) 18:06:02
>>182 GeForceFX程度ならどれでも動く。
>171
終わったなどトンでもないだろう。
PS3、XBOX360、Revolution、PC
どれをとっても、必須。
今後全てCgベースになる事間違いない。
(Cg=HLSL=GLSLという意味でね)
これからはデザイナーからシェーダー書けよ俺が指示した仕様でまとめとけよ!の時代ですかね?
かってにデザイナーにシェーダーツリー書いてもらうソフトも増えてきてるし
しかしパララミックおもろ
186 :
デフォルトの名無しさん:2005/06/10(金) 19:54:31
GL+CgでGLで設定したマテリアルとかをCg側で読む方法ないんかなぁ。
いちいちcgSetParameterするのがちょっと…。
>(Cg=HLSL=GLSLという意味でね)
おいおい、シェーダー書いた事ないのか?
イコールじゃないものをそんなアバウトに説明しないでくれ。
XBOX360でCg使えるとかウソを書くな。
Revolutionまで話に出すとホラ吹き野郎としか思えない。
>今後全てCgベースになる事間違いない。
間違いだらけのうえに根拠のない断定をされてもねぇ。
おまえはいつも回りにそんな話し方してるのか?呆れられるぞ。
vertexOutput VS(appData IN,
uniform float4x4 WorldViewProj
) {
vertexOutput OUT;
OUT.HPosition = mul(float4(IN.Position.xyz, 1.0f), WorldViewProj); //Dx
OUT.HPosition = mul(WorldViewProj, float4(IN.Position.xyz, 1.0f)); //Cg
OUT.TexCoord0 = IN.UV;
return OUT;
}
こんな風に書けばDirectXでもCgでも動作するコードが書けるんだがな・・・
ちなみに、行末のコメントを見て、ファイル読み込み時に不要なほうを消して使用。
次世代にシェーディングランゲージの搭載はどう考えても必須。
その言語ベースにCg使わない理由はないので、どのプラットフォームでもCg採用はガチ。
>>189 そんな中途半端なテクニックで回避せずに、
素直にDirectXでSetMatrixTransposeかコンパイラオプションを使いなさい
みんな、どこからHLSLに手を出したの?
10年間CUIしかいじったこと無い俺には、どこから手を出すべきか分からない。。
HLSLから入りたいのなら、nVidiaとかATIのデモ見て、シェーダを1〜2行書き換えて違いを見る・・・とか
その辺からはじめたら?
その後、NeHeとかのサンプルでOpenGLやらDirectXやらのポリゴン描画プログラムの感触つかんで、
フリーの3Dエンジン・・・かな。
NeHeはいいよね。たくさん勉強できる。
1枚の平坦なテクスチャをシェーダーでライティング計算して
その結果を他のテクスチャとブレンドする事って可能かな?
>>194 いまいち理解できてないんだけど、テクスチャーのアルファ値を、
光源計算で変化させたいってこと?
ディフューズをアルファ値に入れて、2回描画してブレンドすればできるんでない?
GPU GEMSとかで頂点モーフィングとか載ってるけど、
モーフ用の頂点情報ってどうやって渡すのが普通なの?
197 :
デフォルトの名無しさん:2005/09/19(月) 17:57:45
短縮して書くと、
VS_OUTPUT RenderSceneVS_TransformOnly( float4 vPos : POSITION )
{
VS_OUTPUT Output;
Output.Position = mul(vPos, g_mWorldViewProjection);
Output.Diffuse.rgb = g_MaterialDiffuseColor;
Output.Diffuse.a = 1.0f;
return Output;
}
PS_OUTPUT RenderScenePS( VS_OUTPUT In )
{
PS_OUTPUT Output;
Output.RGBColor = In.Diffuse;
return Output;
}
となっているのですが、ピクセルシェーダの引数の"VS_OUTPUT In"
のInはどこから来たのですか?どこにもInなど宣言していないのに。。。
分かるように説明して貰えませんか?
VS_OUTPUT In がInの宣言では?
どこから来たのかといえばピクセルシェーダーとして登録されてるので、
頂点シェーダーの出力から三角形を構築して補間したのち
各頂点ごとに呼び出されるのでしょう。きっと。
199 :
197:2005/09/20(火) 00:27:46
前レスから一ヶ月以上空いていたので、誰もいないかと思ってました。
ってことは、PS実行時にVS_OUTPUT Inで宣言したら
かってにInの中にはVSの出力が入ってるってことですね?
そういうことです。VSが出したのを、ピクセル単位に「補間」してるデータです。
多分VS_OUTPUTは
float4 Position : POSITION;
float4 Diffuse : COLOR0;
こんなんになってると思います。
ですので、Inの中に入っているというよりは、POSITION,COLOR0といったセマンティックを介しています。
201 :
197:2005/09/20(火) 18:35:30
親切にありがとうございます。
前からシェーダには興味があったのですが、実際よく分かってないようで。
でも慣れてくるとおもしろそうです。
これからもっと勉強します。この度はありがとうございました。
202 :
デフォルトの名無しさん:2005/09/21(水) 20:05:18
初歩的な質問だとは思いますが、
ライトのディレクションベクトルというのは
始点が頂点で終点がライトのベクトルですか?
それとも全く別ですか?
203 :
202:2005/09/21(水) 20:51:46
大変失礼しました。ライトのディレクションベクトルは
ライトの向いている方向を表すベクトルだったようです。
で、個人的にうまくいかなかったのは視点ベクトルを使っていなかったからみたい。
どのチップがどの程度cg言語に対応してるかっていうのがわかるとこないっすか?
Cgってどうなん?
このすれは寒いな・・・
こっちに関わる人ってあんまり表に出てこないから。
大きな将来を担っていると思うんだがな。
それにしても360のソフトはグラフィックに限って言えば、
物によってはすごいけど、大部分は5年前と大して変わらない。
3DMark2000のような衝撃が欲しい。
209 :
デフォルトの名無しさん:2005/12/15(木) 01:04:19
struct Light {
half3 vec;
half3 diffuse;
half3 specular;
half intensity;
};
Light g_Light;
みたいなのにアクセスするのに、cgGetNamedParameterで"g_Light.vec"って
感じでアクセスしたいんだけど。ソース呼んでアプリ上でコンパイルするときは
これでアクセスできるのに、同じソースをcgcでコンパイルしたバイナリの
読み込みだとアクセス失敗するのはなんでだろう?
>こっちに関わる人ってあんまり表に出てこないから。
さすが閉鎖的な日本だな
212 :
デフォルトの名無しさん:2006/03/18(土) 07:41:28
>>206 ブーム去ったんじゃないの?
Curlみたいに。
213 :
http://www.vector.co.jp/soft/win95/util/se072729.html:2006/03/18(土) 18:46:15
TextSS の64bit化おながいします
もしくは64bitにネイティブ対応した置換ソフトないですか?
214 :
デフォルトの名無しさん:2006/05/04(木) 23:22:17
んヴぃぢあ
Cg 1.5 Beta2+OpenGLでプログラムを書いているのですが、
配列の受け渡しがうまくいきません。マトリクスの配列を
ピクセルシェーダに渡したいのですが実行時に落ちてしまいます。
cgSetParameterArray**をcgSetParameter**に変えて適当な数の
パラメータを送るとうまく送れるのですが・・・。
そうするとindexが使えないので困っています。
うまく配列を渡せている方はおられませんでしょうか?
やったことないけどcgGLSetMatrixParameterArray*を使うんじゃないの?
はい、そうでした。
Arrayの場合はcgGLを使っています。
ですが、配列とそうじゃないときでprefixが変わるのもよくわからないので
???な感じです。
ヘッダを見てもcg.h と cgGL.hで両方揃ってる組み合わせがないのです。
まだまだマイナーな言語なのでしょうか・・・。