∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
(,,・∀・) < ゲームにもシェーダーの時代到来でち♪
@_) \_______
バーテックスシェーダーとかピクセルシェーダーとかを語りまくるスレ。
ラデオン8500買ったがハングしまくる。
鬱だ。
6 :
_:01/11/08 23:40 ID:ZvJlUtz1
シェーダーは今から覚えなくても
DX9以上になって条件分差とかが実装してから
取り組んだ方が良さそう。
コロコロ仕様変わってるし。
8 :
名無しさん@お腹いっぱい。:01/11/09 00:02 ID:2/pRvf1V
>>8 完全に同じものはNVIDIAのGF3ではハード的にサポートできない。
NV_vertex_program環境で、EXT_vertex_shader風に書きたいならば
自分でEXT_vertex_program風のライブラリを書くしかない。
10 :
9:01/11/09 00:13 ID:???
自分でEXT_vertex_program風のライブラリを書くしかない。
↓
自分でEXT_vertex_shader風のライブラリを書くしかない。
11 :
名無しさん@お腹いっぱい。:01/11/09 00:18 ID:2/pRvf1V
>>9 やっぱりEXT_とはいっても事実上ATI_vertex_shaderなのね…。
ピクセルシェーダはともかく、頂点シェーダーくらいなんとかならんのかな〜?
ちなみにGF3とRADEON8500の間でサポートできない頂点シェーダの
命令ってなんです?DirectXでも互換性ないのかな?
DirectXの頂点シェーダーは互換性ありますよ。
CPUのエミュもあるし。
DirectXの頂点シェーダーは楽です。
>>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もってないから試してないけど)
#実際にバリバリ使ってくと種類増えるでしょ?>シェーダー
スレ汚しゴメソ。
デトネタはNvidiaのビデオボードの人しか入れられないし・・・・
DirectXではNvlinkをうまく使えば種類は減らせるよ。
面倒だけどね。
>>13 DirectXのvertex shaderの互換性はATIが妥協しての互換性だと思う。
ピクセルシェーダーも1.1までならgeforce3とradeon8500で互換性ありかも。
radeon8500いいかも。
安定性が問題だけど。
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にコピペ
意外とphase関連の制限に引っかかるかも
20 :
age:01/11/21 20:49 ID:BPHGewxM
あげ〜ん
シェーダーも内包した新しいXFileの仕様作ってくんないかなー>MS
プログラマが趣味でやる分には今でも十分遊べるけど、ちょっとでも
実用的にゲームでも作ろうとするとソフトからの吐き出しとかでえらい
苦労するのよね。
どーもMSは古いXFile互換にこだわるけど、そろそろ下位互換に
こだわらなくてもいいのにね。
シェーダー内包したモデルフォーマットって
いいかもね。最近はMayaとかMaxとかXSIで
シェーダー組めるらしいから是非!
OpenGL2.0も含めた汎用フォーマット希望!
てか、XMLの時代にXファイルは時代遅れ。
25 :
aa:01/12/07 05:20 ID:hl5YByDd
VertexShaderで、スプライト表示してるけど、あまりパフォーマンス良くない。
表示サイズ変えると、CPU負荷が激増するんだけど、(XPで調査)GPUで描画してるんじゃないのかな?
誰か、やってる人いたら、教えて下さい。
自分は、XP,GF3、P31Gで、32*32SPRTが1F600前後です。
シェーダーでは、取り敢えず、
V0にロードされた頂点座標に、Trans値を足して、0-1間にCLAMPしてるだけです。
(後、TextureUV設定)
>>25 「自分は」のところが何言ってるのか意味不明なんだけど。
あと、CPU負荷はどうやって計測したの?
CPU負荷が増えるんじゃなくて、たんに関数がブロックしてるだけだと思うけど。
なかなか集わないね。
28 :
aa:01/12/08 01:55 ID:5/gZeAvV
>>26 >「自分は」のところが何言ってるのか意味不明なんだけど。
すんません。(大体)1Fで表示出来るスプライト数が600個。て事です。
(プレステ以下、、)
上司に聞いたら、10万以上出る筈。と。
>あと、CPU負荷はどうやって計測したの?
XPの、Ctrl+Alt+Deleteで出る、タスクマネージャーで確認してます。
(プログラム実行した状態で)
>CPU負荷が増えるんじゃなくて、たんに関数がブロックしてるだけだと思うけど。
すんません。その通りです。w
DrawPrimをSprite数分、Callしてました。
まだ、DX弄って、1週間ぐらいで、全然理解出来てないみたいです。
取り敢えず、PointSprite(Particle)のデモが、パフォーマンス高そうなので、
調べてみます。
どうやら、頂点バッファを数回に分けて、Lock>DrawPrimしてるみたいです。
そうすると、CPU,GPU待ちが起き難くなるみたい。
29 :
aa:01/12/08 07:04 ID:5/gZeAvV
vertexbuffer関係、修正したら、1Fに12000ぐらいは出るようになった。
目標50000。寝よ、、。
2chだとこの程度か・・・
,,.r'' ゛~~` ''ッ,, おめーら、毛シェーダで俺様でも ) )
、 ゛ ,,,,,,,,,,,,,,,,,,,,, ヾ. 表現できっか?あん? ,.、 / /
ミ ミ゛,へ.__, ,_ノヽ i. .| |l l ,´
ミ ミ, ( ・) {・フ 〉 ミ. _-、i::| |ニニii '
、,,,,ツi: ミ,`~´ ヽ~〈 .ミ /,‐ヽヽ`、||
、シ`` i: ,ゞ 'n.inヽ. .ミ ( .〉〉/
シ // ミ` l.l ヽ"、 / ノ
ミ/ シ 彡 ,=こ二=.{ ミ,, ,r'´ ,,、'゛
ミi. / / ' ! w、`~^' vwv '、 ミ 〃 .ミ
ハナ毛 程度なら表現できますです。はい。
#きゃー引っこ抜かないで〜!
ちなみに、リアルタイム系のシェーダーの場合どういう風に絵描きさんはオーサリング
してるんですか?
1・プログラマが決め撃ちのシェーダーをマテリアルとしてアサインする。
2・ShadeTreeみたいに視覚化されたシェーダー言語、もしくはもとからオーサリング
ツールにあるシェーディング構造をコンバートするインハウスツールを制作している。
3・その他
リアルタイムで実行されるシェーダーなので、制約が色々と厳しいんでしょうけど、
少なくとも2のような形でないと、絵描きさんがシェーダーのメリットを享受できない
気がするのです。なんかこのスレ見てるとまだ
(リアルタイムシェーダー=プログラマさんのオモチャ)って気が…。
34 :
名前は開発中のものです。:01/12/08 21:28 ID:JsYzjXs/
>>33 1で十分な気がしますが?
リアルタイムシェーダーなんていくらインターフェイスをビジュアル化してもデザイナーが扱いきれるものではないし。
プログラマがシェーディングモデルを組んで、
デザイナーはパラメータやテクスチャを調整するので十分なのではないかと。
>>34 う〜ん、デザイナーが扱えないと断言するのはどうかと。
実際オフラインのレンダリングでは多くの絵描きさんがもっと複雑な
シェーディング言語を扱ってるわけですし。
たとえば、MayaのHyperShadeみたいなGUIでシェーディングモデルを
組み立てて、それをそのままターゲットのシェーディング言語に出力
出来るのであれば、そちらのほうが表現の自由度が高まるわけで。
(たとえば、眼球に独自のシェーダーを割り当てたいなーという時に
いちいちプログラマさんにシェーダー書いてもらうのと、自分だけで
表現を完結させられるのでは生産性が全然違うし。)
もっともオンラインでは命令数の制限やその対処法(計算の結果を
テクスチャに収めておくことで複雑な計算を単純化するとか)で独自
のノウハウが必要になりそうですが。
36 :
名前は開発中のものです。:01/12/08 23:15 ID:JsYzjXs/
>>35 だから、現状のシェーダーは
法線ベクトルと視線ベクトルの内積を取って正規化し、
光線ベクトルに内積を描けたものに頂点カラーをうんぬん…
みたいなものなのよ。
そんなものいくらGUIかぶせたところで、
デザイナーが一朝一夕で使えるわけないでしょ。
MayaのHyperShadeみたいなのは
シェーディングモデルを組み立てているのではなく、
「組み合わせて」いるだけなのよ。
>>36 >法線ベクトルと視線ベクトルの内積を取って正規化し、
>光線ベクトルに内積を描けたものに頂点カラーをうんぬん…
>みたいなものなのよ。
たぶんこの部分は頂点シェーダーを指していると思うのですが、
大体の場合、頂点シェーダ自体はシェーダそのものというよりは
ピクセルシェーダの前段階のセットアップ処理という理解を私はしています。
たとえば、Environmentマップなどは頂点シェーダの担当になると
思うのですが、これ自体は前出のHyperShadeでいうなら、
「Environment ほにゃらら」みたいな形で一つのノードに閉じ込め
られてますよね?この部分に関しては基本的に組み合わせの中
からひとつを選択する、という考えでいいと思います。(そういう意味
ではその部分から一から作っているプログラマさんには「組み合わせ」
に思えるのかも)
つまりノードの中にEnvironmentがあれば、自動的に頂点シェーダー
側でTexGen処理を行えばよいし、バンプのノードをつけるなら
接線空間の解決を行うコードを生成すればいい。(複数のシェーディング
メソッドがあるのであれば、それを選択できるようにすればよい)
ただ、それを組み合わせる(それぞれのプリミティブなシェーディング
メソッドから得られる結果をクリエーターの任意で合成する)のは
コンテンツ作成者の自由というのはオフラインCG的には決して珍しい
アプローチではないと思うし、オンラインでも現在ならある程度やって
出来ない事ではないと思うのですけれど。
// いや、今の所オンラインCGやってないのでどうでもいい話ですけどね。失礼。
38 :
http://www5.nkansai.ne.jp/users/mitani-sys/:01/12/09 00:20 ID:L4eu0KYa
'''''''゙゙´ ゙゙゙゙'''''-::,,_
,-''゙ ''!;
.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ト !:!
'.゙'`
毛にうるさいファーシェーダーヲタ増殖中。
実際のとこ、毛をやろうとすると、オーサリングツールなどの
整備から始めなければならないし、時間コストが高すぎかも。
顔がドアップになるようなゲームなら、屈託なくスケジュールに
組み込めるんだどさぁ。
44 :
名前は開発中のものです。:01/12/22 13:50 ID:il2vq13s
sageになってたので。
45 :
名前は開発中のものです。:01/12/23 05:22 ID:KGiFizPR
質問です。シェ−ダーで、
既にレンダリングされた画像を湾曲させたりって出来ますか?
やっぱ、テクスチャーにレンダ−したり、バックバッファ等から
テクスチャー化とか、複数回レンダ−しないと無理ですかね?
クソスレあげるなよ。面白そうだったのは、タイトルだけだったよ。
>既にレンダリングされた画像を湾曲させたりって出来ますか?
そもそも、「既にレンダリングされた」と言ってる時点で
複数回レンダは避けられないと思うが?
48 :
名前は開発中のものです。:01/12/25 23:59 ID:JVlbFtet
>>45 DirectXとかOpenGLのシェーダでと言う意味ならそういう仕組みは
ないんじゃない?
レンダーマンシェーダならimager shaderというずばりのものがあるけど
バックバッファをテクスチャにコピーして
ポリゴンに張って曲げるのが簡単でいいんじゃない?
ポリゴンのUV値を求めるのをシェーダー化すれば
速度的にも実用レベルだと思うけど。
あ、既にレンダリングした画像はあるって前提
なんだね。それなら球などのポリゴンの頂点を
スクリーン座標系に変換してから0〜1の間で正規化
してそれをテクスチャのUV値にするって感じかな。
法線で少しづらすと湾曲してみえると思うよ。
実際にはもう少し細工をするけど。
51 :
45:01/12/26 01:47 ID:jEYc0Bmx
みなさん。情報ありがとうございます。
CubeMapあたりのサンプルを見ればいいんですかね。(シェ−ダー関係なさそう)
ただ、NVIDIAのEffectBrowserのサンプルで、
ティーポットがノイズ掛かったようにブレル奴があるんです。(PixcelShaderDemo)
で、ワイヤー表示してみたら、ワイヤー自体がブレテル。
どうやってるんですかね?
ソースコードがないので、挫折してます。
ソースコードはありますよ。
53 :
45:01/12/26 01:56 ID:jEYc0Bmx
申し訳無いのですが、教えてもらえないでしょうか?
(何処か解凍するんですかね?)
55 :
名無しさん@お腹いっぱい。:02/04/14 13:40 ID:uOszswkY
ageます
56 :
名前は開発中のものです。:02/04/14 19:19 ID:IUlrNp1c
覚えること多すぎ。
んなこたーない
OpenGLで使いたいのですが、初心者はどこから手をつけたらよいのでしょうか?
>>58 とりあえず、extensionの使い方について調べましょう。
nvidiaやatiのサイトを回ってみましょう。
60 :
名前は開発中のものです。:02/05/01 05:29 ID:4Ig7zOBQ
OpenGLのエクステンションは理解しました。
実際、OpenGLのHello Worldはどれになるでしょう?
分りやすいチュートリアルサイト等はありますか?
nVidiaで考えてます。
このスレ廃れすぎ。
62 :
名前は開発中のものです。:02/05/01 09:48 ID:zLUCVUs6
>>60 NVIDIA extensionの初歩であればNVSDKの中のサンプル
OpenGL/src/demos/vtxprog_*, OpenGL/labs/vertexlab_* を見るのはいかがでしょう?
ドキュメントもNVSDKの中に豊富に揃っています。
# OpenGLそのものの初歩なら赤本をどうぞ。
63 :
名前は開発中のものです。:02/05/01 09:52 ID:zLUCVUs6
64 :
名前は開発中のものです。:02/05/02 00:37 ID:9E1QZFvU
サンクスです。
ところでnVidaのOpenGLのシェーダサンプルはnvparseが
使われていますが、nvparseのリファレンスもしくはチュートリアル
ってありませんか? これが読めないとシェーダプログラミングは
さっぱりでして…。
シェーダーを気楽に管理&利用出切る機構がホスィ。
66 :
名前は開発中のものです。:02/05/02 00:53 ID:WEPbf7/c
geforce4mxに換えたんでSDKのサンプルが楽しめると思いきや、
mxじゃピクセルシェーダが使えない罠。
67 :
名前は開発中のものです。:02/05/02 01:15 ID:J9nPtA9s
68 :
名前は開発中のものです。:02/05/02 09:43 ID:ubXl7bBc
nVidiaのサンプルをみて、.vpファイルは頂点シェーダ、.tsはテクスチャシェーダ。
これらはDirectXのヴァーテクスシェーダ、ピクセルシェーダの解説と照らし合わせればおよその見当はつきますが、.rcpは何なんでしょう?
参考ソースを眺めるとこれがレジスタコンビナってやつだと思いますが、これはどう理解すればよいのでしょうか?具体的な役割とは何なんでしょうか?
69 :
名前は開発中のものです。:02/05/02 10:15 ID:gneenoSg
>>68 DirectXでいうピクセルシェーダはNVIDIA OpenGL拡張ではテクスチャシェーダと
レジスタコンビナに分けられます。テクスチャのフェッチなんかの命令(DirectXで
いう所のテクスチャアドレッシング命令)がテクスチャシェーダ、色やα値などの
ブレンディング命令がレジスタコンビナにあたります。
70 :
名前は開発中のものです。:02/05/02 12:09 ID:qU6ZIK66
>>67 >>68 >>69 スマン。非常にくだらない質問になるんだが宜しく頼む。
Register Combinerを「レジスタコンビナ」と読むのは
やはりこの板で流行っている洒落みたいなものだろうか。
当方この板の事情に疎いので、マジレスカコワルということで
あったら先に謝っておきます。
石油コンビナートを襲うタッコング
72 :
名前は開発中のものです。:02/05/02 17:28 ID:7aVH7DDk
NV_GL拡張にはあって、Direct3Dには無いという
レジスタコンバイナってどういうものなの?
概念的なもんでいいから教えてくれると嬉しいナ。
73 :
72:02/05/02 17:30 ID:7aVH7DDk
スマソ
>>69に書いてあったね。
でもPSにも色およびアルファ ブレンディング命令は
あるみたいだけど・・。
元々レジスタコンバイナってのは中間結果を保持するレジスタを
複数しかも自在に組み合わせて使えるよってな意味なので、
ピクセルシェーダのカラーブレンド部分と思ってほぼ問題ない。
ただピクセルシェーダとの大きな違いは、
倍ぐらい演算が強力ってことかな。
76 :
名前は開発中のものです。:02/05/02 21:38 ID:kbPSAs/Q
>>74 ありがとうございます。
よくわかりました。
77 :
名前は開発中のものです。:02/05/05 05:59 ID:fsxq9Obk
nvparseでパースするレジストコンビナ(.rcp)のリファレンスってありますか?
78 :
名前は開発中のものです。:02/05/05 10:35 ID:fglxpUG.
今からsexしてきます
80 :
◆XMiQltls:02/05/05 17:34 ID:lrydOJB6
gy
81 :
名前は開発中のものです。:02/05/05 17:34 ID:lrydOJB6
82 :
名前は開発中のものです。:02/05/06 02:36 ID:gSRp6gaE
ファーシェーディングのやり方1つ解った。
でも、シェーダー使わなくても出来そう。
しかも、重そう。
83 :
名前は開発中のものです。:02/05/06 03:05 ID:qE8yUjag
ゲームプログラムを作ってると
シェーダーとか見かけ華やかな部分より
ゲームの基本ルーチンを作る方が
遥かに難しく、重要だとわかってきた。
ここでシェーダーシェーダー言ってる人は
そういった基本部分をクリアした上級者か
D3Dかじった初心者かに分かれるだろう。
84 :
名前は開発中のものです。:02/05/06 03:35 ID:lT3cU/o2
>83
激しく同意。
描画周りはよく語られるが基本ルーチンを語られることは少ない。
皆さんどうやって学んでいったのでしょうか?私はいつももう少し
きれいにかけないかと悩んでいます。いろんなジャンルのゲームを
たくさん作るしかないのかな?
spinのインタビューでもあったがたくさんのシェーダーの「管理」を
どうするか語りませんか?
>>83 商売でないなら同意。
ゲームとしては基本ルーチンの方が全然重要なんだよね。
しかし商売となると見かけの華やかな部分こそ最重要項目なんだよ。
見た目が良くないと売れないんだよ。
なのでシェーダーを研究しないと飯食えないんだーよ!!
悲しいにょ・・・
86 :
名前は開発中のものです。:02/05/06 04:11 ID:lT3cU/o2
87 :
名前は開発中のものです。:02/05/06 04:27 ID:gSRp6gaE
>>84 実際に自前で組んではいないけど、前使ってたエンジンでは、
シェーダーマネージャークラスにシェーダー追加していって、
各々のメッシュクラスにバインドさせるってやり方してた。
ここら辺って、何でもそう変わらないと思うけどね。
実際、今CUBEで組んでるエンジンでは殆どそうしてる。
>>84 質問なんだけど、このあたりの実装って個別に論じるほど特殊なものなのかな?
メッシュの表面のシェーディングに関するシェーダーであれば
>>87のようにシェーダー
クラスをシェーダーファクトリークラスからポコポコ作ってメッシュデータクラスにくっつ
けるだけで、これ自体の考え方は固定ファンクションしかない場合でもレンダリング
ステータス/マテリアルクラス(みたいなメッシュのデータに挟み込んでいくものの管理)
が似たような形になるはず。
89 :
名前は開発中のものです。:02/05/06 20:30 ID:FxlgJW6E
つーかシェーダに汎用性なんか必要なの?
ステージ1のメインキャラ用シェーダ、
ステージ2のメインキャラ用シェーダ、
ステージ3のメインキャラ用シェーダ、
こうやって個別に作って、ステージの切り替わりと共に
シェーダも切り替えた方が良くない?
>>86 amazon.co.jpでもその本は売っている。
「発送可能時期:通常4〜14日以内に発送します。」だってさ。
6,932円也
91 :
名前は開発中のものです。:02/05/07 11:36 ID:edcqfV72
>78
ありがとう!見逃してました。
92 :
名前は開発中のものです。:02/05/07 11:39 ID:edcqfV72
ゲイム屋さんでなくてもDirectXやOpenGLは活用する。
自分はグラフィック屋さんなのでシェーダ・シェーダ言ってみる。
でも、ゲイム屋さんが一番技術的に進んでいる。
rtrtrtrttrrtrtrtfgfgfgffgffgdddddgdfssfgsdfg
94 :
名前は開発中のものです。:02/05/09 13:23 ID:GEyQ3xMs
NvidiaでOpenGL用プログラマブルシェーダを書く場合、
プログラマがユニークなコードを書くのはレジスタコンビナかヴァーテクスシェーダであってテクスチャシャーダはあまり関与する余地が無いって認識あってますか?
95 :
名前は開発中のものです。:02/05/09 18:49 ID:69MmpqZc
>>94 そのバーテックスシェーダーも
少ない引数とステップ数の為に
行う処理を選別するだけって感じだね。
頂点ブレンディングにコンストレジスタをさいて
ライトの数を減らすとか
その逆にするとか。
ユニークと呼べるほど・・。
96 :
名前は開発中のものです。:02/05/11 21:59 ID:kUBnBuYs
OpenGL、nVidiaのレジスタコンビナ・nvparseの構文に出てくる「.」(ドット演算?)は何を指すのでしょうか?
内積ですか?でも、レジスタコンビナのレジスタはスカラではなくてベクタですよね。
あと、レジスタコンビナで各RBGチャンネルを入れ替えたり、別のチャンネルにコピーしたりってできますか?
ドットは内積。
色の入れ替えや複製はかなり制約がある。
詳細についてはレジスタコンバイナの仕様書を嫁。
nvparseは単純にその仕様をラップしているだけだ。
98 :
96:02/05/14 15:36 ID:1FhsMEKs
>97
サンクスです。謎はとめました。
も一つ初歩的な疑問なんですが、OpenGLのレジスタコンビナを有効化すれば、マルチテクスチャのパスは排他的になると考えてよいのでしょうか?
100 :
名前は開発中のものです。:02/05/14 21:38 ID:MbTxWkS6
101 :
名前は開発中のものです。:02/05/16 22:13 ID:dbGtFDq2
Matrox の Parhelia もOpenGLから細かくコントロール可能ですか?
102 :
名前は開発中のものです。:02/05/16 23:51 ID:S2/YU52M
>101
だとしてもまたメーカ依存…やだなぁ。
103 :
名前は開発中のものです。:02/05/17 15:25 ID:z6sBupnY
OpenGL2まちましょ。それでもだめってことがありそうな予感。
そもそもシェーダー自体が良くわからん
良くわからんというほど難しい物でもないよ。
座標変換等を自分で書けるだけ。
ベクトル演算を知ってれば誰でも書けるよ。
問題はシェーダー使ってまで実装したいネタがあるかどうか。
106 :
名前は開発中のものです。:02/05/18 12:10 ID:TO1S252A
GL_NV_vertex_programで実行形式の中(実行形式中に含まれるデータも含む)にシェーダ
のプログラムをASCII文字列で持ちたくないと思い、DirectXでいう所のD3DXAssembleShader
みたいな命令を探したのですが見つかりませんでした。もしかすると、GL_NV_vertex_program
では文字列以外の形でシェーダのソースを持つことは出来ませんか?
シェーダに手を付ける前にやること残ってるんじゃないかと。
>>106 NV_vertex_programの最大の欠点です。はっきり言って使う気が失せます。
潔く、ATIが提唱するGL_EXT_vertex_shaderに乗り換えましょう。
Matroxも賛同しているのでParheria-512でも使えるようになるはずです。
>>108 NVasmってDX専用だったんだ?
ふーん、つーかDirectXに乗り換えた方が良くない?
はっきり言ってそんなバラバラ仕様のGLなんて
よく使う気になれるよね。
>>109 最終的に文字列で駆動しなければならないこと自体が嫌なんだよ。
DX8みたいに中間バイナリフォーマットがあればまだ良かったのだが。
メモ帳をそのままぶち込めるのは楽ではあるけどね。
>>111 テキストとバイナリでどういう違いがあるのか判らん
内容そのものを動的に生成するわけでもなし・・・
テキスト覗かれるのがイヤなのでは?
暗号化すれば済む話ですが。
115 :
106:02/05/19 00:40 ID:???
>>109 >>108は俺じゃないです。ちなみに
>>111も違います。
できないと判れば勿論何らかの形から内部でアスキー形式にせざるを得ない訳ですが…。
出来ないことが確認できればそれはそれでOKです。
どうもでした。(ペコリ
116 :
111:02/05/19 00:53 ID:???
頂点プログラムをロードする最低レベルの関数glLoadProgramNVの内部に
パーサが実装されているのって気持ち悪くないですか?
117 :
106:02/05/19 01:06 ID:???
>>116 描画直前のデータを持っておきたいという気持ちは結構自然なことだと思いますけど、
(俺も出来ればそうしたい)まぁOpenGLのディスプレーリストみたいなもんだと思えば
個人的には納得できなくもないです。
リリース用のプログラムに永続化された描画用データを希望してしまうのはある種の
プログラマの職業病かもしれないな…。
一言いわせてもらえば、
ソ ー ス が あ る の に 何 い っ て ん ね ん カ ス ど も
何のソース?
OpenGL2.0もそんな感じだったりして。
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);
122 :
名前は開発中のものです。:02/05/24 02:36 ID: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系は使わないんですけど、判らないと気分が悪いので。
(´-`).。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.
124 :
122:02/05/24 09:59 ID:???
>>123 ありがとうございます&注意が足りませんでした、ごめんなさい。
125 :
名無しさん@お腹いっぱい。:02/06/02 21:03 ID:zfVZ9TZE
DX9シェーダーがまともに動くNotePCありますか?
>>125 デスクトップ用でもまだ完全対応していないのに・・・。
Geforce4GOとかMobileRadeonなら少しはいけるんじゃないの?
まともってのは、まともな速度って事?
128 :
名前は開発中のものです。:02/06/02 23:11 ID:h9WgTC2s
今現在ノートにのってるビデオチップでシェーダに対応してるのって無いよね
ほしいなー
129 :
名無しさん@お腹いっぱい。:02/06/03 00:22 ID:qW0.fcc.
>127
VS2.0のflow controlを試したいんだけど、、
VSならソフトウェアでもまともな速度で動くと思うが。
Radeon8500の30分の1の速度がまともかどうかは意見が分かれるかもしれないけど。
少なくともDX9βテスターの9割以上はソフトウェアで試してると思う。
131 :
名前は開発中のものです。:02/06/03 09:51 ID:Q0hI7iUA
DX9βのSDKってもうでてるのん?
132 :
名前は開発中のものです。:02/06/13 23:41 ID:LnCmV/3o
133 :
名前は開発中のものです。:02/06/14 09:28 ID:jIcRVJt.
ねえpdfからテキスト抽出って出来ないの?
わからない単語翻訳通したいんだよね。
134 :
133:02/06/14 09:30 ID:jIcRVJt.
標準で出来るのね・・。知らんかたよ。
135 :
名前は開発中のものです。:02/06/17 07:20 ID:stxZqyeA
レジスタコンビナの各レジスタの入力値って[-1,1]とか書いてありますが、
これって実際のテクスチャ値とどう関連してるのですか?
[-128, 127]にそのまま相当?
結局、国内では「レジスタコンビナ」という呼び方が
デファクトスタンダードになるのか・・・(鬱
まぁ、どうでもいいけどな
?
コンバイナってこと?
register combiner使ってる奴、国内に一人もいないのでどうでもいい。
1人いたけどね。
ファーシェーディングってみなさんどうやっています?
毛のテクスチャを張ったポリゴンを常に視線方向を向くように頂点位置を補正、
もしくはスプライトとして転送すれば良いかなと思ったけどどうかな?
∧ ∧
ミ,,・Д・彡 フサフサage!
〜ミ___ 彡
なんでシェーダスレに書くのか分からん。3D技術スレのネタだろうに。
つーかサンプルがある筈だが。サンプルも読む気ないならやめなさい。
>>141 kanoたんサンプルの見るべし。ただしRADEONでないと動かない罠。
簡単に言うと半透明の十二単だよな。
147 :
名無しさん@お腹いっぱい。:02/07/27 08:39 ID:CmS1NJvU
nVidia cg
ATI RenderMonky
MS HLSL(HighLevel Seading Langage)
OpenGL 2.0 Shading Language
149 :
名前は開発中のものです。:02/07/31 10:44 ID:ifCAFhq6
あのさ、だれがCg+VS.NETでうまくコンパイルできてる人いる?
どーしても
std::_Xlen
std::_Xran
(こいつらが、Vc7/crt/src/string.cpp にいるのはわかったけど・・・)
が無いっていわれるし、でっちあげてもうまく動かないし?
150 :
149:02/08/05 20:17 ID:4yEcJedo
STLとどうやら、相性がわるいらしい。
STLportにかえてみてもだめだった。
151 :
名無しさん@お腹いっぱい。:02/08/07 22:37 ID:USYFolTg
ピクセルシェーダーで、画像処理のサンプルというのは
どこかにありますかー?
152 :
名前は開発中のものです。:02/08/12 04:48 ID:SHVLA4gT
>152 Thanks,
[SharderX] Vertex and Pixel Shader Tips and Tricks
の本を買ってみたけど肝心な画像処理サンプルが抜けて
たりする。
154 :
あ:02/08/19 20:12 ID:mF4sVHfd
nVidiaのcg使ってるんだけど、なんだかこれ予想以上に不具合が多いような気がする。
まず、コンパイラがかなりアホなような。
float4 vPos;
vPos.x = vPos.x / vPos.w;
と
float4 vPos;
vPos.x = vPos.x * 1.0f / vPos.w;
では生成されるシェーダーコードがかなり違い、
片方では、分母がw要素なのに生成されたコードではなぜか
xの逆数を求めていて、双方で結果表示される画像が違っている始末。
自分の3DエンジンはD3DFixedベースからcgベースに書き換えているので
これはどうにもできなくてかなり痛い。マジ泣きそう。
あと、cgプログラムコンテナのメンバのcgプロファイル値がおかしい。
メソッドを操作する度にコロコロ変わる。リークしてる?
皆さんはこんなことない?
cg最初のバージョンは敬遠してます
156 :
名前は開発中のものです。:02/08/20 10:30 ID:zLfiLQLE
157 :
名前は開発中のものです。:02/08/27 16:10 ID:LTw0Z8e+
ちみたちもっと技術的な話をしろや。
保守アゲするぞ。
ちなみにnVidiaのBumpHorizonのサンプル
あのソース、レンダーステートの設定が一箇所抜けてて
あれじゃまともに表示されん。ふざけんなボケ、俺の二日間を返せ。
158 :
名前は開発中のものです。:02/08/27 16:17 ID:LTw0Z8e+
ちなみに
>>154の不具合は
float4 vPos;
vPos.x = vPos.x * (1.0f / vPos.w);
と書くことで回避できた。
新しいコンパイラでは直ってるかな?
>>155 現状の出来では、それも仕方ないかも。
PSでペアとかしてくんないしね、ほんと使っててイライラするよ。
インラインアセンブラみたいなのついてて、気に入らないところは
部分的に修正出来るようにしてくれればいいのにね。
まあこんなことで悩むのも今だけだろうけど。
終わったスレはあげられてもな。
160 :
名無しさん@お腹いっぱい。:02/08/31 00:26 ID:3E83J4pN
Shader を終わっているって言っているのか?
エロゲには必要ないんでしょ
DirectX9まだ?
163 :
名前は開発中のものです。:02/09/03 09:29 ID:4c1SKthC
シェーダーって言っても映画で使われてるようなのできるわけじゃないよね
164 :
名前は開発中のものです。:02/09/04 02:15 ID:I4i7Lcwo
漏れら極楽人道のageブラザーズ!
良スレっぽいものは強制的にageてやるからな!
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧_∧ ∧_∧ age
(・∀・∩)(∩・∀・) age
(つ 丿 ( ⊂) age
( ヽノ ヽ/ ) age
し(_) (_)J
終 了 し ま す た 。
n n
ミゝヽ / ヾ彡
ゝ ノ ヽ ヾ
/ /∧_∧ ∧_∧| ヽ
| <( ´∀`) (´∀` )> |
ヽ ゝ ヽ⌒ヽ /⌒丶 ゞ /
ヽ ヽ n___ _n / /
| 完 /ヽ ⌒二ソ__彡ミ__ゝ二⌒ /ヽ終了|
/ ̄\_| |  ̄ ̄  ̄ ̄ | |_/ ̄ヽ
\ ヽ ヽ / ノ /
\⌒ゝ~\ \ / /~ ヾ⌒ /
ヽ ( \ \ / / ) /
∪ \ \ / / ∪
\ \ │ / /
 ̄ ̄ / ̄\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
─( ゚ ∀ ゚ )< おしまい!
\_/ \_______
/ │ \
167 :
山崎渉:03/01/13 13:20 ID:G8kY8r9W
(^^)
168 :
名前は開発中のものです。:03/05/12 23:50 ID:XewRwL3b
┌────┐
┌──────┐ ┌┤┌───┘
└──┐┌─┬┤ │││
││ ││ ││└──┐
││ │└──┘│┌──┘
││ │┌──┐││
││ ││ ││└────┐
┌───┤├┐││ │├────┬┘
│┌──┤├┴┼┘ ││┌──┐└┐
││ └┤ └┐ └┤│ └┐└┐
││ │┌┐└┐ ││ └┐│
│└──┐││└┐└┐ ││ ││
│┌──┘││ └┐└┐││ ││
││ ││ └┐└┤│ ││
│└───┴┴┐ └┐││ ┌┘│
└────┬┬┘ └┤│ ┌┘┌┘
└┘ │└──┘┌┘
└────┘
170 :
名前は開発中のものです。:03/11/15 15:18 ID:96u+Jean
良スレ発見!
終わらせるものかage!
では、スレ再開を記念して。
∧⊂ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(゚Д゚)ノ < シェーダ
| ⊃| \__________
| |
⊂ノ〜
∪
172 :
170:03/11/15 16:33 ID:96u+Jean
173 :
170:03/11/16 01:42 ID:nJSV8LX3
メタリックの式が間違ってた。
それとテクスチャ。
ダサ
今日から本格的にシェーダプログラミング始めますんでヨロシコ。
盛り上がっていきまっしょい
175 :
174:04/01/12 13:42 ID:3YDimLOw
シェーダーの本買ってきた。
なかなか良さげだ。
みなさーん一緒に勉強しましょ!
176 :
174:04/01/12 13:44 ID:3YDimLOw
古スレ記念
シェーダーもいいかげん死語だな。
>>179 DirectXプログラマの集いに参加すると笑えるぞ
同じような顔が15人は並ぶからな
自慢じゃないが俺は最後まで名前と顔が一致しなかった
俺は言いたかった
「すいません御兄弟ですか?」
182 :
名前は開発中のものです。:05/02/05 02:59:37 ID:RZ3SQ427
おい
海外のシェーダのデモとかサンプルとか知ってたら教えてクレヨンしんちゃん
まずnVidiaとATIに行け。
184 :
名前は開発中のものです。:05/02/10 03:35:07 ID:wKmgglD9
>>170 ちょい遅レスだが。
法線の方の向きを合わせるのはあきらめてシェーダに定数として渡すライトベクトル
の方にワールド行列の逆行列を掛けたら?
ま、これからの時代はGLSLなわけだが。
186 :
名前は開発中のものです。:05/02/14 18:18:12 ID:d5mg4du1
Kanoさんって今なにしてるの?
本田大地くんに堕落させられました
188 :
名前は開発中のものです。:05/03/09 00:31:04 ID:rI+qk0tK
しぇー
190 :
名前は開発中のものです。:05/03/09 07:14:13 ID:hF5pOQy8
つーかフラグメントシェーダって悪くなくね?
使ってるやついる?
191 :
名前は開発中のものです。:05/03/20 15:20:25 ID:96IBy+Px
192 :
名前は開発中のものです。:2005/03/25(金) 06:04:51 ID:bByj27WB
シェーダプログラマーって、人数が少ないのか?
CgやHLSLならバカでも出来る。
参考書やサンプルも山ほどあるしな。
プログラマブルシェーダとしては、Cg, HLSL, GLSLなんかがよく知られてるが、
現状のコンシューマ機だと、独自仕様なものになるんかな?
PS3, 次期XBoxとかだと、GLSLとかHLSLを採用してきそうだが。
195 :
名前は開発中のものです。:2005/03/26(土) 20:23:04 ID:CRdNdg33
>>195 メッシュから稜線を判断して強調だとシェーダだけじゃ無理。
>>196 ですよねー!あー解放解放、ビール買ってこよ。
ありがとうございました。
>>195 LINE LOOPみたいなプリミティブで線書くのがいいとおもうけど
無理やりシェーダでやるなら面法線をフラグメント単位で書き出して
フルスクリーンのポストエフェクトで隣り合う法線情報同士が違ったら
ハイライト描画とか?
でも法線も用意しちゃダメならこれもダメか。
199 :
名前は開発中のものです。:2005/04/03(日) 23:15:59 ID:HEeIG50B
shあげ
誰かIBL実装できますか
RenderMonkeyのサンプルに疑似IBLがあったような
202 :
名前は開発中のものです。:2005/04/21(木) 15:55:03 ID:tXFpvFT5
あまり集ってないな
203 :
名前は開発中のものです。:2005/05/02(月) 16:51:04 ID:voxaYVPT
集う暇がないのか?
MacOSX10.4でGLSLが使えそうで使えないから
ゲーム製作者のヒエラルキー
ゲームデザイン>>>>>
グラフィック=サウンド
>>>>>(クリエイターとITドカタの壁)>>>>>プログラム
この板でプログラムとかいってるやつは恥ずかしい
しかも企画厨という言葉まで作って現実逃避
企画ゲームデザインが一番偉くて
グラフィックサウンドも重要 クリエイティブな仕事だから
結局プログラムは言われたものを作るだけのITドカタ
認識しようね
プログラムの勉強をしても無駄
おっしゃるとおりです
企画がだめだと全部だめ
なんか流行の格好良いシェーダ無い?
209 :
名前は開発中のものです。:2005/05/11(水) 16:20:08 ID:ayxz5d8v
だれかGPUでπ計算してみてよ。
やろうと思ったけど公式が複雑だ。
212 :
名前は開発中のものです。:2005/05/13(金) 23:03:20 ID:IuPuqx8Y
∩
( ゚∀゚)彡 おっπ!おっπ!
( ⊂彡
| |
し ⌒J
/"~~~""''ー- 、
_,,.. -‐''"~ ̄ ̄~"''‐- ..,,_i
/ \
/ (●) ヽγ⌒ヽ ヽ
(⌒ヽ、 |ー= ) ',
<´・\ ⌒ヽ ノー= ) i
>>999 l 3 ハ ノ⌒ヽ., ~"''''" |
∫ ,<、・_( / 、 |
旦 (⌒ ̄  ̄ ̄ ̄ ̄ ̄ ̄⌒)、.,_ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|\ /
|~~~~~~~~~~~~~~~~~~~~
214 :
名前は開発中のものです。:2005/06/02(木) 17:46:13 ID:33D8OKXg
シェーダのアーキテクチャがだいぶ変わるようだが…
じゃあまた人のソースかき集めて本出してがっぽり儲けられるな
儲かるのか?
>>195 テクスチャーを使えばできるんじゃない。
例えばtexcoord(0, 0), (1, 1), (0, 1)で成る三角形の辺を特定の値で描いておけばいい。
もちろん頂点のUVはtexcoordと同一の座標をセットしておく。
後は、ピクセルシェーダーでテクセルをフェッチして、テクセルが特定の値であれば強調。
1bitモノクロで十分。
218 :
217:2005/06/03(金) 04:46:12 ID:fgY+jAga
ごめん、「稜線」だよな。だめだこれじゃ。
アタマワリー。
ポリゴンで書いた後に
ワイヤーフレームで上書きじゃ駄目なの?
>>219 それだと、こっち向いてる四角形を斜めに横切る様に三角形分割の痕が見えるだろ?
==、,-、 、ヽ、 \> ,, '''\ _
メ゙ヽ、\ ̄""" ̄--‐ 、 \ /ゝ、\
=─‐\\‐ /─'''''ニ二\''' |レレゝゝ、\
 ̄く<<く >, ゙、/<三三二\ ̄\ゝゝゝゝゝゞ''ヽ、 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
<<<<〈__入 ゙、く彡三三三二ヽくゝ\メメメゝ、_ゝ、\ |
>>195、それは叶わぬ願いだ
くく<<<<<< ゙、 ゙、ミ三三二ニ─ゝゝゝゝゝ,,,,,,,、 '( ゙''ヽ、ヽ、 <
くくくくくく彡‐ヽ ゙、ミ三三二ニ'''くくゝゝ_ゝゝ、\\_,>」ノ, | 神の力を超えておる
く く く く く 彡゙、゙、三三二ニ‐くゝ、/ ,,,,,,,,メメゝヽ''''"ゝゞ丶、 \__________
二─二二彡彡、゙、三三二==くメゝ/ ゙'ヽ、メゝゝゝゝゝゝゞ''ヽ-、,,,,,,_
‐'''" ̄ \彡彡ミ、゙、三二=''"く<メ/:: \''-、メメゝゝゝ_ゝ 、 ,,、ヽヽ
、 ,,,,- ゙彡//ヾ、三二= くゝ/:::.... \>∠レ-,-‐ニ二メヽ''ヽ ノ
゙ヽ、,,,-‐//_///,,、゙、三二= ゙、 ""''' ヽ>//レレヽ,,___ /
-,,,,,,-‐'''"""/////,,ヽ ゙、三二─ ゙ヽ. //-ヘヘ,、 レレレレノ
''" ,l|"////ノ,、\彡'''''‐-ニ,、 ::::::::::,,,,,,,,// ゙ヽフ/|/| レ'
/ゝ、/ヽ|ヽレ,,゙ヽ、゙''ヽ、,,,,,,_ヽ''ニ='',,-'"、─-,,,,,_  ̄"'ノ
/メ / レ/,''"へへべ''─---- ̄-メヽ"ゝゞゝヽ、 >---''"
/ヘヘ、|//ヘヘヘヘヘヘヘヘ,,-イ ̄ | ̄"'''-ニニニ二-''"
/ヘヘ∧/./フヘヘヘヘヘヘヘ,/イ / / / ゙ノ\、\
/ゝゝ| / /メヘヘヘヘヘヘ/'" | / / / / \\
/ゝ /|‐/ /フヘへヘヘヘ/∧ /-'"-'''"__,,-''" / /、\
//|_| /./へへへヘヘ、// |/ \_,,,,-‐'" / ゙、.゙、
'"/ヽ"/'"へへヘヘヘヘ// ノ \ ,,,,-‐'" ゙、゙、
.ノ //へへヘヘヘヘ//ヽ ./ ゙、''"" ,,/、゙、
>>195 トゥーンシェードの縁取り線とは何が違うの?
それでよければ、
・ステンシルバッファを使う
・視線との傾きをテクスチャアドレスに使う
・頂点シェーダで法線方向に押し出したモデルを描画する
とかあるけど
>>220 じゃあそれ用に新たにワイヤーフレーム用の
インデックスバッファ起こす。
ヘゝ__\_Y \\,.-、 ______
彡\、/ニ二ニゝレヘ\__ |
巛巛ヽ彡三三く\メXy,=ミ:、 < それは無理
巛巛ヾヽミ三三ゝゝゝ ゞ-'゙ヽ |
ニ‐ニ彡ヾ三三く>/⌒ヾミゝゝゝ`ー--、 ̄ ̄ ̄ ̄ ̄
-_,.彡ヘヘ三=ヾf;:,, \ ,-=〒'__ヾ}
_ -'´~77∧ゝミ-_ゝ ...._〃'^^<klXN
/Xレ公ゞー三=三彡ヘー--、_ソ
/ヘ//へへヘヘィ'了`7ー-<
/ヘ//ヘヘヘ/'"レ_ノ_ノ ノ ゙ヾ:、
/ソ//ヘヘヘ//レ´  ̄`ー、-''´ _,.ノヾ':,
//ヘヘヘ/|/ ヾ''´ __,,.ノヘ
ヘヘヘヘヘ/Y `}´ ||
225 :
名前は開発中のものです。:2005/07/05(火) 17:39:11 ID:4r/pr0Px
集まってないwwwwwwwww
しぇん論(←何故か変換できない)ワロスw
227 :
名前は開発中のものです。:2005/08/08(月) 12:04:09 ID:zA/P/Zul
あげ
盛り上がってよ
そういえば、WGFからはジオメトリシェーダという概念が入るようだ。
いろいろなところがプログラマブルになるのは、
表現の幅が広がるという意味では歓迎すべきことだが、
また他との差が出るとおもうともう嫌だ。
皆さん仕事ありますか?
SCEIが募集してますよ。
c0.wwww
232 :
名前は開発中のものです。:2005/10/15(土) 05:04:28 ID:1uuuhYdc
DirectX9cのHLSLで、vertex shader。
tex2Dにてテクスチャの色を取得し、その値を成分毎に利用したいのですが、
何故か返値を参照した瞬間失敗しちゃうのよね。tex2Dlodだと上手く行くのだけど。
tex2Dの返値ってfloat4だよねぇ。理由ご存じの方教えて頂けませんか。
って、ここ見てるひと少なそうだけど。
もしかしてpixel shaderの返値にしか使えないのかね。
233 :
232:2005/10/15(土) 05:23:04 ID:1uuuhYdc
すんません、最後の行、t-potさんのサンプルだと普通に使えてるし
ってことは他が駄目なのか・・・
234 :
名前は開発中のものです。:2005/10/15(土) 09:38:05 ID:nBGK3Ifc
頂点テクスチャフェッチ?
t-potでやってたっけ?
236 :
232:2005/10/16(日) 01:50:02 ID:3KJzBhPI
tex2Dやtex2Dlodはtexldlを使ったコードにコンパイルされるようだ。
texldlはソースとして、テクスチャ座標の入った4Dベクトルを必要として
かつそのw座標にはLOD値を入れる必要があるらしい。
100%想像だけど
tex2Dlodで成功してtex2Dで失敗するのは、この部分が正しく初期化されないからじゃない?
逆アセンブルやデバッカで確認してみまんこ?
238 :
名前は開発中のものです。:2005/10/16(日) 17:28:36 ID:6EZj+p3f
SM3.0の環境なんだよねぇ?
SM3.0は3.0でもRADEONの偽3.0(=3.0-)だったりして
なにこの過疎鰤は。はぁ困った困った。シェーダはどうやって開発しよ・・・。
>>239 1.3-1.4もRADEONの罠だったような気がする。
243 :
237:2005/10/17(月) 04:55:17 ID:kMOCTSsG
すんません、確かにRADEONなんですが、環境というよりコンパイルエラーでして
>>237 ヒント助かりました。どうやら分かったので一応まとめ
・前提として、VS側でテクスチャルックアップが可能なのは3.0(以降)のみ
・tex2Dはtexにマップされる、texはps1.0のみなので、もちろんVS側では使えない
・tex2Dlodは、237氏の言うとおりtexldlにマップされる(だけとは限らないが)
texldlはps3.0であると同時に、vs3.0でもある。だからVS側で使える
結論だけ見ると当たり前だけど、いやHLSLだけだと分からないもんすね
皆さんお付き合いサンクス
244 :
232:2005/10/17(月) 05:04:18 ID:kMOCTSsG
ぐぁ失礼、
>>243名前欄は、237ではなく232っす
>>243 つうかDXのヘルプみると
全てのtexXXX命令が
VertexShaderバージョンでn/aってしてるな。
こりゃ正しい答えを得たいなら、nVidiaCgから持ってきた方が
よさそうだ。
246 :
名前は開発中のものです。:2005/10/17(月) 08:49:31 ID:T5GnpMl9
RADEONじゃ、頂点テクスチャ使えないってば
コンパイルできたとしても
要は頂点フェッチの場合、LODの算出ができないから
LODを明示的に指定する必要があるわけね。
248 :
名前は開発中のものです。:2005/10/18(火) 02:30:54 ID:SHHwQC18
Cもできない超初心者のワタクシがシェーダープログラマンになったら偉いですか?
249 :
名前は開発中のものです。:2005/10/18(火) 04:31:35 ID:xn6Hm6h4
おじさんVB、C#とかなら、ちょっとだけできるんだけどな
難しい数学なんかもわからないし
なによりゲームを作る元気が沸かない
多分おじさんがゲームを作らない理由は
やる気が無いからだと考えている
>>250 シェーダー作りたいからそのためにプログラムを勉強しようと思っているんです。
無謀ですかね・・・?
>>251 ただシェーダー作りたいからと言ってFX Composerのようなソフトだけで
一人前になれる訳じゃないよ。
あくまで、シェーダー以外のプログラムと組み合わせて初めて効果がある。
それに、中途半端に覚えたって結局はどこにでもあるようなサンプル程度で
オリジナリティのある物は出来ない。
要するに基礎から始めろってことだ。
全くの未経験なら、コンソールからでも始めればいい。
欲張って辺にシェーダとか扱うより基礎から順を追って習得していった方が
最終的に難なく理解できるはず。
>>252 ですよね・・・。周りにシェーダ書ける人が誰もいないから自分が・・・って思っても無謀ですよね。
>>253 2002年あたりに気づくべきだったな。
>>248 偉いとか名誉のためにやるんじゃなく、本当にやりたくて自分が満足できると思える事ならとにかくやってみれ!誰も止めやしねぇ!
つまらない奴の言う事は聞かなくてよし!そういう奴こそ高が知れてる
ふむ・・・。はじめてのCって本を買ってくるか・・・。シェーダプログラマンは今後のゲー業界には需要あるんじゃないかと思って。
シェーダのコーディングってグラフィックプログラマの仕事なんじゃないの?
せめてデザイナーの人なら、使えると武器になりそうだけど
259 :
名前は開発中のものです。:2005/10/19(水) 12:56:58 ID:uEBo85gU
需要というか必須になりました
知ってたら偉いとか凄いとかじゃないよな。
i++と++iの違いを知ってるかと同程度の価値しかない
普通の知能なら一日分の昼間のお勉強だけで覚えられるだろ、こんなの。
覚えるのが難しいんじゃなくて、それを活用するための技術を
習得したり自分で編み出すのが難しいのだと思うが。
自然現象をモデル化した論文があっても英文で読めない
↓
やっと翻訳できた!
↓
数式の意味が理解できない
↓
やっと式を理解してコーディングできた!
↓
メチャメチャ重いですよ使えませんといわれる
↓
固定機能バンザイ
本当にご苦労さまです。
■
266 :
名前は開発中のものです。:2006/05/05(金) 17:16:36 ID:09BMMNGg
RenderMonkey と FX Composerについていろいろ調べているのですがまだよく理解できないのでたすけて頂きたいです。
それぞれよく使ってる人ならこっちはこうだけどこっちはこういう部分が使いやすいよーとか
グラボがこれならこっちのほうがいいよーとかありましたらアドバイスよろしくお願いいたします。
俺みたいな馬鹿にはFX Composerのほうがいい。
詳しくは昔のshader.jpで
268 :
名前は開発中のものです。:2006/05/06(土) 16:37:19 ID:3MHuMsnh
このスレの過疎っぷりが日本でシェーダープログラマーの需要が
いかに少ないかの証明になっているな
シェーダーって処理が重いイメージがあるんだけど…
メーカー製のゲームのためにPCを買い換える事はあっても、
アマチュアのゲームのためにPCを買い換える奴はいない。
…って事じゃないか?
270 :
名前は開発中のものです。:2006/05/07(日) 08:49:53 ID:h9G2HvnV
windows2000で開発してんだが、directxsdkが今もうあれなので
シェーダーのデバッグできる環境が手に入らないっぽいんだが
どうしたもんだろう
素直にOSをXPにする。
Windows2000に対応しているSDKでも、シェーダーデバッガは
XPでないと動かないよん。
272 :
名前は開発中のものです。:2006/05/07(日) 19:04:50 ID:h9G2HvnV
一方ではリアル厨房から
(親から買ってもらったFM-Vとかvaioじゃ)動かねぇ
等心の温まる応援のメッセージを頂きつつ
一方で自分が開発する環境の方は無情にもサポート打ち切られ
現実は厳しいな。
273 :
名前は開発中のものです。:2006/05/16(火) 20:36:53 ID:QMZ3kmte
RenderMonkey のデータってフリーなら使用可?
274 :
名前は開発中のものです。:2006/07/15(土) 15:38:34 ID:2h7FWRrc
FX Composerわかりづれーage
なんだマテリアルって
RenderMonkeyでアニメーション付メッシュ扱えればなぁ…
275 :
274:2006/07/15(土) 18:22:05 ID:2h7FWRrc
OK僕が悪かったです。意外に便利なFX Composer
誰かXファイルのAnimationSetから、ボーン姿勢情報を取ってくる方法、
ご存じでしたら教えて頂けないっすかねぇ…
worldviewprojectionみたいに、該当Semanticsを指定しておけば、
自動で値を渡してくれるのかなと思っているのですが、どうもそれらしいのが無くて
276 :
名前は開発中のものです。:2006/07/16(日) 03:54:30 ID:EzTLPinE
FX Composerてこれいったいなにするどうぐなのかえ?
277 :
274:2006/07/16(日) 07:37:18 ID:nepyBoVE
RenderMonkeyと同じで、エフェクト開発ツールじゃないっすかね
VC6とか、Windows2000だと、HLSLのデバッグも出来ないから重宝ですわ
RenderMonkeyより、FX〜の方がデザイナー向けという煽りみたいっすけど、
なんかコードでプロパティを追加することが多いので、FX〜の方がプログラマ向けな気がするっすね
FX〜はでも、REFで使えないのが辛いなぁ。どっちもSWVPは無理だし…
うほ、名前欄残ってたわ
結局アニメーション持ってくる方法わからねっすわ…自分でプラグイン書けとか、そういう話なんかなぁ…
書いたエフェクトの調子みる奴なんだねやっぱり
それでスキンメッシュのためのvertex shaderをそれ上でつくりたいというわけですか
そうなんす、そうなんす。まぁでも未だにさっぱり分からないので、
スキニング部分だけ後から加えれば良いかなって気になってきました。お騒がせしました。
UserGuideにそれっぽいこと書いてあるんすけどねぇ…。
3Dモデルの輪郭線をリアルタイムに描くデモで、裏向き面をちょっと膨らませて描く方式でなくて
ポストエフェクトか、辺を直接ピックアップする方式できれいにできてるやつがどこかに落ちてないかなー
NPR方面の自己主張の強い使い方じゃなくて真面目にアニメ風にさりげない輪郭線を描いて動かしたら
どうなるのかってちょっと見てみたいんだよね
282 :
名前は開発中のものです。:2006/09/14(木) 00:32:57 ID:rk8avzgT
隣り合うピクセルの色の差を出せば(強調すれば)簡単にできない?
ジオメトリシェーダを使えば、辺の選出は超楽勝。
そこから一工夫かませば、任意の辺に、任意の太さのエッジを
描画するのも楽勝。
難点は Direct3D10 が必須なので、実行できる環境が
まだ殆ど存在しない事ぐらい。
>>283 本当に楽勝か?ジオメトリシェーダは万能じゃないよ?
描画する全てのポリゴンの辺に対して処理するなら楽勝だが
最終的に輪郭として残る辺と、他の面と接合してる辺と区別できる?
>>281 の考えてる程度の輪郭線なら圧倒的にポスト処理で済ますのが楽勝。
モデルの輪郭線だけなら、Zバッファへの書き込みをオフにしたあと
2ドット以上の幅でワイヤーフレームで描画してから、
Zバッファ書き込みオンでフィルしたモデルを描画するのが一番綺麗。
>>284 輪郭になる辺の選出は、CEDECのワークショップで
シャドーボリューム生成の一部として、プログラム
してきた。楽勝だった。
輪郭が選出できれば、そこからカメラと直交方向に
ポリゴンを生成するのも簡単。
輪郭として生成したポリゴンが、他のポリゴンにめり込む
場合は、やっかいかも。
よくわからんが
>>284は勝ち組とか負け組とか言うのがすきそう
>>286 ジオメトリシェーダで生成する(追加する)頂点データは、
完全に同じパスの同じバッチに統合されるの?
そのデータを保存しておいて、後のパスで使ったりはできないのかな…
DX10のシェーダモデルはよくわからん('A`)
>>288 ジオメトリシェーダの出力は、ストリームアウトという機能で、
頂点バッファに出力できる。
後のパスは、そのバッファから入力する事が出来るので、
何パスあってもジオメトリシェーダでの計算は、一回だけですむ。
同じように頂点シェーダでのボーン変形も、一回計算すれば
後のパスで変形後の頂点位置を使い回せる。
俺もDX10を完全に理解している訳じゃないので、間違っていたらスマソ
PS3にDX10なんてねーよ
291 :
284:2006/09/14(木) 22:53:54 ID:rk8avzgT
>>286 どういう方法か想像もつかないが、輪郭となる辺を抽出できるんだ?!
ジオメトリシェーダも思ってたよりは使いどころがあるのかな・・
もっとちゃんと勉強すべきでした、反省。そしてサンクス。
それにしても、ジオメトリシェーダを使うのは大げさ・・ゴニョゴニョ(´Д`)
>>289 なるほどトンクス。
色々使い道はありそうだけど、やっぱりパフォーマンスが気になるところ…
∧⊂ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(゚Д゚)ノ < シェーダ
| ⊃| \__________
| |
⊂ノ〜
∪
http://disappo.exblog.jp/191041/ カップヌードルのCMとかサルゲッチュのアニメとか見てもなぜかいまいちピンとこなかったんだけど
このどうしようもなく情報不足な一枚絵だけでなんかくるものがあった
耽美なお人形にいろんなとこから光があたってるのとかはもう俺的にはどうでもいい
繰り返すようですがリアルタイムできれいな輪郭を引いてるプログラムあったらみせてください><
>>294 輪郭線くらい自分で研究すればいいじゃん。気に入るまでさ。
>>295 土曜の朝から心温まるご指導ありがとうございます
297 :
名前は開発中のものです。:2007/04/07(土) 22:35:21 ID:bVP9rovU
ageてみるテスト
テストならメールアドレス欄age_testにしろよ。
一時間だけ上がってその後元に戻るから。
>>298 あ、そんな機能追加されてたんだ。
テスト(現在8位)
300 :
299:2007/04/08(日) 21:26:36 ID:E+1ZvEnd
騙されたor2
age_testでググったら2件しか出なかった
303 :
298:2007/04/09(月) 22:40:12 ID:f64SKPBz
まぁ過疎スレに人が来たということで、めでたしめでたし。
304 :
名前は開発中のものです。:2007/05/13(日) 10:27:19 ID:Hm8/MhQn
全然、集ってないage!
FX Composer 2.0は、いつ出るんでしょ?
「soon !」と書いてあったから待ってんだが、いつまで待たせんだよ!
え?まだ出てなかったの?
地方で簡単に見れなくて、通販も高いので簡単に買う決断が
できないので、教えて欲しいのですが、
game programing gems 4 の perspective shadow mapはつかえますか?
(t-potさんと、Monshoさんのは、もう拝見しました。)
一月ぶりのレスかよ
ま、シェーダープログラムなんて、基本部分を書くときぐらいだから、
年中かくわけじゃあるわけじゃないし、もともと書く人少ないし。
FX Composer 2.0出たけど無反応か
まだbeta3じゃん
311 :
名前は開発中のものです。:2007/06/17(日) 03:47:26 ID:o+cdUe76
(・∀・)お!
よぉーやく、出たのなw
PS3開発者には配ってたとかなんとか聞いたが。
OpenGLとCOLLADAなんぞは、どんなもんかいな。
312 :
名前は開発中のものです。:2007/07/21(土) 08:08:35 ID:w+3hBJDq
いつの間にか、beta3 -> beta4 -> RC1 になってるお、お(^ω^)
FX Composerのスプラッシュウィンドウがきもい
俺のほうがキモかった
つ抗うつ剤
やさしさに泣いた
317 :
名前は開発中のものです。:2007/07/31(火) 00:05:14 ID:rY+a1vN3
SDKサンプルの球に、法線テクスチャを貼って、
法線マップしようと思うんだけど、テクスチャから生成した法線を球面上の法線にするには
どうしたらいいかね?
FXComposer2ってD3D10対応じゃないの?(´・ω・`)
過疎っているなかで質問なのですが
当方Cgでシェーダーを組んでいるのですが、まだ手をつけたばかりで
初歩的なことを伺いたくてきました。
TEXCOORDについてですが
テクスチャ座標を指す、というのはわかったのですが
テクスチャ0や2などの番号がついたときにどこを指すのかわからなくて
float4 uv0 : TEXCOORD0;
float4 uv1 : TEXCOORD1;
float4 uv2 : TEXCOORD2
uniform sampler3D data // 3D volume
uniform sampler2D back_buffer, // backface
uniform sampler1D TransferFunction, // transferfunc
この場合uv0〜uv2はどのsamplerを参照するのでしょうか?
Cgチュートリアルを見ていて、明示的にどれとどれが対応するのか、などが描いていなくて…
よろしくお願いします。
すいません、過疎っているため他で伺います
おれがいるよ。最後のシェーダー触ったの2年前だけど。
つかシェーダースレって他に何処がある?
GPGPUはマ板にあるけど,シェーダースレがない
頂点シェーダなら頂点フォーマットで指定しておいた値
ピクセルシェーダなら頂点シェーダからピクセル単位に線形補間されて送られてきた値
多分samplerの宣言された順に0,1,2...に対応するはず
>>323 Cgランタイムで設定した頂点・色・テクスチャ座標が
vertexシェーダーでのPOSITION COLOR TEXCOORD0で
そこからout としてfragmentに出力させたものが
fragmentシェーダーで受け取られるPOSITIONやCOLORやTEXCOORDということですか?
ということは
vertexで設定しだいでfragmentのTEXCOORD0〜7番が決まる、ということでしょうか
すみません…今自分の中で混乱していて。
vertexシェーダで
float4 uv0 : TEXCOORD0;
float4 uv1 : TEXCOORD1;
float4 uv2 : TEXCOORD2
とした場合、この0〜2は何を参照することになるのでしょうか?
0番は自動で送ったテクスチャの座標になりそうだというのはわかるのですが
1〜2と複数宣言した場合、1個しかテクスチャを送らなかったら、これは空になるのでは…
1つの頂点にテクスチャ座標を複数持たせることができるということを
理解していないのかな?
>>326 それは初耳です。。。解説お願いできますか
自分の中でvertex→fragmentの関係をまったく無視していたことがわかりました。
わかっていたつもりになって飛ばしていたところが、モロに穴になったみたいです。。。
ほんと、、、自分がアホで泣けてきます
そんな身勝手な期待に沿う義理はない
高レベルシェーダ言語と関数型言語って相性がいい気がしてきた
Haskellやschemeで書けるシェーダ言語の研究とかそういう情報ってありますか?
SchemeじゃなくてLispか。しかも逆だな。どっちでもいいや。
シェーダーをごりごり追加してたら
白沼に
Assertion failure! (h:\gfx_sdk_dgt_sdk\〜\cbaseprogram.cpp 637): uRangeMin < m_uInsts && uRangeMax <= m_uInsts
ってワーニングが出ていました。
ぐぐっても全然情報が無いのです。
何のレンジオーバーですか?
知るか。まともに聞く気もなさそうだし。
お前は俺だろ?
保守
338 :
名前は開発中のものです。:2008/03/18(火) 15:24:37 ID:+i6TATTQ
相変わらず過疎ってんな
アマは本格的にシェーダーさらわないから
俺を含めて…
シェーダーよりCUDAが気になる今日この頃
過疎ってても見てる人はいるんだなw
CUDAで物理エンジン作りたい今日この頃
342 :
名前は開発中のものです。:2008/03/31(月) 22:42:49 ID:XfFuEVKr
Render Monkey 1.71
MSXMLがアンインストールできないぞ!
343 :
名前は開発中のものです。:2008/04/15(火) 15:51:50 ID:AcI8dJ+S
age
344 :
名前は開発中のものです。:2008/05/13(火) 08:25:08 ID:GDnbSYjD
age
やっぱり左手座標系ですか?
左手用に作られた行列を右手に変換するのって簡単にできないかねぇ?
3軸のひとつを符号反転するだけだろytr
つか何でこのスレでその質問?みたいな
>>346 いや、頂点シェーダにセットする行列の変換でちょっと悩んでてさ。
反転するとして、どの軸?とかね。4行目、4列目はどうなるの?とかさ。
4x4行列の中身が回転情報と並進情報のセットなら
4行目4列目は常に1じゃないか?
>反転するとして、どの軸?
例えばオブジェクトのローカル座標系で
Z軸を垂直上方向と定義していて
Y軸を視線(前)方向と定義してるなら
X軸反転するんでね
いや、それが、射影だったりして回転移動のみじゃないんだよね。
ドイツの論文を読む機会があったんだけど、
そいつは、Z方向に -1 倍のスケーリング行列をかけて、
左手座標を右手座標に直してた。
そんなんでいいの?って感じでさ。
本当に、
>>346 の通りなのかもしれない。
物理科っぽいベクトル解析はやったんだけど、イマイチ使えなくて、
工科っぽいベクトル解析をやり直そうかなぁと思ってる。
別に問題ないと思うが
352 :
名前は開発中のものです。:2008/05/18(日) 01:02:07 ID:jxwMR2wV
今年はじめからシェーダー書き出したのだが、ほんと資料ないね。
どうやって勉強しよう。なんとなくnVidiaのsampleデータ見てやってるけど。
HLSLの仕様ならDirectXのリファレンスを読めばわかる
サンプルも豊富だから大まかな流れややり方もわかる
DirectXのサンプル以上のレベルのことをやろうと思うと
論文を読むしかないのかな…場合によっては英語の
>>352 N2Factoryの"DirectX シェーダプログラミング"はどうだろう?
Amazonでの評価も悪くないし、本屋で見てなんとなく分かり易そうだったので買ってみた。
只、自分はプログラミングそのものもこれからスタートなので良し悪しはよく分からない。
>>354 良い本だよ。
ただ、サンプルコードが古いSDKを利用したものなので、その辺りは注意が必要。
CD付属のSDKを使えば大丈夫
なんだが…すでに最新のSDK入れてる身としては面倒だ…。
nVidiaやATIの出してる分厚い高い本がお勧め
でもその前に
>>354みたいなのを読むべき
どのみち一冊じゃ足りないと思うなぁ
なんかシェーダって、アニメーションと各種シェーディング、影、ぼかし、HDR、歪みぐらいが
いまのところやれる範囲で、意外とやることが少ないような気がするんだけど。
gpgpu.orgにあやまれ
「シェーダ」でシェーディング以上のことが出来る時点で
>>357 普通にやる分にはそうかもしれないけど
固定概念に縛られずに自由な発想でいろいろやってみることは大事
観念してね
そもそもシェーダで出す絵がない
俺の手持ちはスフィア、キューブ、トーラス、シリンダー、ティーポットだ
良かったらおすそわけするぞ
メガデモ上等!!
365 :
名前は開発中のものです。:2008/05/26(月) 11:36:13 ID:MNd9aACa
行列パレット全然たりねぇ。
確かにまともなシェーダ開発が必要なレベルのデータ作りの方が厄介だよな
インスタンシング情報とかタンジェントスペースとかエクスポート時に埋め込める手軽なツールがあまりない
俺は今のところBlenderでプロパティやらスクリプトやら使って頑張ってる
シェーダプログラマでがんばろうと思うのでうが、身に付けた力は今後、他に何の役に立ちそうでしょうか?
GPGPUが広まったら職にあぶれることはなさそうでしょうか?
この先CUDAとかできればそれなりに需要あるんじゃね?
職にあぶれることはあるだろうけど
良スレsage
370 :
367:2008/05/30(金) 22:49:07 ID:W1d73k9s
シェーダに着ていく服がない
しまむらで1000円で買った服をマネキンに着せて
3Dスキャナで取り込んだボリュームデータを
ポイントスプライトでパーピクセルライティングするのが
今後のトレンド
現役のビデオボードでも StaticFlowContorlDepth って0のが結構おおいじゃない?
DirectX10 じゃ FragmentLinker が無くなるらしいんだけど、
DirectX9 では FragmentLinker を使え、
DirectX10 では StaticFlowControl を使え、
ってことなのか?
めんどくせぇ。
FragmentLinkerは残念ながら使い物にならないよ。ゴミだなこんなの。
DX9世代は、エフェクトファイルへ条件ごとにテクニックを置きまくるしかない。
シェーダープログラマを目指しているんですが、ゲーム以外で使う仕事ってあるんでしょうか??
3Dソフトの制作なら、GLSL方面で需要があると思う。
377 :
373:2008/06/28(土) 15:32:53 ID:Etm+Tm68
>>374 結局、FragmentLinker は無視した。
要求するハードのレベルが上がるが、Static Flow で十分な速度が出るね。
378 :
375:2008/06/28(土) 16:02:21 ID:fY/TNmFQ
ほ
今更だがDirect3D10対応のFXComposer2.5出たんだな
しかしVistaはクラシック表示にしないと画面ががくがく言うんだが・・・
え?
ワロタ
RendermonkeyでテクスチャをTexturesaverで保存しようとすると
「this extension is not supported」って出て保存できないんですけど
これはまだ対応してないってことですか?
385 :
名前は開発中のものです。:2008/12/07(日) 17:25:48 ID:S/cnf1Kb
過疎るな
>>375 うちは、画像処理にDirectX+シェーダを利用している。
このスレできたの7年前かすげえな
ちょっと素人の素朴な疑問なんだけど、
PS3とXBOX360のシェーダって、360の方が優れてる気がするけど、
DirectXが優れてるからって事?
これからプログラマブルシェーダ覚えようと思うのですが,
おぼえるシェーダ言語は意識して選んだ方が良いでしょうか?
言語間で違いが大きくあるか知りたいです
あと,他に覚えるにあたってお勧めの方法などあれば教えてください
選ぶもなにもHLSL以外の選択肢は、ほぼ無いと思うが。
OpenGLで使いたいとかなら話は別だが。
391 :
名前は開発中のものです。:2009/03/17(火) 19:07:24 ID:/uOxlyYd
RenderMonkeyを使っていると、ひとつのモデルをマテリアルごとに分割して扱うことができないのですが、仕様でしょうか?
例えば3つのマテリアルになっているモデルがあるとします。
これら、それぞれのマテリアルにそれぞれのシェーダを書きたいのですが、どうしても分解して扱う方法が見当たらないのです
392 :
名前は開発中のものです。:2009/03/18(水) 01:17:08 ID:ORRRTbtu
>>390 別にCgとかでもよくね?
そこでなんか足りないと思ったらHLSLでもいいわけだし。
>>389 WindowsならHLSL。
MacやLinuxならしらん。
覚えるには実際に自分で書いてみるのが一番だよ。
教材には今ぎれさんの本をお薦めする。
394 :
375:2009/04/10(金) 01:02:32 ID:6sqPilb8
395 :
名前は開発中のものです。:2009/04/26(日) 20:30:38 ID:VIWAMU8v
NVIDIA以外のHLSLコンパイラってあります?
NVIDIAのはエラーで起動できない
今ぎれさんの本って何?
>>395 FX composer2.5はDX10用
2.0でも使ってみれ
>>399 10じゃなくても2.5使えるだろ。
XPでつかえてるし。
2つのfxファイルで同じ目的で使用している変数があるのですが、
こういう場合は、D3DXCreateEffectPoolというインターフェースを使うと
変数を共有できるようになるみたいなので、試してみたのですがうまくいきません。
(片方のシェーダでしか変数が適用されていない状態です)
どこがまずいのか指摘していただけると助かります。
//ヘッダーファイル側
LPD3DXEFFECTPOOL pPool;//D3DXCreateEffectPoolというインターフェース
//ソースコード(初期化)
D3DXCreateEffectPool(&pPool);//D3DXCreateEffectPoolというインターフェース
D3DXCreateEffectFromFile( pDevice
,"effectA.fx" //エフェクトファイルA
,NULL, NULL, 0
,pPool //パラメーターのプール
,pEffectA //エフェクトA
,NULL)))
D3DXCreateEffectFromFile( pDevice
,"effectB.fx" //エフェクトファイルB
,NULL, NULL, 0
,pPool //パラメーターのプール
,pEffectB //エフェクトB
,NULL)))
Handle_matWVP = pEffectA->GetParameterByName(NULL,"matWVP");//名前からハンドルを取得する
//ソースコード(描画)
pEffect->SetMatrix(Handle_matWVP,&matWVP );//変数に行列をセットする
上の続き
//fxファイルA
shared float4x4 matWVP;
//fxファイルB
shared float4x4 matWVP;
その方法で間違ってないと思う。
駄目な理由は、別な面を探した方がいい。
いくら何でもこのスレ過疎りすぎじゃね?
日本にシェーダープログラマーはいないのか
あえて語るようなネタなんてあるか?
基礎的な事はShaderXとGPU gemsみりゃいいだけだろう。
406 :
名前は開発中のものです。:2009/07/29(水) 21:21:58 ID:3ki9XIb0
当方デザイナです。
今、プログラマブルシェダーを勉強中です。
RENDER MONKEYで編集したFXファイルを
MAYAに読み込ませようとしているのですが
RENDER MONKEYで吐き出したFXファイルが
うまく表示できません。
マニアルには
ViewProjection を WorldViewProjection に変更して使うと
あるのですが、
これはどういうことなのでしょうか?
RENDER MONKEYは使ったことないけど、吐き出されたFXファイルにViewProjectionってのが多分どこかにあるから、それをWorldViewProjectionに書き換えればいいってことだと思うよ
>>88 すみません、具体的に教えてください。
シェーダークラスはメッシュデータを受け取ってレンダリングするということですか?
8年越しのレスキタ━━━━━━(゚∀゚)━━━━━━!!!!
シェーダプログラマのみんな!
もっと元気出していこうぜ!
WiiウェアでBIT.TRIPってゲームがあるんだけど、
リアルタイムでアンビエントオクルージョンをやっているように見えるんだよ。
ttp://bittripgame.com/ でもWiiの性能でそんなことできるんだろうか。
本当にアンビエントオクルージョンか自分にはちょっと判断できないので誰か確かめてください。
そう思う部分の動画でも貼ってくれないと
「そんなもん知るか」
としか答えようがない。
正直、その動画を見ても、リアルタイムで処理してそうなとこは
どこのことなのか分からない。
COREの方は背景で動いている部分がほとんどないし、RUNNERの方は
穴から出てくるイモムシみたいなやつのことだと思うが、陰影が変化してる
ようには見えない。
形状の谷間(キューブとキューブの繋ぎ目)にぼやっと陰影がかかっているよね?
そのことを言っているんだけど。
繋ぎ目だけじゃなくて、灰色の芋虫がはい出てきた穴の縁部分も、芋虫のポリゴンの影響を受けて
うっすら陰影のグラデがかかっている。
417 :
名前は開発中のものです。:2010/04/23(金) 18:52:41 ID:lUZXjqCs
そんぐらいIntel Pentiumプロセッサ上での
ソフトウェアレンダリングでもできる。
具体的にどういうアルゴリズムで?
419 :
名前は開発中のものです。:2010/04/23(金) 19:07:19 ID:lUZXjqCs
1. いろいろキャッシュしまくる。
2. マルチテクスチャ。
>繋ぎ目だけじゃなくて、灰色の芋虫がはい出てきた穴の縁部分も、芋虫のポリゴンの影響を受けて
よくある影描画アルゴリズムだろう。
キャッシュって例えば何を? そのキャッシュを何に利用するの?
あなたが言っている影描画アルゴリズムというのはシャドウマッピングのこと?
でもあれは光源と反対方向にオブジェクトのシルエットがくっきり映るものであって、
私が言っていることとは毛色が違う。
こういう返事がくると黙りこむあたり、何もわかってないんだろ
何でも「よくある」と書きたくてしかたない
>>416 キューブの陰影は、最初から頂点カラーがそういう色になっているだけじゃないの?
穴の縁の部分は動画ではよく分からんが。
まず、基本的なこととして、動かない物体の影やら陰影なんてものは
リアルタイムで計算する必要がない。
どんなにリアルな陰影がついていようと、事前計算できるもの。
同様に、インタラクティブ性がなくて決まった動きしかしない物体も
リアルタイムで計算する必要がない。
アニメーションに頂点カラーやテクスチャの変化も含まれるだけ。
遮蔽度の高そうな頂点の頂点カラーを暗くしたのをデータとして保持しているだけってこと?
×遮蔽度
◯閉塞度
PSSMの本家サイトのサンプルコードのモデルの頂点にはアンビエントオクルージョン項が含まれてて、
簡単なライティングでちゃんとAO感が出てたよ。
最近の子はリッチな環境で難しく考えることに慣れすぎてる感はある。
少ないリソースの中で如何によく見せるかって技術はおっさんの方が長けてるよな。
あるあるw
そしたら,あんたらは”最近の子”にそのうち超えられちゃうねww
そりゃそうだろ。
そういう業界だし。
せっかく過疎って静かだったのに
最近NWは触ってないから出来るかはうろ覚えだけど、
負の色の(黒い色)のポイントライトを遮蔽する部分に置けば似たことできるんじゃないかね
低解像度のZテクスチャを作って、上下左右のピクセルのほうが手前だったら1加算とかで
それっぽくならんかなあ。
>>432 そういうアイデアの延長線がSSAOだな
434 :
名前は開発中のものです。:2010/04/26(月) 09:15:05 ID:OdPbzt9V
まあWiiじゃそんな芸当はできないんだけどな
前から思ってるけどAOは一次レイが当たった地点から
180度の超広角度のカメラで半球レンダリングすれば遮蔽率がハードウェアで求まるよな。
全ピクセル一度に並列に計算すればあっという間だろう。
このアイディアを好きに使っていい。
それただのSSAOだから
>>433 というか、WiiでSSAOっぽいことをするとして
>>432の方法で近似できんかな、と。
ピクセルの比較ができりゃいいんだからPS2でも実装できるか。
まあ、荒すぎて実用に耐えない気もするが。
438 :
名前は開発中のものです。:2010/04/26(月) 13:42:31 ID:YZYpPhAg
Light propagation volumesを実装したいと思ってるんだが
理論を詳しく説明できる日本人はいないものか・・・
原文を読んでも俺の英語力では理解できないぜ
RSMからの光源を3Dテクスチャにポイントレンダリングして
SHに変換して伝搬させるとかそんな感じだろうか?
日本にはシェーダーの最先端をゆくスレッドって無いのか
難しいことしてるんだね・・・
日曜プログラマには遠い世界だ・・・
最先端を行くシェーダプログラマさん、応援してます!
>>438 そんな感じ。
RSMからVirtual Point Lightsの基準になる点を選ぶ。
あとは、法線方向に半球に広がるSH係数を3Dテクスチャに書き込む。
それを6方向(±XYZ)に広げていくだけ。
使うときは3Dテクスチャをサンプリングするだけだから負荷も低い。
6方向だけだとイビツな形に広がっちゃうけど、LPVをカスケードすると緩和できる。
そのままだとオブジェクトを突き抜けて光が広がっちゃうんで、遮蔽するようなSH係数を書き込んでおいたり
SH Gradientを使って緩和したりするんだけど、そこまでやらんでもそれなりには綺麗になるよ。
大げさに書いてあるけど、実装自体はそんなに難しくないんでやってみる価値はあるかと。
固定機能って英語でなんて言うの?
Fixedなんちゃら?
Fixed Fuction Shader
Fixed Pipeline
そのままなんだ,どもども
445 :
名前は開発中のものです。:2010/04/30(金) 10:03:28 ID:JBQK921o
シェーダプログラムをVCみたくプロジェクト管理できるようになるのはいつごろになるんでしょうか
446 :
名前は開発中のものです。:2010/04/30(金) 14:51:15 ID:PJyGEE1y
w
RenderMonkeyで十分だけど
最新のはもっと使いやすいのかな
FxComposerは機能が多すぎて好きになれないなぁ
RenderMonkeyがシェーダモデル4.0に対応してくれれば最高なんだけど…
シェーダーコードを記述していていつも思うんだが、
OpenGLでもDirect3Dでも、setShader("shader-code-filename", ...若干のパラメータ);
ですぐ適用されるような関数ってどこかにないものだろうか。
単なるテクスチャとディフュースマップって別ものですか?
テクスチャの使い方の1つがディフューズマップだろ
えっと..そうですね
>>435 その方法は焼付けでしかまだ使われてないな
重い方のSSAOですらそれを簡略化したやつに留まってる
>>453 今のGPUはカメラが1つなのが問題だと思う。
640x480個ぐらいの視点を一度にレンダリングできれば、
プリミティブは1回だけレンダリングパイプラインに送ればいい。
現状AOが一番視覚的な効果が大きいので
GPUメーカーはここを何とかすべきだと思うのでござる
つまりレイトレに移行しろってことね
それで「リアルタイム」レンダリング出来るなら別にいいけどな・・・。
リアルタイムじゃなくていいなら現行のGPUとDirectX11で出来るわ。
ComputeShaderで標準化されたおかげで
GPU Kd-Treeが結構現実的な選択肢になってきたしなぁ。
ゲームでも影と反射計算だけレイトレで、ってのはそんなに遠くない未来にできそう。
ハイブリッドレンダリング・・・か・・・
まあ現行の技術もインチキ満載だし
インチキで飯食ってる人は廃業かねぇ・・・
携帯機が絶好調のご時勢にシェーダーバリバリ使ったグラフィックスな方が時代の流れには逆らってるだろ。
どうせ現実や写真には勝てないんだからただリアルになりゃいってもんじゃない。
パラメーターもアホほど増えるしコストもアホほど増えてるし。
なんか、そんな感じになってきたねぇ・・・
これからのリアルタイム3Dグラフィックスはどうなっていくやら・・・
そもそもゲームが飽きられてるという根本的な問題
iPhoneでもGLSLは使えるんじゃないのけ?
今はDirectXのパイプラインがどんどん増えて複雑化する一方だが、
いずれリセットされてソフトウェアレンダ時代に回帰(=GPGPU)するだろうと予想してるゲーム開発者もいるみたいね。
NVのFermiやIntelのLarrabeeは明確にそれを指向しているし。
でも、マイクロポリゴンもボクセルもリアルタイムレイトレも思いの外遠いなあ・・・。
遠いといえばユーザーインターフェースもだな。
2010年ともなれば、脳神経に無線介入して視覚や聴覚等の身体感覚をダイレクトに乗っ取って情報を流し込んだり
脳波で全ての操作が可能になってキーボードやマウスが不要になったり、
もう少しそれを進めて脳とコンピューターを(プロトコルを介して)接続して思考を拡張したり出来る様になると思っていたのに、
メガネかけて立体視が最先端、70、80年代と本質的には変わりなしとは幻滅もいいとこだよ。
百歩譲っても、空中に結像する立体ディスプレイ位は絶対にあると思ってた。
胸が熱くなるねぇ・・・
でも、ソフトウェアレンダリングは一部の優秀な人間しか構築できないだろうから、
今のDirectXみたいな広がりは見られなくなるだろうね・・・
ソフトウェアレンダラーの時代になったときに
いったいどれだけの人間が残れるんだろうな・・・
おまいら今からpbrt読んどけってこった
470 :
名前は開発中のものです。:2010/05/09(日) 08:14:30 ID:zbXbbgYt
>>440 レスthx
大分理解が進んだ気がするけど、実装方法がいまいちわからず
いくつか質問させてください
>RSMからVirtual Point Lightsの基準になる点を選ぶ。
fluxマップの各テクセル全てが二次光源になるということ?
>あとは、法線方向に半球に広がるSH係数を3Dテクスチャに書き込む。
このSH係数はどうやって求めるんだろう?任意の位置のfluxマップの近傍からどうにかするんだろうか?謎
あと3DテクスチャへのレンダリングってたしかDX10以降じゃないとできないよね?
>それを6方向(±XYZ)に広げていくだけ。
これもCPU側で全グリッドをぶんまわして処理するんかな?
>カスケード
>遮蔽するようなSH係数を書き込む
>SH Gradient
この辺に至ってはさっぱりイメージもつかない・・・
概要はなんとなくわかったけど実装となると・・・・
サンプル(擬似コード)を書いてくれると非常にありがたいのだけども
>>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 の疑似コードはあった希ガス。
日本語でおk
パーティクル系の話題は無いですか?
ビルボード沢山並べとけ
>>471 うおおありがとう!あなたが神か
がんばってみる
すごいレベルの人がいるな・・・
最先端のシェーダは複雑すぎて理解できなくなってきてるしなあ
勉強せよせよせよせよ(残響音含む)
まぁ色々な意味で難しいよな。
最新技術がバリバリだからって職があるわけじゃねえし。
ゲームを作るための能力とは別のものだからな・・・。
ある程度地位が上がってくるとその辺勉強する時間がなくなる。
ぴくさーにてんしょくするといいとおもうよ
偉くなったらディレクターだのマネージャーだのと
当たり前のように考えてる日本企業は遅れてるよなあ。
海の向こうみたいに、シニアエンジニアでいいじゃん。
管理職なんてやりたくないよ。。。
シニアエンジニアつってもじゃぁ国立大出身の20〜30代とか相手にして
いつまでも技術的に優位に立てるかって話になるとまぁ無理だろ。
給料も若造なんかより断然いいんだから技術が同程度じゃ首切り候補にしかならんし。
経験を生かすって言う意味なら管理職は悪くないと思うけどね。
管理専任ってわけじゃなくコーディングもする現場で陣頭指揮執る感じでなら。
最近シェーダを覚え始めたのですが,
シェーダファイルというのは,
ポリゴン1枚ごとに用意するようなものなのでしょうか?
全体で1ファイルくらいのイメージだったので...
好きにすればいい。
そんなものは人それぞれだ。
486 :
名前は開発中のものです。:2010/06/23(水) 15:47:34 ID:h7bLJtbu
さて、シェーダが枯れてきた今日この頃、シェーダに挑戦したおれが
通りますよ
シェーダ時代もそろそろ終焉か・・・
10年は流行ったな。
モバイルや組み込み用途でまだまだ通用するんじゃないか
ComputeShaderもシェーダって言っていいじゃない!
終わったとかじゃなく
標準装備じゃないの?
そうだよな、じゃなきゃ
C++時代も終焉
Windows時代も終焉
PC時代も終焉
デジタル機器時代も終焉
になっちまう。
ネタにマジレスかk
sh−だ
シェーダで色々試してるけど、デバッグが大変。
495 :
名前は開発中のものです。:2011/03/06(日) 01:53:58.13 ID:uxekzd7V
まだ生きてたか
シェーダおもしろい。
すごい絵を生み出すプログラム言語。
たまらない。
2001年からあるのかよこのスレ
まだまだシェーダの時代は続くよ
最近はシェーダのアルゴリズムをノードで作る機能がちらほらあるな
実際HLSL知らない素人がすごいシェーダを作ってる
有名なゲームエンジンに搭載されているのをよくみかけるね。
autodeskのサブスク入ってるとmental millが使えるらしいけど、
他にないのかな。汎用エディタ
unityやmayaでシェーダ書きたいんですけどオススメの勉強方を教えてください。
>>502 Born Digitalのシェーダの本読みながら自分でテストするのが一番速いよ。
やっぱボーンデジタルだよね。
シェーダに挑戦したいんですが、分かりやすい入門サイト教えて下さい!
509 :
506:2011/10/18(火) 12:25:28.02 ID:RTMVJYk1
おお、こんなにたくさん…ありがとうございます!
質問です
fx composer2.5でHLSLの勉強をしているのですが頂点色が取得できません
コードは以下の感じで。
VS_OUTPUT mainVS(VS_OUTPUT input){
VS_OUTPUT Out = (VS_OUTPUT)0;
Out.Pos = mul(input.Pos, mWVP);
Out.Col = input.Col;
return Out;
}
float4 mainPS(VS_OUTPUT input) : COLOR {
return input.Col;
}
ちなみに3Dのモデルはメタセコイアで作成しました。
力を貸して頂きたいです。よろしくお願いします。
>>510 VS_OUTPUT構造体の宣言見せて。
データには含まれてるのは確実だが取得できないってな風な言い方だがちゃんと確認してるんだろうな
メタセコ自体は頂点カラーないが、ちゃんとマテリアルから頂点カラーに変換してるんだろうな
色の違う2つ以上の隣接する面の境目の頂点はちゃんと面の数分の頂点にわけてるんだろうな
データに頂点カラーありません、もしくは全部白でしたって落ちなら、ちょっと確認すればわかるはず
それくらいのことにも頭の回らないやつはシェーダとかプログラムとか向いてないからやめちまえ
513 :
510:2012/01/26(木) 22:10:35.18 ID:1uAW8pfc
>>511 struct VS_OUTPUT{
float4 Pos : POSITION;
float4 Col : COLOR;
};
構造体はこんな感じです
>>512 頂点色がxファイルに含まれてる事は確認しています
それ以下のことは数日前にシェーダ始めたばかりなので知りませんでした
調べてみます
514 :
511:2012/01/26(木) 22:33:07.12 ID:anB1nVoG
>>513 う〜ん、問題無さそうだなぁ。
「頂点色が取得できない」とあるけど、
色が付かないだけ(黒で描画される?)で、
頂点通りの形状は描かれている感じ?
fx composerは知らないから何とも言えないけど、
シェーダに与えるデータストリームがどういう区切り
(1頂点につき座標、色なのでfloat8個分)なのかが、
シェーダ側が分かっていないのかも?
「1頂点が座標と色で成り立ってますよ」っていう情報は
どうやって教えてる?
515 :
510:2012/01/26(木) 22:51:38.01 ID:1uAW8pfc
>色が付かないだけ(黒で描画される?)で、
>頂点通りの形状は描かれている感じ?
まさにその通りです
モデルに.fxを適応させると全部が黒く塗りつぶされてしまいます
適応させないと元のモデルまま表示されるのですが・・・
516 :
511:2012/01/26(木) 23:33:37.53 ID:anB1nVoG
>>515 なるほど。
原因箇所を絞りたいから、以下を試してほしい。
テスト1 : ピクセルシェーダを使わず、頂点出力をダイレクトに出力する。
technique記述で
PixelShader = NULL;
と記述する。
テスト2 : ピクセルシェーダで固定色を出力させる
return input.Col; を
return float4( 1.0f, 0.0f, 0.0f, 1.0f ); などとする
テスト1で色が付かないなら、頂点シェーダの時点でデータがおかしいorうまくデータを渡せていない。
テスト1がOKでテスト2がダメなら、そもそもピクセルシェーダが働いていない可能性がある。
テスト1、2ともに意図した通りの表示になるなら頂点シェーダからピクセルシェーダへの
データ渡しがうまくいっていない可能性がある。
>>516 試してみました
テスト1:変わらず黒く塗りつぶされたままでした
テスト2:指定した色で塗りつぶされました
また、関係ないかもしれませんが頂点シェーダで
Out.Col = float4(1,1,0,1);
としたら黄色で塗りつぶされたモデルが表示されました。
一応確認の為xファイルをテキストエディタで開いて確認した所、ちゃんと頂点色はありました
(MeshVertexColors{〜〜} の所でいいですよね?)
518 :
511:2012/01/28(土) 11:14:51.34 ID:MHEoVIAH
>>517 その結果だと、頂点シェーダの時点で色を渡せてないね。
FxComposerがxファイルを読み込むときに問題があるのかも。
今回問題のxファイルはモデラで作ったの?
どっかから拾ってきたやつ?
できればアップローダにアップしてほしい。
520 :
511:2012/01/28(土) 20:43:37.04 ID:MHEoVIAH
>>519 アップありがとう。
これ、たぶんMaterialのほうの色を見てるね。
DirectXViewerで開いてみたら真っ白なんで、あれ?って思って中身見てみた。
MeshMaterialList中にある
Material {
0.800000;0.800000;0.800000;1.000000;;
5.000000;
0.000000;0.000000;0.000000;;
0.000000;0.000000;0.000000;; ← こいつがRGB(レンジは0.0〜1.0ね)
}
をいじると色が付いて見えたよ。
たぶんFxComposerでも色が付くんじゃないかな。
どうやったらMeshVertexColorsのほうを使ってくれるのかな?
521 :
511:2012/01/28(土) 21:13:44.59 ID:MHEoVIAH
ごめん、Diffuse色は一番上のRGBAだね。
んで、そこいじったとしても、
>>510のコードでは色が付かない可能性が高い。
DirectXプログラムでは、マテリアルの色を使う場合、ホスト側からGPUのグローバル変数として色を指定するし。
頂点色を使う場合はFVFを使ってできるんだけど。
FxComposerがどういう仕組みでデータを流してるのか分からないと対策立てにくいなぁ。
522 :
510:2012/01/28(土) 21:50:29.35 ID:RxUZAweR
>>512 520の内容を試してみたのですが521の予想通り真っ黒でした・・・。
もう一度FxComposerとDirectXの仕様等々を調べてみます。
3日間にわたって質問に答えて頂いてありがとうございました。
523 :
511:2012/01/29(日) 00:21:59.53 ID:fwAvUd6T
>>522 FxComposer2.5インストールして試してみた。
たしかに頂点カラー、読み込めないね。
マテリアルカラーは、FxComposerに放り込んだ時点で反映されて表示されるものの、
それをHLSLで使うことはできないみたい。
しかも、複数マテリアルだと、表示はするものの、編集は一つしかできないw
頂点カラーについては読み込もうとすらしていないような気がするw
こういう使い方は想定されていないんじゃないかと思う。
そこで、FxComposerを使わない代替案を考えたほうがイイと思うんだが、
>>510がHLSLの勉強をするにあたって、目標としていることは何だろうか?
どうしてもFxComposerを使わなければならない理由はある?
DirectXプログラムでグラフィック表現したいとかだったら、
簡単なDirectXプログラムを組んで、その上でシェーダ開発したほうがより実践的で良いこともある。
(FxComposerの魅力的な機能も捨て難いけどね)
>>523 なるほど。。。
わざわざありがとうございます!
HLSLを勉強する目的はゲームエフェクトを作成したいと考えているのです
もっと突っ込むと少しパラメータをいじると炎の大きさや色を変えてエフェクトファイルを出力する、と言った
知識なしである程度のエフェクトを作成することのできるツール(?)を作りたいな〜と。
なのでFxComposerを使わなければならない理由はありません。
>>DirectXを組む
昔挑戦して挫折したんですよね…
この機会にリベンジしてみます!
525 :
511:2012/01/29(日) 10:15:08.05 ID:fwAvUd6T
>>524 おお、パーティクルエディタか!
おもしろそうだね!
パーティクルの挙動とかをゲーム実行時に動的に制御したりとか幅を広げることを考えると、
DirectXをベースにした開発基盤を構築したほうがベターではあるね。
DirectXプログラム、しんどいとは思うけど、よい志があるんだからがんばってほしいな。
フリーで高性能なゲームエンジンが台頭している中、熱いよ君。
また壁に当たったら、このスレやDirectXスレで聞いてみてくれ。
応援してるぞ。
526 :
510:2012/01/29(日) 12:55:50.63 ID:WliZ25k9
>>525 Mayaとか3DSmax使えば簡単にできる事をわざわざやろうとしている変人ですw
が、そう言えってもらえるとモチベーション上がります!
DirectXから勉強初めて行きたいと思います
ありがとうございました!
一つのシェーダ「A」を作って、そのシェーダからテクスチャや各種強度の数値などのパラメータ部分だけを変更したマテリアルを使う場合
シェーダが一つでもそれを使うマテリアルの種類が多ければ多いほど処理が重くなるのかな?
マテリアル切り替えのコストはけっこう大きいと聞いたことがある。
だいぶ前の話なので、最近は気にならないレベルに改善されてるかもね。
529 :
名前は開発中のものです。:2012/04/20(金) 20:07:54.18 ID:cSwGsiDe
DirectX9でHLSL使っていろいろ実験してるけど
シェーダ面白いね
間違いない。
初心者です、質問させてください。
tex2DってLOD計算を内部でやってると思うのですが
tex2Dlod使って同じ結果を導く方法が分かりません
x = ddx(UV*texWidth);
y = ddy(UV*texHeight);
d = log2(max(dot(x,x),dot(y,y)));
tex2Dlod(tex,float4(UV,0,d));
こんな感じかと思ってFXComposerで比較してみたけど若干見え方違って疑問
ddxとかddy辺りも理解が曖昧ですが分かりやすい解説などあれば教えて欲しいです。
533 :
532:2012/06/27(水) 00:51:33.17 ID:ZfBRZ2Wn
>>532のコード、2の対数の前にsqrt忘れてました。
LOD計算を初めシェーダに関してわからない事も多いので
他の勉強もしながら考えてみようと思います。
534 :
名前は開発中のものです。:2012/09/26(水) 23:17:33.59 ID:ibhDcE1q
レンズフレア(ゴーストじゃなくて光芒?の方です)を実装したいのですが、
実装レベルで解説されているサイトが見つけられなくて困っています。
そもそもあったとしても理解できるかわからないのですが、いいサイトまたは
検索キーワードがあったら教えてください。
光芒 グレア フレア レンズフレア シェーダ GLSL マルチパス
ゲームエフェクト フーリエ変換 FFT
それっぽいキーワード(やその組み合わせ)で検索しているのですが
ミドルウェアのその宣伝やプロモーション、完成したCGなどしか
引っかかってきません。
光芒って、事前に用意したテクスチャを上からかけるだけじゃね普通。
元の画面を描画
輝度の高いところを抽出
座標をずらしつつ何度も重ね合わせて光芒を作成
元の画面に重ね合わせる
って手順だったはず
t-potさんのサイトに解説されてないかな?
なかったらごめん
あと検索ワードは俺も分からぬ
537 :
名前は開発中のものです。:2012/09/29(土) 17:26:32.68 ID:kNOGECAw
538 :
名前は開発中のものです。:2012/11/23(金) 05:18:14.28 ID:AovfMVV6
539 :
名前は開発中のものです。:2012/11/30(金) 01:09:49.71 ID:00w5sS93
540 :
名前は開発中のものです。:2013/02/03(日) 15:20:42.83 ID:zdopk8OM
DirectX9シェーダでパーティクル(ポイントスプライト)やってるんだけど
2種類のパーティクルを同じD3DXEFFECTインスタンス経由(当然*.fxファイルも同じ)で描画しようとしている。
このとき、IDE(VisualStudio)からF5実行するときは正常に表示されるんだけど、
exe(Debug/Release)の直叩きで実行すると、2者のテクスチャが入れ替わったり、そもそも描画されなくなる現象に遭遇している。
ちなみに実行ステップ順は
pFX->Begin(0, 0);
pFX->BeginPass(0);
パーティクルA描画(頂点バッファ書き換えしてDrawPrimitive)
パーティクルB描画(頂点バッファ書き換えしてDrawPrimitive)
pFX->EndPass();
pFX->End();
またリソース作成は、
テクスチャ → D3DPOOL_MANAGED / D3DUSAGE_WRITEONLY
頂点バッファ(位置D3DXVECTOR3 + サイズFLOAT) → D3DPOOL_MANAGED / D3DUSAGE_WRITEONLY
テクスチャは、パーティクルAとBでそれぞれ別々に作成して確保している。
頂点バッファも、パーティクルAとBでそれぞれ別々に作成して確保している。
ちなみにパーティクルAかBのどちらかの頂点バッファ作成をD3DPOOL_DEFAULT/D3DUSAGE_DYNAMIC + D3DUSAGE_WRITEONLYにすると正常に描画される。
両方D3DPOOL_DEFAULTの方にすると正常に描画されなくなる。
原因を教えたってくれませんかエロイングマスター
>>540 カレントディレクトリの問題じゃないの?
>>541 >ちなみにパーティクルAかBのどちらかの頂点バッファ作成をD3DPOOL_DEFAULT/D3DUSAGE_DYNAMIC + D3DUSAGE_WRITEONLYにすると正常に描画される。
こういうエラーはメモリ関係のエラーだろうから、頂点バッファが小さいとかそんなんじゃないかな。
>>543 >頂点バッファが小さい
え、どういうことですか?
エロイングマスター?
シェーダモデル4のHLSLエフェクトのデバッグをしたいんだけど、FX ComposerがうちのPCで起動しない
(スプラッシュウィンドウ表示中に「エラーが発生しました」的な簡素なダイアログが出て落ちる)
他に、エフェクトの動作確認ができるソフトを知っていたら、誰か教えてくれないだろうか
VisualStudio2012の非Express版にはデバッグ機能があるらしいけど、さすがにちょっと躊躇する値段なので…
>>546 FX Composerのエラー落ちは
fxc.fxconfig内が文字化けしてるからだと思う
先頭の・ソを消せば動いたよ
550 :
名前は開発中のものです。:2013/09/03(火) 09:23:37.63 ID:HkT760oG
hlslやglslで簡単なコードは書けるのですが
少し難解な計算式などが出てくると途端にわからなくなってしまいます
そこで3dcg数学が学べる書籍などがあればご教授ください
よろしくお願いします
個人的には
「ゲームプログラミングのための3Dグラフィックス数学」
はなかなか良かったように思う。
が
553 :
名前は開発中のものです。:2014/07/31(木) 08:22:59.86 ID:7ITzcH4o
★2ch勢いランキングサイトリスト★
◎ +ニュース
・ 2NN
・ 2chTimes
◎ +ニュース新着
・ 2NN新着
・ Headline BBY
◎ +ニュース他
・ Desktop2ch
・ 記者別一覧
◎ 全板
・ 全板縦断勢いランキング
・ スレッドランキング総合ランキング
◎ 実況込み
・ 2勢
・ READ2CH
・ i-ikioi
※ 要サイト名検索
554 :
名前は開発中のものです。:2015/01/07(水) 18:48:15.94 ID:16mG7aLq
トゥーンシェーディングで光源を1つだけに限定にしたら、
当然と言うか、裏側は真っ暗になってしまった。
2つ以上に対応すればいいんだろうけど、単に光源の内積の総和を取って
0〜1にクランプするべきか、重みあり平均を取るか。
光源の数だけトゥーンシェーディング用のテクスチャを持たせて重ねる手もある。
あと、野外で強い日光が差しているだけの場合、補助の光源をどう設定するか、
色々考えることが多いね。技術的なことだけ分かればいいわけではないみたい。
環境光(ambient)は使わないの?
ああ、“真っ暗”という書き方は分かりにくかった、申し訳ない。
トゥーンシェーディングなので、環境光とか設定しなくとも
用意したグラデーションテクスチャの一番暗い色になるんよ。
逆光になる側だと、顔全体がその一番暗い色になるというわけ。