シェーダープログラマが集うスレ
■ このスレッドは過去ログ倉庫に格納されています
01/11/08 11:06ID:???
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
(,,・∀・) < ゲームにもシェーダーの時代到来でち♪
@_) \_______
バーテックスシェーダーとかピクセルシェーダーとかを語りまくるスレ。
25aa
01/12/07 05:20ID:hl5YByDd VertexShaderで、スプライト表示してるけど、あまりパフォーマンス良くない。
表示サイズ変えると、CPU負荷が激増するんだけど、(XPで調査)GPUで描画してるんじゃないのかな?
誰か、やってる人いたら、教えて下さい。
自分は、XP,GF3、P31Gで、32*32SPRTが1F600前後です。
シェーダーでは、取り敢えず、
V0にロードされた頂点座標に、Trans値を足して、0-1間にCLAMPしてるだけです。
(後、TextureUV設定)
表示サイズ変えると、CPU負荷が激増するんだけど、(XPで調査)GPUで描画してるんじゃないのかな?
誰か、やってる人いたら、教えて下さい。
自分は、XP,GF3、P31Gで、32*32SPRTが1F600前後です。
シェーダーでは、取り敢えず、
V0にロードされた頂点座標に、Trans値を足して、0-1間にCLAMPしてるだけです。
(後、TextureUV設定)
01/12/07 16:48ID:???
01/12/08 00:43ID:???
なかなか集わないね。
28aa
01/12/08 01:55ID:5/gZeAvV >>26
>「自分は」のところが何言ってるのか意味不明なんだけど。
すんません。(大体)1Fで表示出来るスプライト数が600個。て事です。
(プレステ以下、、)
上司に聞いたら、10万以上出る筈。と。
>あと、CPU負荷はどうやって計測したの?
XPの、Ctrl+Alt+Deleteで出る、タスクマネージャーで確認してます。
(プログラム実行した状態で)
>CPU負荷が増えるんじゃなくて、たんに関数がブロックしてるだけだと思うけど。
すんません。その通りです。w
DrawPrimをSprite数分、Callしてました。
まだ、DX弄って、1週間ぐらいで、全然理解出来てないみたいです。
取り敢えず、PointSprite(Particle)のデモが、パフォーマンス高そうなので、
調べてみます。
どうやら、頂点バッファを数回に分けて、Lock>DrawPrimしてるみたいです。
そうすると、CPU,GPU待ちが起き難くなるみたい。
>「自分は」のところが何言ってるのか意味不明なんだけど。
すんません。(大体)1Fで表示出来るスプライト数が600個。て事です。
(プレステ以下、、)
上司に聞いたら、10万以上出る筈。と。
>あと、CPU負荷はどうやって計測したの?
XPの、Ctrl+Alt+Deleteで出る、タスクマネージャーで確認してます。
(プログラム実行した状態で)
>CPU負荷が増えるんじゃなくて、たんに関数がブロックしてるだけだと思うけど。
すんません。その通りです。w
DrawPrimをSprite数分、Callしてました。
まだ、DX弄って、1週間ぐらいで、全然理解出来てないみたいです。
取り敢えず、PointSprite(Particle)のデモが、パフォーマンス高そうなので、
調べてみます。
どうやら、頂点バッファを数回に分けて、Lock>DrawPrimしてるみたいです。
そうすると、CPU,GPU待ちが起き難くなるみたい。
29aa
01/12/08 07:04ID:5/gZeAvV vertexbuffer関係、修正したら、1Fに12000ぐらいは出るようになった。
目標50000。寝よ、、。
目標50000。寝よ、、。
01/12/08 15:12ID:???
2chだとこの程度か・・・
01/12/08 15:26ID:???
,,.r'' ゛~~` ''ッ,, おめーら、毛シェーダで俺様でも ) )
、 ゛ ,,,,,,,,,,,,,,,,,,,,, ヾ. 表現できっか?あん? ,.、 / /
ミ ミ゛,へ.__, ,_ノヽ i. .| |l l ,´
ミ ミ, ( ・) {・フ 〉 ミ. _-、i::| |ニニii '
、,,,,ツi: ミ,`~´ ヽ~〈 .ミ /,‐ヽヽ`、||
、シ`` i: ,ゞ 'n.inヽ. .ミ ( .〉〉/
シ // ミ` l.l ヽ"、 / ノ
ミ/ シ 彡 ,=こ二=.{ ミ,, ,r'´ ,,、'゛
ミi. / / ' ! w、`~^' vwv '、 ミ 〃 .ミ
、 ゛ ,,,,,,,,,,,,,,,,,,,,, ヾ. 表現できっか?あん? ,.、 / /
ミ ミ゛,へ.__, ,_ノヽ i. .| |l l ,´
ミ ミ, ( ・) {・フ 〉 ミ. _-、i::| |ニニii '
、,,,,ツi: ミ,`~´ ヽ~〈 .ミ /,‐ヽヽ`、||
、シ`` i: ,ゞ 'n.inヽ. .ミ ( .〉〉/
シ // ミ` l.l ヽ"、 / ノ
ミ/ シ 彡 ,=こ二=.{ ミ,, ,r'´ ,,、'゛
ミi. / / ' ! w、`~^' vwv '、 ミ 〃 .ミ
32↑ げすきー
01/12/08 15:28ID:??? ハナ毛 程度なら表現できますです。はい。
#きゃー引っこ抜かないで〜!
#きゃー引っこ抜かないで〜!
01/12/08 15:49ID:???
ちなみに、リアルタイム系のシェーダーの場合どういう風に絵描きさんはオーサリング
してるんですか?
1・プログラマが決め撃ちのシェーダーをマテリアルとしてアサインする。
2・ShadeTreeみたいに視覚化されたシェーダー言語、もしくはもとからオーサリング
ツールにあるシェーディング構造をコンバートするインハウスツールを制作している。
3・その他
リアルタイムで実行されるシェーダーなので、制約が色々と厳しいんでしょうけど、
少なくとも2のような形でないと、絵描きさんがシェーダーのメリットを享受できない
気がするのです。なんかこのスレ見てるとまだ
(リアルタイムシェーダー=プログラマさんのオモチャ)って気が…。
してるんですか?
1・プログラマが決め撃ちのシェーダーをマテリアルとしてアサインする。
2・ShadeTreeみたいに視覚化されたシェーダー言語、もしくはもとからオーサリング
ツールにあるシェーディング構造をコンバートするインハウスツールを制作している。
3・その他
リアルタイムで実行されるシェーダーなので、制約が色々と厳しいんでしょうけど、
少なくとも2のような形でないと、絵描きさんがシェーダーのメリットを享受できない
気がするのです。なんかこのスレ見てるとまだ
(リアルタイムシェーダー=プログラマさんのオモチャ)って気が…。
34名前は開発中のものです。
01/12/08 21:28ID:JsYzjXs/ >>33
1で十分な気がしますが?
リアルタイムシェーダーなんていくらインターフェイスをビジュアル化してもデザイナーが扱いきれるものではないし。
プログラマがシェーディングモデルを組んで、
デザイナーはパラメータやテクスチャを調整するので十分なのではないかと。
1で十分な気がしますが?
リアルタイムシェーダーなんていくらインターフェイスをビジュアル化してもデザイナーが扱いきれるものではないし。
プログラマがシェーディングモデルを組んで、
デザイナーはパラメータやテクスチャを調整するので十分なのではないかと。
01/12/08 22:03ID:???
>>34
う〜ん、デザイナーが扱えないと断言するのはどうかと。
実際オフラインのレンダリングでは多くの絵描きさんがもっと複雑な
シェーディング言語を扱ってるわけですし。
たとえば、MayaのHyperShadeみたいなGUIでシェーディングモデルを
組み立てて、それをそのままターゲットのシェーディング言語に出力
出来るのであれば、そちらのほうが表現の自由度が高まるわけで。
(たとえば、眼球に独自のシェーダーを割り当てたいなーという時に
いちいちプログラマさんにシェーダー書いてもらうのと、自分だけで
表現を完結させられるのでは生産性が全然違うし。)
もっともオンラインでは命令数の制限やその対処法(計算の結果を
テクスチャに収めておくことで複雑な計算を単純化するとか)で独自
のノウハウが必要になりそうですが。
う〜ん、デザイナーが扱えないと断言するのはどうかと。
実際オフラインのレンダリングでは多くの絵描きさんがもっと複雑な
シェーディング言語を扱ってるわけですし。
たとえば、MayaのHyperShadeみたいなGUIでシェーディングモデルを
組み立てて、それをそのままターゲットのシェーディング言語に出力
出来るのであれば、そちらのほうが表現の自由度が高まるわけで。
(たとえば、眼球に独自のシェーダーを割り当てたいなーという時に
いちいちプログラマさんにシェーダー書いてもらうのと、自分だけで
表現を完結させられるのでは生産性が全然違うし。)
もっともオンラインでは命令数の制限やその対処法(計算の結果を
テクスチャに収めておくことで複雑な計算を単純化するとか)で独自
のノウハウが必要になりそうですが。
36名前は開発中のものです。
01/12/08 23:15ID:JsYzjXs/ >>35
だから、現状のシェーダーは
法線ベクトルと視線ベクトルの内積を取って正規化し、
光線ベクトルに内積を描けたものに頂点カラーをうんぬん…
みたいなものなのよ。
そんなものいくらGUIかぶせたところで、
デザイナーが一朝一夕で使えるわけないでしょ。
MayaのHyperShadeみたいなのは
シェーディングモデルを組み立てているのではなく、
「組み合わせて」いるだけなのよ。
だから、現状のシェーダーは
法線ベクトルと視線ベクトルの内積を取って正規化し、
光線ベクトルに内積を描けたものに頂点カラーをうんぬん…
みたいなものなのよ。
そんなものいくらGUIかぶせたところで、
デザイナーが一朝一夕で使えるわけないでしょ。
MayaのHyperShadeみたいなのは
シェーディングモデルを組み立てているのではなく、
「組み合わせて」いるだけなのよ。
01/12/09 00:02ID:???
>>36
>法線ベクトルと視線ベクトルの内積を取って正規化し、
>光線ベクトルに内積を描けたものに頂点カラーをうんぬん…
>みたいなものなのよ。
たぶんこの部分は頂点シェーダーを指していると思うのですが、
大体の場合、頂点シェーダ自体はシェーダそのものというよりは
ピクセルシェーダの前段階のセットアップ処理という理解を私はしています。
たとえば、Environmentマップなどは頂点シェーダの担当になると
思うのですが、これ自体は前出のHyperShadeでいうなら、
「Environment ほにゃらら」みたいな形で一つのノードに閉じ込め
られてますよね?この部分に関しては基本的に組み合わせの中
からひとつを選択する、という考えでいいと思います。(そういう意味
ではその部分から一から作っているプログラマさんには「組み合わせ」
に思えるのかも)
つまりノードの中にEnvironmentがあれば、自動的に頂点シェーダー
側でTexGen処理を行えばよいし、バンプのノードをつけるなら
接線空間の解決を行うコードを生成すればいい。(複数のシェーディング
メソッドがあるのであれば、それを選択できるようにすればよい)
ただ、それを組み合わせる(それぞれのプリミティブなシェーディング
メソッドから得られる結果をクリエーターの任意で合成する)のは
コンテンツ作成者の自由というのはオフラインCG的には決して珍しい
アプローチではないと思うし、オンラインでも現在ならある程度やって
出来ない事ではないと思うのですけれど。
// いや、今の所オンラインCGやってないのでどうでもいい話ですけどね。失礼。
>法線ベクトルと視線ベクトルの内積を取って正規化し、
>光線ベクトルに内積を描けたものに頂点カラーをうんぬん…
>みたいなものなのよ。
たぶんこの部分は頂点シェーダーを指していると思うのですが、
大体の場合、頂点シェーダ自体はシェーダそのものというよりは
ピクセルシェーダの前段階のセットアップ処理という理解を私はしています。
たとえば、Environmentマップなどは頂点シェーダの担当になると
思うのですが、これ自体は前出のHyperShadeでいうなら、
「Environment ほにゃらら」みたいな形で一つのノードに閉じ込め
られてますよね?この部分に関しては基本的に組み合わせの中
からひとつを選択する、という考えでいいと思います。(そういう意味
ではその部分から一から作っているプログラマさんには「組み合わせ」
に思えるのかも)
つまりノードの中にEnvironmentがあれば、自動的に頂点シェーダー
側でTexGen処理を行えばよいし、バンプのノードをつけるなら
接線空間の解決を行うコードを生成すればいい。(複数のシェーディング
メソッドがあるのであれば、それを選択できるようにすればよい)
ただ、それを組み合わせる(それぞれのプリミティブなシェーディング
メソッドから得られる結果をクリエーターの任意で合成する)のは
コンテンツ作成者の自由というのはオフラインCG的には決して珍しい
アプローチではないと思うし、オンラインでも現在ならある程度やって
出来ない事ではないと思うのですけれど。
// いや、今の所オンラインCGやってないのでどうでもいい話ですけどね。失礼。
01/12/09 00:20ID:L4eu0KYa
01/12/09 07:44ID:???
'''''''゙゙´ ゙゙゙゙'''''-::,,_
,-''゙ ''!;
.r'゙ i゙''
l __ i
l :,,r''' ̄ ゙゙゙゙゙̄''''''''''''-,,_ i
i ;ri!゙ ゙lll;;, i
'| ;lll|l ,,,,:;iiii;,,,, ,,,;;lllii;_ 'll|l |
.'l, レll'l ''' ,,,,, ̄ ,,,,,___ l|ト,r
'|;i|'ト :r:'llll'' ゙゙'ill⌒ l ゙.r'''
.l ゙ト i .|
'l .| :r'゙ /' ! \ l | ________
.ll,,) '|!,,, .(i;;;;;iiilllii;il)l;':: ,r''| li,,,l /
|l;,'l||ll!|lll'llllllllllllllllll,'! ||l| ll |!゙ < ここは一つ、ワシの長いヒゲをシェーダーで実際に
| i‐:リlト:,::;;;;;;;;;;;;;;,,,:l lil ´l!|.;|l゙ \ 表現してみないかね?影武者募集中。
'!:ト)' 'li, iiiiiiiiiiiii'.、l.`ll,,|:(` |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
l|!`r,.('ト.r i l゙ i |. )゙l! |
i'!.'il、.'l; .| i'l l. ; l,i,'!!'l;゙;; '|゙
゙ 'l;;;l'llll :ili;|.フ/; ,`ト.゙;l!.
;l i;''ll!|_ |_ li,, !,,l'!.lレi!ト
ト .l|l、.lli;l!i'''!,、 r l!(./
゙' '!゙゙ llレ|l,.;i,i;| ;ー.゙
゙liト !:!
'.゙'`
,-''゙ ''!;
.r'゙ i゙''
l __ i
l :,,r''' ̄ ゙゙゙゙゙̄''''''''''''-,,_ i
i ;ri!゙ ゙lll;;, i
'| ;lll|l ,,,,:;iiii;,,,, ,,,;;lllii;_ 'll|l |
.'l, レll'l ''' ,,,,, ̄ ,,,,,___ l|ト,r
'|;i|'ト :r:'llll'' ゙゙'ill⌒ l ゙.r'''
.l ゙ト i .|
'l .| :r'゙ /' ! \ l | ________
.ll,,) '|!,,, .(i;;;;;iiilllii;il)l;':: ,r''| li,,,l /
|l;,'l||ll!|lll'llllllllllllllllll,'! ||l| ll |!゙ < ここは一つ、ワシの長いヒゲをシェーダーで実際に
| i‐:リlト:,::;;;;;;;;;;;;;;,,,:l lil ´l!|.;|l゙ \ 表現してみないかね?影武者募集中。
'!:ト)' 'li, iiiiiiiiiiiii'.、l.`ll,,|:(` |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
l|!`r,.('ト.r i l゙ i |. )゙l! |
i'!.'il、.'l; .| i'l l. ; l,i,'!!'l;゙;; '|゙
゙ 'l;;;l'llll :ili;|.フ/; ,`ト.゙;l!.
;l i;''ll!|_ |_ li,, !,,l'!.lレi!ト
ト .l|l、.lli;l!i'''!,、 r l!(./
゙' '!゙゙ llレ|l,.;i,i;| ;ー.゙
゙liト !:!
'.゙'`
01/12/09 10:32ID:???
毛にうるさいファーシェーダーヲタ増殖中。
01/12/09 22:22ID:???
実際のとこ、毛をやろうとすると、オーサリングツールなどの
整備から始めなければならないし、時間コストが高すぎかも。
顔がドアップになるようなゲームなら、屈託なくスケジュールに
組み込めるんだどさぁ。
整備から始めなければならないし、時間コストが高すぎかも。
顔がドアップになるようなゲームなら、屈託なくスケジュールに
組み込めるんだどさぁ。
01/12/10 03:49ID:???
01/12/22 13:50ID:???
定期age。
>>37のいっている事は
http://www.softimage.com/Products/Xsi/v2/features.htm#rts
のような事を指しているのかな?XファイルもdotXSIをベースに作り直して
みては?>MS
あとCG板に、良スレが
http://pc.2ch.net/test/read.cgi/cg/980410607/
シェーダー好きなら見て損はないかも?
>>37のいっている事は
http://www.softimage.com/Products/Xsi/v2/features.htm#rts
のような事を指しているのかな?XファイルもdotXSIをベースに作り直して
みては?>MS
あとCG板に、良スレが
http://pc.2ch.net/test/read.cgi/cg/980410607/
シェーダー好きなら見て損はないかも?
44名前は開発中のものです。
01/12/22 13:50ID:il2vq13s sageになってたので。
45名前は開発中のものです。
01/12/23 05:22ID:KGiFizPR 質問です。シェ−ダーで、
既にレンダリングされた画像を湾曲させたりって出来ますか?
やっぱ、テクスチャーにレンダ−したり、バックバッファ等から
テクスチャー化とか、複数回レンダ−しないと無理ですかね?
既にレンダリングされた画像を湾曲させたりって出来ますか?
やっぱ、テクスチャーにレンダ−したり、バックバッファ等から
テクスチャー化とか、複数回レンダ−しないと無理ですかね?
01/12/23 22:34ID:???
クソスレあげるなよ。面白そうだったのは、タイトルだけだったよ。
01/12/25 11:57ID:???
>既にレンダリングされた画像を湾曲させたりって出来ますか?
そもそも、「既にレンダリングされた」と言ってる時点で
複数回レンダは避けられないと思うが?
そもそも、「既にレンダリングされた」と言ってる時点で
複数回レンダは避けられないと思うが?
48名前は開発中のものです。
01/12/25 23:59ID:JVlbFtet01/12/26 00:50ID:???
バックバッファをテクスチャにコピーして
ポリゴンに張って曲げるのが簡単でいいんじゃない?
ポリゴンのUV値を求めるのをシェーダー化すれば
速度的にも実用レベルだと思うけど。
ポリゴンに張って曲げるのが簡単でいいんじゃない?
ポリゴンのUV値を求めるのをシェーダー化すれば
速度的にも実用レベルだと思うけど。
01/12/26 00:59ID:???
あ、既にレンダリングした画像はあるって前提
なんだね。それなら球などのポリゴンの頂点を
スクリーン座標系に変換してから0〜1の間で正規化
してそれをテクスチャのUV値にするって感じかな。
法線で少しづらすと湾曲してみえると思うよ。
実際にはもう少し細工をするけど。
なんだね。それなら球などのポリゴンの頂点を
スクリーン座標系に変換してから0〜1の間で正規化
してそれをテクスチャのUV値にするって感じかな。
法線で少しづらすと湾曲してみえると思うよ。
実際にはもう少し細工をするけど。
5145
01/12/26 01:47ID:jEYc0Bmx みなさん。情報ありがとうございます。
CubeMapあたりのサンプルを見ればいいんですかね。(シェ−ダー関係なさそう)
ただ、NVIDIAのEffectBrowserのサンプルで、
ティーポットがノイズ掛かったようにブレル奴があるんです。(PixcelShaderDemo)
で、ワイヤー表示してみたら、ワイヤー自体がブレテル。
どうやってるんですかね?
ソースコードがないので、挫折してます。
CubeMapあたりのサンプルを見ればいいんですかね。(シェ−ダー関係なさそう)
ただ、NVIDIAのEffectBrowserのサンプルで、
ティーポットがノイズ掛かったようにブレル奴があるんです。(PixcelShaderDemo)
で、ワイヤー表示してみたら、ワイヤー自体がブレテル。
どうやってるんですかね?
ソースコードがないので、挫折してます。
01/12/26 01:52ID:???
ソースコードはありますよ。
5345
01/12/26 01:56ID:jEYc0Bmx 申し訳無いのですが、教えてもらえないでしょうか?
(何処か解凍するんですかね?)
(何処か解凍するんですかね?)
01/12/26 02:07ID:???
55名無しさん@お腹いっぱい。
02/04/14 13:40ID:uOszswkY ageます
56名前は開発中のものです。
02/04/14 19:19ID:IUlrNp1c 覚えること多すぎ。
02/04/14 19:33ID:???
んなこたーない
02/04/18 22:50ID:???
OpenGLで使いたいのですが、初心者はどこから手をつけたらよいのでしょうか?
02/04/21 15:58ID:???
60名前は開発中のものです。
02/05/01 05:29ID:4Ig7zOBQ OpenGLのエクステンションは理解しました。
実際、OpenGLのHello Worldはどれになるでしょう?
分りやすいチュートリアルサイト等はありますか?
nVidiaで考えてます。
実際、OpenGLのHello Worldはどれになるでしょう?
分りやすいチュートリアルサイト等はありますか?
nVidiaで考えてます。
02/05/01 07:22ID:???
このスレ廃れすぎ。
62名前は開発中のものです。
02/05/01 09:48ID:zLUCVUs6 >>60
NVIDIA extensionの初歩であればNVSDKの中のサンプル
OpenGL/src/demos/vtxprog_*, OpenGL/labs/vertexlab_* を見るのはいかがでしょう?
ドキュメントもNVSDKの中に豊富に揃っています。
# OpenGLそのものの初歩なら赤本をどうぞ。
NVIDIA extensionの初歩であればNVSDKの中のサンプル
OpenGL/src/demos/vtxprog_*, OpenGL/labs/vertexlab_* を見るのはいかがでしょう?
ドキュメントもNVSDKの中に豊富に揃っています。
# OpenGLそのものの初歩なら赤本をどうぞ。
63名前は開発中のものです。
02/05/01 09:52ID:zLUCVUs6 あとはここ
http://www.nutty.org/opengl.html
のここ
http://www.nutty.org/OpenGL/Nvidia/index.html
なんて、比較的短くてソースを追いやすい(glhとか使ってないので)
のではないかなぁと思います。
http://www.nutty.org/opengl.html
のここ
http://www.nutty.org/OpenGL/Nvidia/index.html
なんて、比較的短くてソースを追いやすい(glhとか使ってないので)
のではないかなぁと思います。
64名前は開発中のものです。
02/05/02 00:37ID:9E1QZFvU サンクスです。
ところでnVidaのOpenGLのシェーダサンプルはnvparseが
使われていますが、nvparseのリファレンスもしくはチュートリアル
ってありませんか? これが読めないとシェーダプログラミングは
さっぱりでして…。
ところでnVidaのOpenGLのシェーダサンプルはnvparseが
使われていますが、nvparseのリファレンスもしくはチュートリアル
ってありませんか? これが読めないとシェーダプログラミングは
さっぱりでして…。
02/05/02 00:42ID:???
シェーダーを気楽に管理&利用出切る機構がホスィ。
66名前は開発中のものです。
02/05/02 00:53ID:WEPbf7/c geforce4mxに換えたんでSDKのサンプルが楽しめると思いきや、
mxじゃピクセルシェーダが使えない罠。
mxじゃピクセルシェーダが使えない罠。
67名前は開発中のものです。
02/05/02 01:15ID:J9nPtA9s >>64
nvparseのソースを追うのが一番いいとおもいますけど、リファレンスらしきもの。
http://developer.nvidia.com/view.asp?IO=nvparse_for_textureshaders
あとはエフェクトブラウザのソレ系のOpenGLサンプルでも見れば大体判るんで
はないでしょうか?
>>66
OpenGLでレジスタコンビナ弄って我慢しよう。
nvparseのソースを追うのが一番いいとおもいますけど、リファレンスらしきもの。
http://developer.nvidia.com/view.asp?IO=nvparse_for_textureshaders
あとはエフェクトブラウザのソレ系のOpenGLサンプルでも見れば大体判るんで
はないでしょうか?
>>66
OpenGLでレジスタコンビナ弄って我慢しよう。
68名前は開発中のものです。
02/05/02 09:43ID:ubXl7bBc nVidiaのサンプルをみて、.vpファイルは頂点シェーダ、.tsはテクスチャシェーダ。
これらはDirectXのヴァーテクスシェーダ、ピクセルシェーダの解説と照らし合わせればおよその見当はつきますが、.rcpは何なんでしょう?
参考ソースを眺めるとこれがレジスタコンビナってやつだと思いますが、これはどう理解すればよいのでしょうか?具体的な役割とは何なんでしょうか?
これらはDirectXのヴァーテクスシェーダ、ピクセルシェーダの解説と照らし合わせればおよその見当はつきますが、.rcpは何なんでしょう?
参考ソースを眺めるとこれがレジスタコンビナってやつだと思いますが、これはどう理解すればよいのでしょうか?具体的な役割とは何なんでしょうか?
69名前は開発中のものです。
02/05/02 10:15ID:gneenoSg >>68
DirectXでいうピクセルシェーダはNVIDIA OpenGL拡張ではテクスチャシェーダと
レジスタコンビナに分けられます。テクスチャのフェッチなんかの命令(DirectXで
いう所のテクスチャアドレッシング命令)がテクスチャシェーダ、色やα値などの
ブレンディング命令がレジスタコンビナにあたります。
DirectXでいうピクセルシェーダはNVIDIA OpenGL拡張ではテクスチャシェーダと
レジスタコンビナに分けられます。テクスチャのフェッチなんかの命令(DirectXで
いう所のテクスチャアドレッシング命令)がテクスチャシェーダ、色やα値などの
ブレンディング命令がレジスタコンビナにあたります。
70名前は開発中のものです。
02/05/02 12:09ID:qU6ZIK6602/05/02 17:18ID:???
石油コンビナートを襲うタッコング
72名前は開発中のものです。
02/05/02 17:28ID:7aVH7DDk NV_GL拡張にはあって、Direct3Dには無いという
レジスタコンバイナってどういうものなの?
概念的なもんでいいから教えてくれると嬉しいナ。
レジスタコンバイナってどういうものなの?
概念的なもんでいいから教えてくれると嬉しいナ。
7372
02/05/02 17:30ID:7aVH7DDk02/05/02 19:23ID:???
元々レジスタコンバイナってのは中間結果を保持するレジスタを
複数しかも自在に組み合わせて使えるよってな意味なので、
ピクセルシェーダのカラーブレンド部分と思ってほぼ問題ない。
ただピクセルシェーダとの大きな違いは、
倍ぐらい演算が強力ってことかな。
複数しかも自在に組み合わせて使えるよってな意味なので、
ピクセルシェーダのカラーブレンド部分と思ってほぼ問題ない。
ただピクセルシェーダとの大きな違いは、
倍ぐらい演算が強力ってことかな。
02/05/02 20:32ID:???
>>70
くだらん質問で盛り下げるなよ。
くだらん質問で盛り下げるなよ。
76名前は開発中のものです。
02/05/02 21:38ID:kbPSAs/Q77名前は開発中のものです。
02/05/05 05:59ID:fsxq9Obk nvparseでパースするレジストコンビナ(.rcp)のリファレンスってありますか?
78名前は開発中のものです。
02/05/05 10:35ID:fglxpUG.02/05/05 13:23ID:???
今からsexしてきます
80◆XMiQltls
02/05/05 17:34ID:lrydOJB6 gy
81名前は開発中のものです。
02/05/05 17:34ID:lrydOJB682名前は開発中のものです。
02/05/06 02:36ID:gSRp6gaE ファーシェーディングのやり方1つ解った。
でも、シェーダー使わなくても出来そう。
しかも、重そう。
でも、シェーダー使わなくても出来そう。
しかも、重そう。
83名前は開発中のものです。
02/05/06 03:05ID:qE8yUjag ゲームプログラムを作ってると
シェーダーとか見かけ華やかな部分より
ゲームの基本ルーチンを作る方が
遥かに難しく、重要だとわかってきた。
ここでシェーダーシェーダー言ってる人は
そういった基本部分をクリアした上級者か
D3Dかじった初心者かに分かれるだろう。
シェーダーとか見かけ華やかな部分より
ゲームの基本ルーチンを作る方が
遥かに難しく、重要だとわかってきた。
ここでシェーダーシェーダー言ってる人は
そういった基本部分をクリアした上級者か
D3Dかじった初心者かに分かれるだろう。
84名前は開発中のものです。
02/05/06 03:35ID:lT3cU/o2 >83
激しく同意。
描画周りはよく語られるが基本ルーチンを語られることは少ない。
皆さんどうやって学んでいったのでしょうか?私はいつももう少し
きれいにかけないかと悩んでいます。いろんなジャンルのゲームを
たくさん作るしかないのかな?
spinのインタビューでもあったがたくさんのシェーダーの「管理」を
どうするか語りませんか?
激しく同意。
描画周りはよく語られるが基本ルーチンを語られることは少ない。
皆さんどうやって学んでいったのでしょうか?私はいつももう少し
きれいにかけないかと悩んでいます。いろんなジャンルのゲームを
たくさん作るしかないのかな?
spinのインタビューでもあったがたくさんのシェーダーの「管理」を
どうするか語りませんか?
02/05/06 03:50ID:???
>>83
商売でないなら同意。
ゲームとしては基本ルーチンの方が全然重要なんだよね。
しかし商売となると見かけの華やかな部分こそ最重要項目なんだよ。
見た目が良くないと売れないんだよ。
なのでシェーダーを研究しないと飯食えないんだーよ!!
悲しいにょ・・・
商売でないなら同意。
ゲームとしては基本ルーチンの方が全然重要なんだよね。
しかし商売となると見かけの華やかな部分こそ最重要項目なんだよ。
見た目が良くないと売れないんだよ。
なのでシェーダーを研究しないと飯食えないんだーよ!!
悲しいにょ・・・
86名前は開発中のものです。
02/05/06 04:11ID:lT3cU/o2 この本買った人いる?
http://www.gamedev.net/columns/books/featuredbook.asp?productid=180
Covers a wide range of rendering techniques, focusing on shaders.
だそうですよ。
洋書一番安く買うのってどうするの?Amazon.comで買うのがいいのか?
http://www.gamedev.net/columns/books/featuredbook.asp?productid=180
Covers a wide range of rendering techniques, focusing on shaders.
だそうですよ。
洋書一番安く買うのってどうするの?Amazon.comで買うのがいいのか?
87名前は開発中のものです。
02/05/06 04:27ID:gSRp6gaE >>84
実際に自前で組んではいないけど、前使ってたエンジンでは、
シェーダーマネージャークラスにシェーダー追加していって、
各々のメッシュクラスにバインドさせるってやり方してた。
ここら辺って、何でもそう変わらないと思うけどね。
実際、今CUBEで組んでるエンジンでは殆どそうしてる。
実際に自前で組んではいないけど、前使ってたエンジンでは、
シェーダーマネージャークラスにシェーダー追加していって、
各々のメッシュクラスにバインドさせるってやり方してた。
ここら辺って、何でもそう変わらないと思うけどね。
実際、今CUBEで組んでるエンジンでは殆どそうしてる。
02/05/06 10:36ID:???
89名前は開発中のものです。
02/05/06 20:30ID:FxlgJW6E つーかシェーダに汎用性なんか必要なの?
ステージ1のメインキャラ用シェーダ、
ステージ2のメインキャラ用シェーダ、
ステージ3のメインキャラ用シェーダ、
こうやって個別に作って、ステージの切り替わりと共に
シェーダも切り替えた方が良くない?
ステージ1のメインキャラ用シェーダ、
ステージ2のメインキャラ用シェーダ、
ステージ3のメインキャラ用シェーダ、
こうやって個別に作って、ステージの切り替わりと共に
シェーダも切り替えた方が良くない?
02/05/07 04:50ID:???
91名前は開発中のものです。
02/05/07 11:36ID:edcqfV72 >78
ありがとう!見逃してました。
ありがとう!見逃してました。
92名前は開発中のものです。
02/05/07 11:39ID:edcqfV72 ゲイム屋さんでなくてもDirectXやOpenGLは活用する。
自分はグラフィック屋さんなのでシェーダ・シェーダ言ってみる。
でも、ゲイム屋さんが一番技術的に進んでいる。
自分はグラフィック屋さんなのでシェーダ・シェーダ言ってみる。
でも、ゲイム屋さんが一番技術的に進んでいる。
02/05/08 02:29ID:???
rtrtrtrttrrtrtrtfgfgfgffgffgdddddgdfssfgsdfg
94名前は開発中のものです。
02/05/09 13:23ID:GEyQ3xMs NvidiaでOpenGL用プログラマブルシェーダを書く場合、
プログラマがユニークなコードを書くのはレジスタコンビナかヴァーテクスシェーダであってテクスチャシャーダはあまり関与する余地が無いって認識あってますか?
プログラマがユニークなコードを書くのはレジスタコンビナかヴァーテクスシェーダであってテクスチャシャーダはあまり関与する余地が無いって認識あってますか?
95名前は開発中のものです。
02/05/09 18:49ID:69MmpqZc >>94
そのバーテックスシェーダーも
少ない引数とステップ数の為に
行う処理を選別するだけって感じだね。
頂点ブレンディングにコンストレジスタをさいて
ライトの数を減らすとか
その逆にするとか。
ユニークと呼べるほど・・。
そのバーテックスシェーダーも
少ない引数とステップ数の為に
行う処理を選別するだけって感じだね。
頂点ブレンディングにコンストレジスタをさいて
ライトの数を減らすとか
その逆にするとか。
ユニークと呼べるほど・・。
96名前は開発中のものです。
02/05/11 21:59ID:kUBnBuYs OpenGL、nVidiaのレジスタコンビナ・nvparseの構文に出てくる「.」(ドット演算?)は何を指すのでしょうか?
内積ですか?でも、レジスタコンビナのレジスタはスカラではなくてベクタですよね。
あと、レジスタコンビナで各RBGチャンネルを入れ替えたり、別のチャンネルにコピーしたりってできますか?
内積ですか?でも、レジスタコンビナのレジスタはスカラではなくてベクタですよね。
あと、レジスタコンビナで各RBGチャンネルを入れ替えたり、別のチャンネルにコピーしたりってできますか?
02/05/11 22:34ID:???
ドットは内積。
色の入れ替えや複製はかなり制約がある。
詳細についてはレジスタコンバイナの仕様書を嫁。
nvparseは単純にその仕様をラップしているだけだ。
色の入れ替えや複製はかなり制約がある。
詳細についてはレジスタコンバイナの仕様書を嫁。
nvparseは単純にその仕様をラップしているだけだ。
9896
02/05/14 15:36ID:1FhsMEKs >97
サンクスです。謎はとめました。
も一つ初歩的な疑問なんですが、OpenGLのレジスタコンビナを有効化すれば、マルチテクスチャのパスは排他的になると考えてよいのでしょうか?
サンクスです。謎はとめました。
も一つ初歩的な疑問なんですが、OpenGLのレジスタコンビナを有効化すれば、マルチテクスチャのパスは排他的になると考えてよいのでしょうか?
02/05/14 16:39ID:???
100名前は開発中のものです。
02/05/14 21:38ID:MbTxWkS6101名前は開発中のものです。
02/05/16 22:13ID:dbGtFDq2 Matrox の Parhelia もOpenGLから細かくコントロール可能ですか?
102名前は開発中のものです。
02/05/16 23:51ID:S2/YU52M >101
だとしてもまたメーカ依存…やだなぁ。
だとしてもまたメーカ依存…やだなぁ。
103名前は開発中のものです。
02/05/17 15:25ID:z6sBupnY OpenGL2まちましょ。それでもだめってことがありそうな予感。
104名前は開発中のものです。
02/05/17 17:29ID:??? そもそもシェーダー自体が良くわからん
105名前は開発中のものです。
02/05/18 08:49ID:??? 良くわからんというほど難しい物でもないよ。
座標変換等を自分で書けるだけ。
ベクトル演算を知ってれば誰でも書けるよ。
問題はシェーダー使ってまで実装したいネタがあるかどうか。
座標変換等を自分で書けるだけ。
ベクトル演算を知ってれば誰でも書けるよ。
問題はシェーダー使ってまで実装したいネタがあるかどうか。
106名前は開発中のものです。
02/05/18 12:10ID:TO1S252A GL_NV_vertex_programで実行形式の中(実行形式中に含まれるデータも含む)にシェーダ
のプログラムをASCII文字列で持ちたくないと思い、DirectXでいう所のD3DXAssembleShader
みたいな命令を探したのですが見つかりませんでした。もしかすると、GL_NV_vertex_program
では文字列以外の形でシェーダのソースを持つことは出来ませんか?
のプログラムをASCII文字列で持ちたくないと思い、DirectXでいう所のD3DXAssembleShader
みたいな命令を探したのですが見つかりませんでした。もしかすると、GL_NV_vertex_program
では文字列以外の形でシェーダのソースを持つことは出来ませんか?
107名前は開発中のものです。
02/05/18 14:11ID:??? シェーダに手を付ける前にやること残ってるんじゃないかと。
108名前は開発中のものです。
02/05/18 15:15ID:??? >>106
NV_vertex_programの最大の欠点です。はっきり言って使う気が失せます。
潔く、ATIが提唱するGL_EXT_vertex_shaderに乗り換えましょう。
Matroxも賛同しているのでParheria-512でも使えるようになるはずです。
NV_vertex_programの最大の欠点です。はっきり言って使う気が失せます。
潔く、ATIが提唱するGL_EXT_vertex_shaderに乗り換えましょう。
Matroxも賛同しているのでParheria-512でも使えるようになるはずです。
109名前は開発中のものです。
02/05/18 16:01ID:???110名前は開発中のものです。
02/05/18 16:05ID:???111名前は開発中のものです。
02/05/18 19:22ID:???112名前は開発中のものです。
02/05/19 00:17ID:??? メモ帳をそのままぶち込めるのは楽ではあるけどね。
113名前は開発中のものです。
02/05/19 00:24ID:???114名前は開発中のものです。
02/05/19 00:34ID:??? テキスト覗かれるのがイヤなのでは?
暗号化すれば済む話ですが。
暗号化すれば済む話ですが。
115106
02/05/19 00:40ID:???116111
02/05/19 00:53ID:??? 頂点プログラムをロードする最低レベルの関数glLoadProgramNVの内部に
パーサが実装されているのって気持ち悪くないですか?
パーサが実装されているのって気持ち悪くないですか?
117106
02/05/19 01:06ID:??? >>116
描画直前のデータを持っておきたいという気持ちは結構自然なことだと思いますけど、
(俺も出来ればそうしたい)まぁOpenGLのディスプレーリストみたいなもんだと思えば
個人的には納得できなくもないです。
リリース用のプログラムに永続化された描画用データを希望してしまうのはある種の
プログラマの職業病かもしれないな…。
描画直前のデータを持っておきたいという気持ちは結構自然なことだと思いますけど、
(俺も出来ればそうしたい)まぁOpenGLのディスプレーリストみたいなもんだと思えば
個人的には納得できなくもないです。
リリース用のプログラムに永続化された描画用データを希望してしまうのはある種の
プログラマの職業病かもしれないな…。
118名前は開発中のものです。
02/05/19 01:18ID:??? 一言いわせてもらえば、
ソ ー ス が あ る の に 何 い っ て ん ね ん カ ス ど も
ソ ー ス が あ る の に 何 い っ て ん ね ん カ ス ど も
119名前は開発中のものです。
02/05/19 01:52ID:??? 何のソース?
120名前は開発中のものです。
02/05/19 03:08ID:??? OpenGL2.0もそんな感じだったりして。
121名前は開発中のものです。
02/05/19 04:07ID:??? 3DLabsによる提案ではこんな感じになるみたい。
やっぱり文字列ドリブンですな。
GLhandle programID = glCreateProgramObject();
GLhandle shaderID = glCreateShaderObject(GL_VERTEX_SHADER);
const GLubyte *sources[] = { "ソースコード1", "ソースコード2" };
glLoadShader(shaderID, 2, sources);
glCompileShader(shaderID);
glAttachShaderObject(programID, shaderID);
glLinkProgram(programID);
glUseProgramObject(programID);
やっぱり文字列ドリブンですな。
GLhandle programID = glCreateProgramObject();
GLhandle shaderID = glCreateShaderObject(GL_VERTEX_SHADER);
const GLubyte *sources[] = { "ソースコード1", "ソースコード2" };
glLoadShader(shaderID, 2, sources);
glCompileShader(shaderID);
glAttachShaderObject(programID, shaderID);
glLinkProgram(programID);
glUseProgramObject(programID);
122名前は開発中のものです。
02/05/24 02:36ID:tlRT6Yhk 保守あげ、ついでに質問。
GL_NV_vertex_program 拡張で使える関数
glVertexAttribs[1-4][dfs]vNV 関数の使い方を教えてください。
glVertexAttrib[1-4][dfs]vNV関数はサンプルでも使われているので
使い方は判るんだけれども、前者のほうは使い方がよくわからんのです。
適当な例ではないんだけど、
> float vertices[] = { x0, y0, z0, x1, ... xN-1, yN-1, zN-1 };
となっているとき、glVertexAttrib3fvNVなら
> glBegin( prim );
> for( int i=0; i<N; i++ ) glVertexAttrib3fvNV( 0, &vertices[ i * 3 ] );
> glEnd();
でうまくいったので、glVertexAttribs3fvNVで
> glBegin( prim );
> glVertexAttribs3fvNV( 0, N, vertices );
> glEnd();
とやってみてもうまくいきませんでした。
# 実際にはglVertexAttribs系は使わないんですけど、判らないと気分が悪いので。
GL_NV_vertex_program 拡張で使える関数
glVertexAttribs[1-4][dfs]vNV 関数の使い方を教えてください。
glVertexAttrib[1-4][dfs]vNV関数はサンプルでも使われているので
使い方は判るんだけれども、前者のほうは使い方がよくわからんのです。
適当な例ではないんだけど、
> float vertices[] = { x0, y0, z0, x1, ... xN-1, yN-1, zN-1 };
となっているとき、glVertexAttrib3fvNVなら
> glBegin( prim );
> for( int i=0; i<N; i++ ) glVertexAttrib3fvNV( 0, &vertices[ i * 3 ] );
> glEnd();
でうまくいったので、glVertexAttribs3fvNVで
> glBegin( prim );
> glVertexAttribs3fvNV( 0, N, vertices );
> glEnd();
とやってみてもうまくいきませんでした。
# 実際にはglVertexAttribs系は使わないんですけど、判らないと気分が悪いので。
123名前は開発中のものです。
02/05/24 07:04ID:??? (´-`).。oO(何で仕様書を読まないんだろう・・・)
The commands
void VertexAttribs{1234}{sfd}vNV(uint index, sizei n, T coords[]);
void VertexAttribs4ubvNV(uint index, sizei n, GLubyte coords[]);
specify a contiguous set of n vertex attributes. The effect of
VertexAttribs{1234}{sfd}vNV(index, n, coords)
is the same as the command sequence
#define NUM k /* where k is 1, 2, 3, or 4 components */
int i;
for (i=n-1; i>=0; i--) {
VertexAttrib{NUM}{sfd}vNV(i+index, &coords[i*NUM]);
}
VertexAttribs4ubvNV behaves similarly.
The VertexAttribNV calls equivalent to VertexAttribsNV are issued in
reverse order so that vertex program execution is provoked when index
is zero only after all the other vertex attributes have first been
specified.
The commands
void VertexAttribs{1234}{sfd}vNV(uint index, sizei n, T coords[]);
void VertexAttribs4ubvNV(uint index, sizei n, GLubyte coords[]);
specify a contiguous set of n vertex attributes. The effect of
VertexAttribs{1234}{sfd}vNV(index, n, coords)
is the same as the command sequence
#define NUM k /* where k is 1, 2, 3, or 4 components */
int i;
for (i=n-1; i>=0; i--) {
VertexAttrib{NUM}{sfd}vNV(i+index, &coords[i*NUM]);
}
VertexAttribs4ubvNV behaves similarly.
The VertexAttribNV calls equivalent to VertexAttribsNV are issued in
reverse order so that vertex program execution is provoked when index
is zero only after all the other vertex attributes have first been
specified.
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- たぬかな、結婚していた SNSで報告 生配信では入籍時期も説明 祝福殺到「おめでとう!」「幸あれ」 [muffin★]
- 自民 国会議員の歳費 月額5万円引き上げ 今国会での成立目指す [どどん★]
- 「クラウンに乗りたかった」東京・足立の車暴走 男性、容疑を否認★2 [七波羅探題★]
- 相次ぐ中国公演中止に、シンガーソングライターらが続々高市首相に怒り表明「隣国の仲間たちに対して申し訳ない」★3 [muffin★]
- 東京・足立区の盗難車死亡ひき逃げ事件 11人死傷のうち死亡した男女の身元を発表 80代の男性と20代フィリピン国籍の女性 警視庁 [どどん★]
- 《降板の申し出が》「平手友梨奈は出ません」ムロツヨシの「弁護士ドラマ」から“バディ”が消える!連ドラ撮影中にも遅刻、欠席… [Ailuropoda melanoleuca★]
- ド、ド、ド リ フ の
- 精神科行ったらさ。。
- ゲーム中僕「ここ難しいなぁ」ポテチ食ってる友「んっ?ここ?ちょっと貸して」指チュッチュ
- 【動画】慶應准教授の有野氏、高市答弁の問題点を理路整然と指摘しまいネトウヨ発狂wwwwwwwwwwww [271912485]
- お前さんらの合う国ってどこなん?
- なんか寝れないのでウマ娘の雑談とか募集
