トップページgamedev
509コメント160KB

シェーダープログラマが集うスレ

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/11/08 11:06ID:???

       ∧ ∧      / ̄ ̄ ̄ ̄ ̄ ̄ ̄
       (,,・∀・)    <  ゲームにもシェーダーの時代到来でち♪
       @_)      \_______


バーテックスシェーダーとかピクセルシェーダーとかを語りまくるスレ。
0010901/11/09 00:13ID:???
自分でEXT_vertex_program風のライブラリを書くしかない。

自分でEXT_vertex_shader風のライブラリを書くしかない。
0011名無しさん@お腹いっぱい。01/11/09 00:18ID:2/pRvf1V
>>9
やっぱりEXT_とはいっても事実上ATI_vertex_shaderなのね…。
ピクセルシェーダはともかく、頂点シェーダーくらいなんとかならんのかな〜?
ちなみにGF3とRADEON8500の間でサポートできない頂点シェーダの
命令ってなんです?DirectXでも互換性ないのかな?
0012名無しさん@お腹いっぱい。01/11/09 00:22ID:???
DirectXの頂点シェーダーは互換性ありますよ。
CPUのエミュもあるし。
DirectXの頂点シェーダーは楽です。
0013名無しさん@お腹いっぱい。01/11/09 00:51ID:???
>>12
DirectXが互換性あるなら、OpenGLもドライバレベルでなんとか
ならんかなぁ…、といってみるテスト。いやそんな重要なことじゃないけどさ。

http://www.3dlabs.com/opengl/ogl2.pdf
が現実になる日を待ちつつ、NV_vertex_programを使いましょう>OpenGLの人

>CPUのエミュもあるし。
Radeonは知らないけど、NVIDIAのデトネタならOpenGLもソフトエミュしてくれる
よね?

>DirectXの頂点シェーダーは楽です。
NV_vertex_programならDirectXと大して変わらないし、EXT_vertex_shaderなら
さらに楽ゲな気がする。ちょっとしたシェーダーの違いなら頂点シェーダーを
定義している部分で分岐

if(ほにゃらら)
{
glShaderOpNEXT( ... );
}
できそうだし。(RADEONもってないから試してないけど)
#実際にバリバリ使ってくと種類増えるでしょ?>シェーダー

スレ汚しゴメソ。
0014名無しさん@お腹いっぱい。01/11/09 01:27ID:???
デトネタはNvidiaのビデオボードの人しか入れられないし・・・・
DirectXではNvlinkをうまく使えば種類は減らせるよ。
面倒だけどね。
0015名無しさん@お腹いっぱい。01/11/09 01:32ID:???
>>13
DirectXのvertex shaderの互換性はATIが妥協しての互換性だと思う。
0016名無しさん@お腹いっぱい。01/11/10 23:30ID:???
ピクセルシェーダーも1.1までならgeforce3とradeon8500で互換性ありかも。
0017名無しさん@お腹いっぱい。01/11/10 23:33ID:???
radeon8500いいかも。
安定性が問題だけど。
0018名無しさん@お腹いっぱい。01/11/11 17:42ID:???
ps.1.4
texcrd r0.rgb,t0
texld r1,t1
mov_d4 r1,r1
add r0.rgb, r0, r1
phase
texld r0,r0
add r0,r0,v1

MFCPixelShaderにコピペ
0019名無しさん@お腹いっぱい。01/11/11 20:24ID:???
意外とphase関連の制限に引っかかるかも
0020age01/11/21 20:49ID:BPHGewxM
あげ〜ん
0021名無しさん@お腹いっぱい。01/11/22 03:05ID:???
シェーダーも内包した新しいXFileの仕様作ってくんないかなー>MS
プログラマが趣味でやる分には今でも十分遊べるけど、ちょっとでも
実用的にゲームでも作ろうとするとソフトからの吐き出しとかでえらい
苦労するのよね。

 どーもMSは古いXFile互換にこだわるけど、そろそろ下位互換に
こだわらなくてもいいのにね。
0022名前は開発中のものです。01/12/06 01:02ID:???
シェーダー内包したモデルフォーマットって
いいかもね。最近はMayaとかMaxとかXSIで
シェーダー組めるらしいから是非!

OpenGL2.0も含めた汎用フォーマット希望!
0023名前は開発中のものです。01/12/06 01:14ID:???
てか、XMLの時代にXファイルは時代遅れ。
0024名前は開発中のものです。01/12/06 02:06ID:???
>>22
>最近はMayaとかMaxとかXSIでシェーダー組めるらしいから

Mayaはシェーダーというよりは、描画部分をそっくり取替えできちゃうみたいね。
http://www.aliaswavefront.com/en/Tmpl/Maya/html/index.jhtml?page=/en/Community/Games/index_m.html&style=normal
サンプルはNV20系依存なプログラムだけど、これならFireGL8800とかの独自機能
でも勝手に組み込めちゃえそう。もっともRADEON系でMayaがうまく動くかどうか
わかんないけど。

>OpenGL2.0も含めた汎用フォーマット希望!

じゃ、いっそribファイル形式で(w
0025aa01/12/07 05:20ID:hl5YByDd
VertexShaderで、スプライト表示してるけど、あまりパフォーマンス良くない。
表示サイズ変えると、CPU負荷が激増するんだけど、(XPで調査)GPUで描画してるんじゃないのかな?
誰か、やってる人いたら、教えて下さい。

自分は、XP,GF3、P31Gで、32*32SPRTが1F600前後です。

シェーダーでは、取り敢えず、
V0にロードされた頂点座標に、Trans値を足して、0-1間にCLAMPしてるだけです。
(後、TextureUV設定)
0026名前は開発中のものです。01/12/07 16:48ID:???
>>25
「自分は」のところが何言ってるのか意味不明なんだけど。
あと、CPU負荷はどうやって計測したの?
CPU負荷が増えるんじゃなくて、たんに関数がブロックしてるだけだと思うけど。
0027名前は開発中のものです。01/12/08 00:43ID:???
なかなか集わないね。
0028aa01/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待ちが起き難くなるみたい。
0029aa01/12/08 07:04ID:5/gZeAvV
vertexbuffer関係、修正したら、1Fに12000ぐらいは出るようになった。
目標50000。寝よ、、。
0030名前は開発中のものです。01/12/08 15:12ID:???
2chだとこの程度か・・・
0031名前は開発中のものです。01/12/08 15:26ID:???
                ,,.r'' ゛~~` ''ッ,,  おめーら、毛シェーダで俺様でも            )   )
              、 ゛  ,,,,,,,,,,,,,,,,,,,,, ヾ.   表現できっか?あん?     ,.、   / /
               ミ   ミ゛,へ.__, ,_ノヽ i.                .| |l   l ,´
             ミ    ミ, ( ・) {・フ 〉 ミ.          _-、i::| |ニニii '
         、,,,,ツi:     ミ,`~´ ヽ~〈  .ミ        /,‐ヽヽ`、||
       、シ``   i:      ,ゞ  'n.inヽ. .ミ          ( .〉〉/
      シ  //      ミ`    l.l ヽ"、         /  ノ
     ミ/ シ           彡 ,=こ二=.{ ミ,,      ,r'´ ,,、'゛
     ミi. /  /       ' ! w、`~^' vwv '、   ミ      〃 .ミ
0032↑ げすきー01/12/08 15:28ID:???
ハナ毛 程度なら表現できますです。はい。
#きゃー引っこ抜かないで〜!
0033名前は開発中のものです。01/12/08 15:49ID:???
ちなみに、リアルタイム系のシェーダーの場合どういう風に絵描きさんはオーサリング
してるんですか?

1・プログラマが決め撃ちのシェーダーをマテリアルとしてアサインする。
2・ShadeTreeみたいに視覚化されたシェーダー言語、もしくはもとからオーサリング
ツールにあるシェーディング構造をコンバートするインハウスツールを制作している。
3・その他

リアルタイムで実行されるシェーダーなので、制約が色々と厳しいんでしょうけど、
少なくとも2のような形でないと、絵描きさんがシェーダーのメリットを享受できない
気がするのです。なんかこのスレ見てるとまだ
(リアルタイムシェーダー=プログラマさんのオモチャ)って気が…。
0034名前は開発中のものです。01/12/08 21:28ID:JsYzjXs/
>>33
1で十分な気がしますが?
リアルタイムシェーダーなんていくらインターフェイスをビジュアル化してもデザイナーが扱いきれるものではないし。

プログラマがシェーディングモデルを組んで、
デザイナーはパラメータやテクスチャを調整するので十分なのではないかと。
0035名前は開発中のものです。01/12/08 22:03ID:???
>>34
う〜ん、デザイナーが扱えないと断言するのはどうかと。
実際オフラインのレンダリングでは多くの絵描きさんがもっと複雑な
シェーディング言語を扱ってるわけですし。

たとえば、MayaのHyperShadeみたいなGUIでシェーディングモデルを
組み立てて、それをそのままターゲットのシェーディング言語に出力
出来るのであれば、そちらのほうが表現の自由度が高まるわけで。
(たとえば、眼球に独自のシェーダーを割り当てたいなーという時に
いちいちプログラマさんにシェーダー書いてもらうのと、自分だけで
表現を完結させられるのでは生産性が全然違うし。)

もっともオンラインでは命令数の制限やその対処法(計算の結果を
テクスチャに収めておくことで複雑な計算を単純化するとか)で独自
のノウハウが必要になりそうですが。
0036名前は開発中のものです。01/12/08 23:15ID:JsYzjXs/
>>35
だから、現状のシェーダーは
法線ベクトルと視線ベクトルの内積を取って正規化し、
光線ベクトルに内積を描けたものに頂点カラーをうんぬん…
みたいなものなのよ。
そんなものいくらGUIかぶせたところで、
デザイナーが一朝一夕で使えるわけないでしょ。

MayaのHyperShadeみたいなのは
シェーディングモデルを組み立てているのではなく、
「組み合わせて」いるだけなのよ。
0037名前は開発中のものです。01/12/09 00:02ID:???
>>36

>法線ベクトルと視線ベクトルの内積を取って正規化し、
>光線ベクトルに内積を描けたものに頂点カラーをうんぬん…
>みたいなものなのよ。

たぶんこの部分は頂点シェーダーを指していると思うのですが、
大体の場合、頂点シェーダ自体はシェーダそのものというよりは
ピクセルシェーダの前段階のセットアップ処理という理解を私はしています。
たとえば、Environmentマップなどは頂点シェーダの担当になると
思うのですが、これ自体は前出のHyperShadeでいうなら、
「Environment ほにゃらら」みたいな形で一つのノードに閉じ込め
られてますよね?この部分に関しては基本的に組み合わせの中
からひとつを選択する、という考えでいいと思います。(そういう意味
ではその部分から一から作っているプログラマさんには「組み合わせ」
に思えるのかも)

つまりノードの中にEnvironmentがあれば、自動的に頂点シェーダー
側でTexGen処理を行えばよいし、バンプのノードをつけるなら
接線空間の解決を行うコードを生成すればいい。(複数のシェーディング
メソッドがあるのであれば、それを選択できるようにすればよい)
ただ、それを組み合わせる(それぞれのプリミティブなシェーディング
メソッドから得られる結果をクリエーターの任意で合成する)のは
コンテンツ作成者の自由というのはオフラインCG的には決して珍しい
アプローチではないと思うし、オンラインでも現在ならある程度やって
出来ない事ではないと思うのですけれど。

// いや、今の所オンラインCGやってないのでどうでもいい話ですけどね。失礼。
0038http://www5.nkansai.ne.jp/users/mitani-sys/01/12/09 00:20ID:L4eu0KYa
http://www5.nkansai.ne.jp/users/mitani-sys/
0039名前は開発中のものです。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ト !:!
                  '.゙'`
0040名前は開発中のものです。01/12/09 10:32ID:???
毛にうるさいファーシェーダーヲタ増殖中。
0041名前は開発中のものです。01/12/09 22:22ID:???
実際のとこ、毛をやろうとすると、オーサリングツールなどの
整備から始めなければならないし、時間コストが高すぎかも。
顔がドアップになるようなゲームなら、屈託なくスケジュールに
組み込めるんだどさぁ。
0042名前は開発中のものです。01/12/10 03:49ID:???
http://www5.nkansai.ne.jp/users/mitani-sys/
↑何、罠ってんの?
0043名前は開発中のものです。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/
シェーダー好きなら見て損はないかも?
0044名前は開発中のものです。01/12/22 13:50ID:il2vq13s
sageになってたので。
0045名前は開発中のものです。01/12/23 05:22ID:KGiFizPR
質問です。シェ−ダーで、
既にレンダリングされた画像を湾曲させたりって出来ますか?
やっぱ、テクスチャーにレンダ−したり、バックバッファ等から
テクスチャー化とか、複数回レンダ−しないと無理ですかね?
0046名前は開発中のものです。01/12/23 22:34ID:???
クソスレあげるなよ。面白そうだったのは、タイトルだけだったよ。
0047名前は開発中のものです。01/12/25 11:57ID:???
>既にレンダリングされた画像を湾曲させたりって出来ますか?
そもそも、「既にレンダリングされた」と言ってる時点で
複数回レンダは避けられないと思うが?
0048名前は開発中のものです。01/12/25 23:59ID:JVlbFtet
>>45
DirectXとかOpenGLのシェーダでと言う意味ならそういう仕組みは
ないんじゃない?
レンダーマンシェーダならimager shaderというずばりのものがあるけど
0049名前は開発中のものです。01/12/26 00:50ID:???
バックバッファをテクスチャにコピーして
ポリゴンに張って曲げるのが簡単でいいんじゃない?
ポリゴンのUV値を求めるのをシェーダー化すれば
速度的にも実用レベルだと思うけど。
0050名前は開発中のものです。01/12/26 00:59ID:???
あ、既にレンダリングした画像はあるって前提
なんだね。それなら球などのポリゴンの頂点を
スクリーン座標系に変換してから0〜1の間で正規化
してそれをテクスチャのUV値にするって感じかな。
法線で少しづらすと湾曲してみえると思うよ。
実際にはもう少し細工をするけど。
00514501/12/26 01:47ID:jEYc0Bmx
みなさん。情報ありがとうございます。
CubeMapあたりのサンプルを見ればいいんですかね。(シェ−ダー関係なさそう)

ただ、NVIDIAのEffectBrowserのサンプルで、
ティーポットがノイズ掛かったようにブレル奴があるんです。(PixcelShaderDemo)
で、ワイヤー表示してみたら、ワイヤー自体がブレテル。
どうやってるんですかね?
ソースコードがないので、挫折してます。
0052名前は開発中のものです。01/12/26 01:52ID:???
ソースコードはありますよ。
00534501/12/26 01:56ID:jEYc0Bmx
申し訳無いのですが、教えてもらえないでしょうか?
(何処か解凍するんですかね?)
0054名前は開発中のものです。01/12/26 02:07ID:???
インストールしれ。
http://developer.nvidia.com/view.asp?IO=SDKInstaller
0055名無しさん@お腹いっぱい。02/04/14 13:40ID:uOszswkY
ageます
0056名前は開発中のものです。02/04/14 19:19ID:IUlrNp1c
覚えること多すぎ。
0057名前は開発中のものです。02/04/14 19:33ID:???
んなこたーない
0058名前は開発中のものです。02/04/18 22:50ID:???
OpenGLで使いたいのですが、初心者はどこから手をつけたらよいのでしょうか?
0059名前は開発中のものです。02/04/21 15:58ID:???
>>58
とりあえず、extensionの使い方について調べましょう。
nvidiaやatiのサイトを回ってみましょう。
0060名前は開発中のものです。02/05/01 05:29ID:4Ig7zOBQ
OpenGLのエクステンションは理解しました。
実際、OpenGLのHello Worldはどれになるでしょう?
分りやすいチュートリアルサイト等はありますか?
nVidiaで考えてます。
0061名前は開発中のものです。02/05/01 07:22ID:???
このスレ廃れすぎ。
0062名前は開発中のものです。02/05/01 09:48ID:zLUCVUs6
>>60
NVIDIA extensionの初歩であればNVSDKの中のサンプル
OpenGL/src/demos/vtxprog_*, OpenGL/labs/vertexlab_* を見るのはいかがでしょう?
ドキュメントもNVSDKの中に豊富に揃っています。
# OpenGLそのものの初歩なら赤本をどうぞ。
0063名前は開発中のものです。02/05/01 09:52ID:zLUCVUs6
あとはここ
http://www.nutty.org/opengl.html
のここ
http://www.nutty.org/OpenGL/Nvidia/index.html
なんて、比較的短くてソースを追いやすい(glhとか使ってないので)
のではないかなぁと思います。
0064名前は開発中のものです。02/05/02 00:37ID:9E1QZFvU
サンクスです。
ところでnVidaのOpenGLのシェーダサンプルはnvparseが
使われていますが、nvparseのリファレンスもしくはチュートリアル
ってありませんか? これが読めないとシェーダプログラミングは
さっぱりでして…。
0065名前は開発中のものです。02/05/02 00:42ID:???
シェーダーを気楽に管理&利用出切る機構がホスィ。
0066名前は開発中のものです。02/05/02 00:53ID:WEPbf7/c
geforce4mxに換えたんでSDKのサンプルが楽しめると思いきや、
mxじゃピクセルシェーダが使えない罠。
0067名前は開発中のものです。02/05/02 01:15ID:J9nPtA9s
>>64
nvparseのソースを追うのが一番いいとおもいますけど、リファレンスらしきもの。
http://developer.nvidia.com/view.asp?IO=nvparse_for_textureshaders
あとはエフェクトブラウザのソレ系のOpenGLサンプルでも見れば大体判るんで
はないでしょうか?

>>66
OpenGLでレジスタコンビナ弄って我慢しよう。
0068名前は開発中のものです。02/05/02 09:43ID:ubXl7bBc
nVidiaのサンプルをみて、.vpファイルは頂点シェーダ、.tsはテクスチャシェーダ。
これらはDirectXのヴァーテクスシェーダ、ピクセルシェーダの解説と照らし合わせればおよその見当はつきますが、.rcpは何なんでしょう?
参考ソースを眺めるとこれがレジスタコンビナってやつだと思いますが、これはどう理解すればよいのでしょうか?具体的な役割とは何なんでしょうか?
0069名前は開発中のものです。02/05/02 10:15ID:gneenoSg
>>68
DirectXでいうピクセルシェーダはNVIDIA OpenGL拡張ではテクスチャシェーダと
レジスタコンビナに分けられます。テクスチャのフェッチなんかの命令(DirectXで
いう所のテクスチャアドレッシング命令)がテクスチャシェーダ、色やα値などの
ブレンディング命令がレジスタコンビナにあたります。
0070名前は開発中のものです。02/05/02 12:09ID:qU6ZIK66
>>67
>>68
>>69
スマン。非常にくだらない質問になるんだが宜しく頼む。
Register Combinerを「レジスタコンビナ」と読むのは
やはりこの板で流行っている洒落みたいなものだろうか。

当方この板の事情に疎いので、マジレスカコワルということで
あったら先に謝っておきます。
0071名前は開発中のものです。02/05/02 17:18ID:???
石油コンビナートを襲うタッコング
0072名前は開発中のものです。02/05/02 17:28ID:7aVH7DDk
NV_GL拡張にはあって、Direct3Dには無いという
レジスタコンバイナってどういうものなの?
概念的なもんでいいから教えてくれると嬉しいナ。
00737202/05/02 17:30ID:7aVH7DDk
スマソ>>69に書いてあったね。
でもPSにも色およびアルファ ブレンディング命令は
あるみたいだけど・・。
0074名前は開発中のものです。02/05/02 19:23ID:???
元々レジスタコンバイナってのは中間結果を保持するレジスタを
複数しかも自在に組み合わせて使えるよってな意味なので、
ピクセルシェーダのカラーブレンド部分と思ってほぼ問題ない。

ただピクセルシェーダとの大きな違いは、
倍ぐらい演算が強力ってことかな。
0075名前は開発中のものです。02/05/02 20:32ID:???
>>70
くだらん質問で盛り下げるなよ。
0076名前は開発中のものです。02/05/02 21:38ID:kbPSAs/Q
>>74
ありがとうございます。
よくわかりました。
0077名前は開発中のものです。02/05/05 05:59ID:fsxq9Obk
nvparseでパースするレジストコンビナ(.rcp)のリファレンスってありますか?
0078名前は開発中のものです。02/05/05 10:35ID:fglxpUG.
>>77
このあたりは見ました?
http://developer.nvidia.com/view.asp?IO=gdc2001_programmable_texture
0079名前は開発中のものです。02/05/05 13:23ID:???
今からsexしてきます
0080◆XMiQltls02/05/05 17:34ID:lrydOJB6
  gy
0081名前は開発中のものです。02/05/05 17:34ID:lrydOJB6
 
0082名前は開発中のものです。02/05/06 02:36ID:gSRp6gaE
ファーシェーディングのやり方1つ解った。
でも、シェーダー使わなくても出来そう。
しかも、重そう。
0083名前は開発中のものです。02/05/06 03:05ID:qE8yUjag
ゲームプログラムを作ってると
シェーダーとか見かけ華やかな部分より
ゲームの基本ルーチンを作る方が
遥かに難しく、重要だとわかってきた。
ここでシェーダーシェーダー言ってる人は
そういった基本部分をクリアした上級者か
D3Dかじった初心者かに分かれるだろう。
0084名前は開発中のものです。02/05/06 03:35ID:lT3cU/o2
>83

激しく同意。
描画周りはよく語られるが基本ルーチンを語られることは少ない。
皆さんどうやって学んでいったのでしょうか?私はいつももう少し
きれいにかけないかと悩んでいます。いろんなジャンルのゲームを
たくさん作るしかないのかな?

spinのインタビューでもあったがたくさんのシェーダーの「管理」を
どうするか語りませんか?
0085名前は開発中のものです。02/05/06 03:50ID:???
>>83
商売でないなら同意。
ゲームとしては基本ルーチンの方が全然重要なんだよね。

しかし商売となると見かけの華やかな部分こそ最重要項目なんだよ。
見た目が良くないと売れないんだよ。
なのでシェーダーを研究しないと飯食えないんだーよ!!

悲しいにょ・・・
0086名前は開発中のものです。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で買うのがいいのか?
0087名前は開発中のものです。02/05/06 04:27ID:gSRp6gaE
>>84
実際に自前で組んではいないけど、前使ってたエンジンでは、
シェーダーマネージャークラスにシェーダー追加していって、
各々のメッシュクラスにバインドさせるってやり方してた。

ここら辺って、何でもそう変わらないと思うけどね。
実際、今CUBEで組んでるエンジンでは殆どそうしてる。
0088名前は開発中のものです。02/05/06 10:36ID:???
>>84
質問なんだけど、このあたりの実装って個別に論じるほど特殊なものなのかな?
メッシュの表面のシェーディングに関するシェーダーであれば>>87のようにシェーダー
クラスをシェーダーファクトリークラスからポコポコ作ってメッシュデータクラスにくっつ
けるだけで、これ自体の考え方は固定ファンクションしかない場合でもレンダリング
ステータス/マテリアルクラス(みたいなメッシュのデータに挟み込んでいくものの管理)
が似たような形になるはず。
0089名前は開発中のものです。02/05/06 20:30ID:FxlgJW6E
つーかシェーダに汎用性なんか必要なの?
ステージ1のメインキャラ用シェーダ、
ステージ2のメインキャラ用シェーダ、
ステージ3のメインキャラ用シェーダ、
こうやって個別に作って、ステージの切り替わりと共に
シェーダも切り替えた方が良くない?
0090名前は開発中のものです。02/05/07 04:50ID:???
>>86
amazon.co.jpでもその本は売っている。
「発送可能時期:通常4〜14日以内に発送します。」だってさ。
6,932円也
0091名前は開発中のものです。02/05/07 11:36ID:edcqfV72
>78
ありがとう!見逃してました。
0092名前は開発中のものです。02/05/07 11:39ID:edcqfV72
ゲイム屋さんでなくてもDirectXやOpenGLは活用する。
自分はグラフィック屋さんなのでシェーダ・シェーダ言ってみる。
でも、ゲイム屋さんが一番技術的に進んでいる。
0093名前は開発中のものです。02/05/08 02:29ID:???
rtrtrtrttrrtrtrtfgfgfgffgffgdddddgdfssfgsdfg
0094名前は開発中のものです。02/05/09 13:23ID:GEyQ3xMs
NvidiaでOpenGL用プログラマブルシェーダを書く場合、
プログラマがユニークなコードを書くのはレジスタコンビナかヴァーテクスシェーダであってテクスチャシャーダはあまり関与する余地が無いって認識あってますか?
0095名前は開発中のものです。02/05/09 18:49ID:69MmpqZc
>>94
そのバーテックスシェーダーも
少ない引数とステップ数の為に
行う処理を選別するだけって感じだね。
頂点ブレンディングにコンストレジスタをさいて
ライトの数を減らすとか
その逆にするとか。
ユニークと呼べるほど・・。
0096名前は開発中のものです。02/05/11 21:59ID:kUBnBuYs
OpenGL、nVidiaのレジスタコンビナ・nvparseの構文に出てくる「.」(ドット演算?)は何を指すのでしょうか?
内積ですか?でも、レジスタコンビナのレジスタはスカラではなくてベクタですよね。

あと、レジスタコンビナで各RBGチャンネルを入れ替えたり、別のチャンネルにコピーしたりってできますか?
0097名前は開発中のものです。02/05/11 22:34ID:???
ドットは内積。
色の入れ替えや複製はかなり制約がある。
詳細についてはレジスタコンバイナの仕様書を嫁。
nvparseは単純にその仕様をラップしているだけだ。
00989602/05/14 15:36ID:1FhsMEKs
>97
サンクスです。謎はとめました。

も一つ初歩的な疑問なんですが、OpenGLのレジスタコンビナを有効化すれば、マルチテクスチャのパスは排他的になると考えてよいのでしょうか?
0099名前は開発中のものです。02/05/14 16:39ID:???
http://oss.sgi.com/projects/ogl-sample/registry/NV/register_combiners.txt
0100名前は開発中のものです。02/05/14 21:38ID:MbTxWkS6
 
0101名前は開発中のものです。02/05/16 22:13ID:dbGtFDq2
Matrox の Parhelia もOpenGLから細かくコントロール可能ですか?
0102名前は開発中のものです。02/05/16 23:51ID:S2/YU52M
>101
だとしてもまたメーカ依存…やだなぁ。
0103名前は開発中のものです。02/05/17 15:25ID:z6sBupnY
OpenGL2まちましょ。それでもだめってことがありそうな予感。
0104名前は開発中のものです。02/05/17 17:29ID:???
そもそもシェーダー自体が良くわからん
0105名前は開発中のものです。02/05/18 08:49ID:???
良くわからんというほど難しい物でもないよ。
座標変換等を自分で書けるだけ。
ベクトル演算を知ってれば誰でも書けるよ。
問題はシェーダー使ってまで実装したいネタがあるかどうか。
0106名前は開発中のものです。02/05/18 12:10ID:TO1S252A
GL_NV_vertex_programで実行形式の中(実行形式中に含まれるデータも含む)にシェーダ
のプログラムをASCII文字列で持ちたくないと思い、DirectXでいう所のD3DXAssembleShader
みたいな命令を探したのですが見つかりませんでした。もしかすると、GL_NV_vertex_program
では文字列以外の形でシェーダのソースを持つことは出来ませんか?
0107名前は開発中のものです。02/05/18 14:11ID:???
シェーダに手を付ける前にやること残ってるんじゃないかと。
0108名前は開発中のものです。02/05/18 15:15ID:???
>>106
NV_vertex_programの最大の欠点です。はっきり言って使う気が失せます。
潔く、ATIが提唱するGL_EXT_vertex_shaderに乗り換えましょう。
Matroxも賛同しているのでParheria-512でも使えるようになるはずです。
0109名前は開発中のものです。02/05/18 16:01ID:???
>>106=>>108
・・・・。
メモリ上でASCII文字列に変換すればいいだけの話かと思われ。
■ このスレッドは過去ログ倉庫に格納されています