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

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

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

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


バーテックスシェーダーとかピクセルシェーダーとかを語りまくるスレ。
0434名前は開発中のものです。2010/04/26(月) 09:15:05ID:OdPbzt9V
まあWiiじゃそんな芸当はできないんだけどな
0435名前は開発中のものです。2010/04/26(月) 10:08:06ID:VZ4/K9Ds
前から思ってるけどAOは一次レイが当たった地点から
180度の超広角度のカメラで半球レンダリングすれば遮蔽率がハードウェアで求まるよな。
全ピクセル一度に並列に計算すればあっという間だろう。
このアイディアを好きに使っていい。
0436名前は開発中のものです。2010/04/26(月) 10:15:14ID:m73wbbUc
それただのSSAOだから
0437名前は開発中のものです。2010/04/26(月) 11:33:10ID:CA7fzfSf
>>433
というか、WiiでSSAOっぽいことをするとして>>432の方法で近似できんかな、と。
ピクセルの比較ができりゃいいんだからPS2でも実装できるか。
まあ、荒すぎて実用に耐えない気もするが。
0438名前は開発中のものです。2010/04/26(月) 13:42:31ID:YZYpPhAg
Light propagation volumesを実装したいと思ってるんだが
理論を詳しく説明できる日本人はいないものか・・・
原文を読んでも俺の英語力では理解できないぜ

RSMからの光源を3Dテクスチャにポイントレンダリングして
SHに変換して伝搬させるとかそんな感じだろうか?

日本にはシェーダーの最先端をゆくスレッドって無いのか
0439名前は開発中のものです。2010/04/26(月) 18:44:51ID:q9PPgRR+
難しいことしてるんだね・・・
日曜プログラマには遠い世界だ・・・
最先端を行くシェーダプログラマさん、応援してます!
0440名前は開発中のものです。2010/04/26(月) 23:50:14ID:OdPbzt9V
>>438
そんな感じ。
RSMからVirtual Point Lightsの基準になる点を選ぶ。
あとは、法線方向に半球に広がるSH係数を3Dテクスチャに書き込む。
それを6方向(±XYZ)に広げていくだけ。
使うときは3Dテクスチャをサンプリングするだけだから負荷も低い。

6方向だけだとイビツな形に広がっちゃうけど、LPVをカスケードすると緩和できる。
そのままだとオブジェクトを突き抜けて光が広がっちゃうんで、遮蔽するようなSH係数を書き込んでおいたり
SH Gradientを使って緩和したりするんだけど、そこまでやらんでもそれなりには綺麗になるよ。

大げさに書いてあるけど、実装自体はそんなに難しくないんでやってみる価値はあるかと。
0441名前は開発中のものです。2010/04/27(火) 23:13:00ID:dIei8hJx
固定機能って英語でなんて言うの?
0442名前は開発中のものです。2010/04/27(火) 23:14:37ID:or6B45UJ
Fixedなんちゃら?
0443名前は開発中のものです。2010/04/27(火) 23:40:11ID:6UsTVwUx
Fixed Fuction Shader
Fixed Pipeline
0444名前は開発中のものです。2010/04/28(水) 00:13:07ID:o4K4QM/E
そのままなんだ,どもども
0445名前は開発中のものです。2010/04/30(金) 10:03:28ID:JBQK921o
シェーダプログラムをVCみたくプロジェクト管理できるようになるのはいつごろになるんでしょうか
0446名前は開発中のものです。2010/04/30(金) 14:51:15ID:PJyGEE1y
w
0447名前は開発中のものです。2010/04/30(金) 23:11:36ID:Ll80FyeF
RenderMonkeyで十分だけど
最新のはもっと使いやすいのかな
0448名前は開発中のものです。2010/04/30(金) 23:54:38ID:NulfKJ1a
FxComposerは機能が多すぎて好きになれないなぁ
RenderMonkeyがシェーダモデル4.0に対応してくれれば最高なんだけど…
0449名前は開発中のものです。2010/05/01(土) 00:13:59ID:Tc5IDNAz
シェーダーコードを記述していていつも思うんだが、
OpenGLでもDirect3Dでも、setShader("shader-code-filename", ...若干のパラメータ);
ですぐ適用されるような関数ってどこかにないものだろうか。
0450名前は開発中のものです。2010/05/02(日) 12:47:48ID:qwH1pwxC
単なるテクスチャとディフュースマップって別ものですか?
0451名前は開発中のものです。2010/05/02(日) 14:10:24ID:4jveGEXL
テクスチャの使い方の1つがディフューズマップだろ
0452名前は開発中のものです。2010/05/02(日) 15:36:55ID:qwH1pwxC
えっと..そうですね
0453名前は開発中のものです。2010/05/06(木) 07:36:08ID:zkphwCfb
>>435
その方法は焼付けでしかまだ使われてないな
重い方のSSAOですらそれを簡略化したやつに留まってる
0454名前は開発中のものです。2010/05/06(木) 08:18:32ID:VYQ7ECsG
>>453
今のGPUはカメラが1つなのが問題だと思う。
640x480個ぐらいの視点を一度にレンダリングできれば、
プリミティブは1回だけレンダリングパイプラインに送ればいい。
現状AOが一番視覚的な効果が大きいので
GPUメーカーはここを何とかすべきだと思うのでござる
0455名前は開発中のものです。2010/05/06(木) 08:38:50ID:a6N34ubG
つまりレイトレに移行しろってことね
0456名前は開発中のものです。2010/05/06(木) 10:40:00ID:OlmSacGP
それで「リアルタイム」レンダリング出来るなら別にいいけどな・・・。
リアルタイムじゃなくていいなら現行のGPUとDirectX11で出来るわ。
0457名前は開発中のものです。2010/05/07(金) 00:25:22ID:xoQQFLxq
ComputeShaderで標準化されたおかげで
GPU Kd-Treeが結構現実的な選択肢になってきたしなぁ。
ゲームでも影と反射計算だけレイトレで、ってのはそんなに遠くない未来にできそう。
0458名前は開発中のものです。2010/05/07(金) 01:52:19ID:o17sITaf
ハイブリッドレンダリング・・・か・・・
0459名前は開発中のものです。2010/05/07(金) 16:16:33ID:z6L6ZJ31
まあ現行の技術もインチキ満載だし
0460名前は開発中のものです。2010/05/07(金) 20:35:02ID:o17sITaf
インチキで飯食ってる人は廃業かねぇ・・・
0461名前は開発中のものです。2010/05/07(金) 23:28:45ID:mLAx+DEY
携帯機が絶好調のご時勢にシェーダーバリバリ使ったグラフィックスな方が時代の流れには逆らってるだろ。
どうせ現実や写真には勝てないんだからただリアルになりゃいってもんじゃない。
パラメーターもアホほど増えるしコストもアホほど増えてるし。

0462名前は開発中のものです。2010/05/07(金) 23:57:22ID:o17sITaf
なんか、そんな感じになってきたねぇ・・・
これからのリアルタイム3Dグラフィックスはどうなっていくやら・・・
0463名前は開発中のものです。2010/05/08(土) 01:04:02ID:+hCQKb13
そもそもゲームが飽きられてるという根本的な問題
0464名前は開発中のものです。2010/05/08(土) 03:21:58ID:/t+6ZQ8p
iPhoneでもGLSLは使えるんじゃないのけ?
0465名前は開発中のものです。2010/05/08(土) 03:34:47ID:XtadjUgU
今はDirectXのパイプラインがどんどん増えて複雑化する一方だが、
いずれリセットされてソフトウェアレンダ時代に回帰(=GPGPU)するだろうと予想してるゲーム開発者もいるみたいね。
NVのFermiやIntelのLarrabeeは明確にそれを指向しているし。
でも、マイクロポリゴンもボクセルもリアルタイムレイトレも思いの外遠いなあ・・・。

遠いといえばユーザーインターフェースもだな。
2010年ともなれば、脳神経に無線介入して視覚や聴覚等の身体感覚をダイレクトに乗っ取って情報を流し込んだり
脳波で全ての操作が可能になってキーボードやマウスが不要になったり、
もう少しそれを進めて脳とコンピューターを(プロトコルを介して)接続して思考を拡張したり出来る様になると思っていたのに、
メガネかけて立体視が最先端、70、80年代と本質的には変わりなしとは幻滅もいいとこだよ。
百歩譲っても、空中に結像する立体ディスプレイ位は絶対にあると思ってた。
0466名前は開発中のものです。2010/05/08(土) 04:18:00ID:d4R1Ls+Z
胸が熱くなるねぇ・・・

でも、ソフトウェアレンダリングは一部の優秀な人間しか構築できないだろうから、
今のDirectXみたいな広がりは見られなくなるだろうね・・・
0467名前は開発中のものです。2010/05/08(土) 10:32:37ID:fA2uIeet
ソフトウェアレンダラーの時代になったときに
いったいどれだけの人間が残れるんだろうな・・・
0468名前は開発中のものです。2010/05/08(土) 11:10:49ID:+hCQKb13
おまいら今からpbrt読んどけってこった
0469名前は開発中のものです。2010/05/08(土) 12:34:25ID:ulmgTB5n
>>465
nia
ttp://akiba-pc.watch.impress.co.jp/hotline/20080830/sp_ocznia.html

網膜ディスプレイ
ttp://www.itmedia.co.jp/news/articles/0911/06/news015.html
ttp://www.itmedia.co.jp/news/articles/0809/04/news076.html

眼鏡の要らない3次元映像技術の研究開発
ttp://www.itmedia.co.jp/news/articles/1004/28/news041.html
ttp://japan.internet.com/column/webtech/20100507/8.html

求めているものと違うのは重々承知だがw
niaはネタの域。網膜ディスプレイは今750万円だっけな。ゆくゆくは3D化も視野に入れているそうだ。

ゲームの3D映像化は、たぶんハードの方でやるだろうから、我々のやる事は変わらなそうだね。
この辺は楽ですなぁ。
0470名前は開発中のものです。2010/05/09(日) 08:14:30ID:zbXbbgYt
>>440
レスthx
大分理解が進んだ気がするけど、実装方法がいまいちわからず
いくつか質問させてください

>RSMからVirtual Point Lightsの基準になる点を選ぶ。
fluxマップの各テクセル全てが二次光源になるということ?

>あとは、法線方向に半球に広がるSH係数を3Dテクスチャに書き込む。
このSH係数はどうやって求めるんだろう?任意の位置のfluxマップの近傍からどうにかするんだろうか?謎
あと3DテクスチャへのレンダリングってたしかDX10以降じゃないとできないよね?

>それを6方向(±XYZ)に広げていくだけ。
これもCPU側で全グリッドをぶんまわして処理するんかな?

>カスケード
>遮蔽するようなSH係数を書き込む
>SH Gradient
この辺に至ってはさっぱりイメージもつかない・・・

概要はなんとなくわかったけど実装となると・・・・
サンプル(擬似コード)を書いてくれると非常にありがたいのだけども
0471名前は開発中のものです。2010/05/09(日) 14:07:31ID:OSyt/H/l
>>470
> fluxマップの各テクセル全てが二次光源になるということ?
意味的にはそう。
けど実際には重点的サンプリングで個数を減らす。
シェーダコードがCryEngine3 のLPVの資料に書いてあるから見てみるといいかも。

> このSH係数はどうやって求めるんだろう?
VPLはそれぞれ点光源なんで、法線方向に半球状に分布したSH係数を作ればいい。色はRSMから引っ張ってくる。
で、この係数はZonalHarmonicsていうSHの特殊な形態+SHRotationで求めることができるんで、シェーダでも計算可。
ZH+SHRotationの詳細は、PyramidのCEDEC2006講演の資料を見るといいかも。

> あと3DテクスチャへのレンダリングってたしかDX10以降じゃないとできないよね?
DX9だとテクスチャ1枚に展開して自前でバイリニアサンプリングを実装するのが一番楽かも。
CPUを混ぜて描画先のサーフェスを引っ張ってくるのも有りだけど、重そうだな…。

> これもCPU側で全グリッドをぶんまわして処理するんかな?
シェーダで。
各イテレーションごとに、前後左右上下6方向の色から自身(現在見ているテクセル)の次の色を求める。
それを数回繰り返して拡散(=プロパゲーション)させる

> サンプル(擬似コード)を書いてくれると非常にありがたいのだけども
Crytek の資料に Injection と Propagation の疑似コードはあった希ガス。
0472名前は開発中のものです。2010/05/09(日) 14:24:45ID:NFK2xJXR
日本語でおk
0473名前は開発中のものです。2010/05/09(日) 23:55:29ID:JidFUs/v
パーティクル系の話題は無いですか?
0474名前は開発中のものです。2010/05/10(月) 00:34:35ID:4ZkZHoJB
ビルボード沢山並べとけ
0475名前は開発中のものです。2010/05/10(月) 07:43:59ID:+q2/1pH3
>>471
うおおありがとう!あなたが神か
がんばってみる
0476名前は開発中のものです。2010/05/10(月) 08:01:40ID:qqyWyual
誰か>>470-471を俺にも分かるように解説してくれ
0477名前は開発中のものです。2010/05/10(月) 08:03:25ID:CI0J4Kj0
すごいレベルの人がいるな・・・
0478名前は開発中のものです。2010/05/10(月) 08:54:39ID:HF9uRFsA
最先端のシェーダは複雑すぎて理解できなくなってきてるしなあ
0479名前は開発中のものです。2010/05/10(月) 22:39:39ID:9s3hDp0g
勉強せよせよせよせよ(残響音含む)
0480名前は開発中のものです。2010/05/10(月) 23:22:50ID:4ZkZHoJB
まぁ色々な意味で難しいよな。
最新技術がバリバリだからって職があるわけじゃねえし。

ゲームを作るための能力とは別のものだからな・・・。
ある程度地位が上がってくるとその辺勉強する時間がなくなる。
0481名前は開発中のものです。2010/05/10(月) 23:37:04ID:AGC8PD06
ぴくさーにてんしょくするといいとおもうよ
0482名前は開発中のものです。2010/05/11(火) 00:24:13ID:EoqmnJKU
偉くなったらディレクターだのマネージャーだのと
当たり前のように考えてる日本企業は遅れてるよなあ。
海の向こうみたいに、シニアエンジニアでいいじゃん。
管理職なんてやりたくないよ。。。
0483名前は開発中のものです。2010/05/11(火) 01:17:03ID:cOMIVk0P
シニアエンジニアつってもじゃぁ国立大出身の20〜30代とか相手にして
いつまでも技術的に優位に立てるかって話になるとまぁ無理だろ。
給料も若造なんかより断然いいんだから技術が同程度じゃ首切り候補にしかならんし。

経験を生かすって言う意味なら管理職は悪くないと思うけどね。
管理専任ってわけじゃなくコーディングもする現場で陣頭指揮執る感じでなら。
0484名前は開発中のものです。2010/06/12(土) 11:29:56ID:7TAHLBTP
最近シェーダを覚え始めたのですが,
シェーダファイルというのは,
ポリゴン1枚ごとに用意するようなものなのでしょうか?

全体で1ファイルくらいのイメージだったので...
0485名前は開発中のものです。2010/06/13(日) 00:09:35ID:ik5QPNjq
好きにすればいい。
そんなものは人それぞれだ。
0486名前は開発中のものです。2010/06/23(水) 15:47:34ID:h7bLJtbu
さて、シェーダが枯れてきた今日この頃、シェーダに挑戦したおれが
通りますよ
0487名前は開発中のものです。2010/06/23(水) 22:05:27ID:QTyERG+B
シェーダ時代もそろそろ終焉か・・・
10年は流行ったな。
0488名前は開発中のものです。2010/07/03(土) 21:11:29ID:e0GiQGu1
モバイルや組み込み用途でまだまだ通用するんじゃないか
0489名前は開発中のものです。2010/07/18(日) 17:22:18ID:WZ5gkLAg
ComputeShaderもシェーダって言っていいじゃない!
0490名前は開発中のものです。2010/07/30(金) 01:56:01ID:yXrThz8G
終わったとかじゃなく
標準装備じゃないの?
0491名前は開発中のものです。2010/07/30(金) 09:44:16ID:tyngkfBZ
そうだよな、じゃなきゃ

C++時代も終焉
Windows時代も終焉
PC時代も終焉
デジタル機器時代も終焉

になっちまう。
0492名前は開発中のものです。2010/07/30(金) 20:28:24ID:hrkkns/J
ネタにマジレスかk
0493名前は開発中のものです。2010/12/29(水) 17:38:08ID:6aZphMj8
sh−だ
0494名前は開発中のものです。2010/12/30(木) 14:25:41ID:5+Vmow6Z
シェーダで色々試してるけど、デバッグが大変。
0495名前は開発中のものです。2011/03/06(日) 01:53:58.13ID:uxekzd7V
まだ生きてたか
0496名前は開発中のものです。2011/03/06(日) 01:58:25.39ID:5BJTJl2g
シェーダおもしろい。
すごい絵を生み出すプログラム言語。
たまらない。
0497名前は開発中のものです。2011/08/24(水) 09:37:36.52ID:GBHBxqQG
2001年からあるのかよこのスレ
0498名前は開発中のものです。2011/08/24(水) 21:33:07.06ID:ZWTGEuMP
まだまだシェーダの時代は続くよ
0499名前は開発中のものです。2011/08/31(水) 19:53:52.29ID:aAnnapp6
最近はシェーダのアルゴリズムをノードで作る機能がちらほらあるな
実際HLSL知らない素人がすごいシェーダを作ってる
0500名前は開発中のものです。2011/08/31(水) 19:55:01.43ID:J5Qq/R9e
有名なゲームエンジンに搭載されているのをよくみかけるね。
0501名前は開発中のものです。2011/09/04(日) 20:16:59.49ID:jDK6dh7P
autodeskのサブスク入ってるとmental millが使えるらしいけど、
他にないのかな。汎用エディタ
0502名前は開発中のものです。2011/09/17(土) 21:17:04.34ID:cGXxjAm6
unityやmayaでシェーダ書きたいんですけどオススメの勉強方を教えてください。
0503名前は開発中のものです。2011/09/17(土) 21:51:26.90ID:W1GVjjON
>>502
Born Digitalのシェーダの本読みながら自分でテストするのが一番速いよ。
0504名前は開発中のものです。2011/09/17(土) 21:54:39.93ID:++nK5HX4
やっぱボーンデジタルだよね。
0505名前は開発中のものです。2011/09/17(土) 22:15:17.66ID:cGXxjAm6
>>503
やっぱそうですかね。
>>504
そのレスのおかげで騙されているのがわかった・・
0506名前は開発中のものです。2011/10/16(日) 01:49:25.36ID:Kccg3Kxx
シェーダに挑戦したいんですが、分かりやすい入門サイト教えて下さい!
0507名前は開発中のものです。2011/10/17(月) 00:34:28.42ID:avtsDiyY
>>506

マルペケつくろーどっとコム
http://marupeke296.com/

MaverickProject
http://maverickproj.web.fc2.com/pg00.html#DirectX9

ProjectASURA
http://asura.iaigiri.com/program.html

もんしょさんのサイト
http://sites.google.com/site/monshonosuana/
http://monsho.blog63.fc2.com/


書籍もイイのがあるよ。

DirectXシェーダプログラミング
仕組みからわかるゲームエフェクトテクニック
http://www.sbcr.jp/products/4797344967.html

DirectX 9 シェーダプログラミングブック
http://book.mycom.co.jp/book/4-8399-1247-5/4-8399-1247-5.shtml
有名なプログラマさんの本。
今や東大の博士号持ち。
工学的素養があると読み易いだろうけど、そうじゃなくても気合があれば大丈夫。

がんばれ!
0508名前は開発中のものです。2011/10/17(月) 14:34:27.97ID:eQZWcNCm
ttp://www.t-pot.com/program/index.html
ttp://digitalerr0r.wordpress.com/tutorials/
05095062011/10/18(火) 12:25:28.02ID:RTMVJYk1
おお、こんなにたくさん…ありがとうございます!
■ このスレッドは過去ログ倉庫に格納されています